Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[WIP] Sealed state, or encrypted state at rest #1

Open
wants to merge 16 commits into
base: master
Choose a base branch
from

Conversation

hargettp
Copy link
Owner

@hargettp hargettp commented Jan 24, 2018

Inspired by Ansible's vault files, this feature enables encrypted state for the local backend. The intent is to provide a roughly analogous feature. The feature is intended to enable reasonably secure sharing of state through Git repositories within small teams. Keys may be shared externally but generally stored in consistent locations on team members machines outside of the Git repository containing sealed state.

The changes include:

  • New configuration options for the local backend
  • Additional ReadSealedState and WriteSealedState functions for reading and writing encrypted state; while not implemented here, these same functions may be appropriate for implementing sealed state in other backends (e.g., S3)
  • Updates to documentation for the website
  • A unit test to ensure basic roundtrip encryption / decryption works

NOTE: I am not a cryptography expert. All code written here is an attempt to emulate good patterns that already exist. The implementation depends on keys generated with a password-based key derivation function and AES-256.

While not as complex as the features requested hashicorp#16066 or hashicorp#9556, it is intended to enable the basic scenario for sharing encrypted state.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant