Dedicated .password-store w/minimal-attack-surface Secrets Collaboration #18
Labels
No labels
availability
bug
deployment-usability
duplicate
enhancement
help-wanted
question
security
stack-auth
stack-chat
stack-cleanup
stack-git
stack-mesh
stack-site-support
wontfix
No project
No assignees
1 participant
Notifications
Total time spent: 31 seconds
Due date
so-rose
31 seconds
No due date set.
Dependencies
No dependencies set.
Reference: python-support/python-support-infra#18
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
passis a very simple bash script, which encrypts each secret in its own file with GPG (which is hardware-backed) in some.password-storegitrepository. This approach has bare-minimal attack surface, while being incredibly solid and featureful by virtue ofgpgs andgits features - quite ideal for developers.passWebsite: https://www.passwordstore.org/passManpage: https://git.zx2c4.com/password-store/about/It is a very good idea to implement a dedicated
.password-storedirectory to make it easier to separatepython-supportwork from personal / other work, and to enable team collaboration.In practice, this means:
.password-storefor this repo, of course subject to.gitignoreas far as this repo is concerned.passwordsrepository in thepython-supportorganization, which all team members have access to. Note, though all team members can see the.gpgfiles, they can only open the ones they've been granted access to.Then, add the following to
.password-store(adapted from https://zwyx.dev/blog/shared-password-stores), do:.public-keysfolder in the.password-storeroot, which contains a list of.ascfiles that bind GPG users (ex.John Doe <johndoe@example.com>) to GPG key fingerprints..gpg-idfile in the root of.password-store, with each line containing one GPG user (ex.John Doe <johndoe@example.com>) who may read all files in this and all subfolders of.password-store..gpg-idfile in the root of any folder that has different access.main, and do thorough PR approval whenever someone changes a secret.gitcommit signatures (this is essential), and consider implementing some scripts to check those signatures against.public-keys..gpgsecrets correctly according to.gpg-idfiles, just re-runpass init. It automatically reads.gpg-ids, checks against who the files are currently encrypted for, and re-encrypts if they don't match..password-storeas the source of itslookup()s.run.shwould also need to take care ofgit cloneing the passwords repo if needed, as part of its operation. As a result, any team member would be able to run any playbook, with secrets, so long as they've been given access to those secrets.