Vault Implementation
Internal Stakeholders | Role | Department |
---|---|---|
Simon Jolly (Unlicensed) | Technical Architect | |
Anthony Commander (Unlicensed) | Devops Manager | |
Feature description
The Vault feature is a tool that enables access to secrets (anything that you want to tightly control access to, such as API keys, passwords, or certificates) in a secure way. It provides a unified interface to any secret, while providing tight access control and recording a detailed audit log.
Business Case Summary
Currently we use config files and environment variables to control and manage secrets (API keys) in our infrastructure. The keys are stored as plain text (not encrypted) in the service definition or application configuration files and are stored in different locations multiple times. We need a central management system that stores and encrypts secrets to prevent the risks of the keys being exposed.
- Functional Requirements (Use Case)
1.
Use Case Title: | Secure secret storage |
---|---|
Description | Ensures secrets (API keys) are encrypted and secured |
Trigger |
|
Primary Actors (Personas) | |
Secondary Actors | |
Stakeholders | |
Preconditions |
|
Flow (Main success Scenario) |
|
Alternative flows | N/A |
Post-conditions | Success End condition:
|
Frequency | Determined by the API |
Priority | MUST |
2.
Use Case Title: | Rotate Vault access keys |
---|---|
Description | Enables system admin to rotate vault Keys with no data loss when required (e.g system breach or system maintenance). |
Glossary | Rotate Vault Keys: The changing of the unseal key for vault, meaning that existingsecrets will be re-encrypted with a new key |
Trigger | Triggered by System admin request |
Primary Actors (Personas) | |
Secondary Actors | |
Stakeholders | |
Preconditions |
|
Flow (Main success Scenario) |
|
Alternative flows | N/A |
Post-conditions | Success End condition:
Failure End condition:
|
Frequency | Determined by Customer internal policies |
Priority | MUST |
3.
Use Case Title: | Add secrets in vault from a new storage location |
---|---|
Description | Ensures secrets (API keys) from a new storage location are added to the vault so that they are encrypted and secured |
Trigger | Triggered when a new storage location is added by the appropriate API endpoint |
Primary Actors (Personas) | |
Secondary Actors | |
Stakeholders | |
Preconditions |
|
Flow (Main success Scenario) |
|
Alternative flows | N/A |
Post-conditions | Success End condition:
|
Frequency | Determined by the API |
Priority | MUST |
4.
Use Case Title: | Discard secrets in vault from a deleted storage location |
---|---|
Description | Ensures secrets (API keys) from a deleted storage location are removed permanently from the vault |
Trigger | Triggered when a storage location is deleted by the appropriate API endpoint |
Primary Actors (Personas) | |
Secondary Actors | |
Stakeholders | |
Preconditions |
|
Flow (Main success Scenario) |
|
Alternative flows | N/A |
Post-conditions | Success End condition:
|
Frequency | Determined by the API |
Priority | MUST |
- Non functional requirements
Area | Requirement | MoSCoW | Additional comments |
Hardware Requirements |
| ||
Software Requirements and Licencing |
| ||
Performance Requirements | Excluding startup of the system there should be no impact to the concurrent capture of the platform. | ||
Supportability Requirements |
| ||
Security Requirements |
| ||
Interface Requirements |
| ||
Usability/Accessibility |
| ||
Compliance Requirement |
| ||
Training |
| Documentation for Vault key rotations and Vault key backups and recovery will be provided. | |
Resilience |
| ||
Legal and Regulatory |
| ||
Scalability |
|
Assumptions
- There will be no user interaction with the secrets stored in vault directly. As such, the only customer facing API endpoint will be the 'rotate' functionality. No 'GetKeyByAlias' functionality will exist
- The provisioning of storage accounts (and the securing of their credentials in vault) will be handled at install time, no endpoint will be created to add a new key into vault
- The rotate functionality will only change the encryption keys for vault itself, the secrets will remain unchanged when encrypted (obviously changing the vault encryption key will mean all the underlying encrypted secrets change)
- Scope for future development
Brief description of Future enhancements
- (QA) to review and sign-off
- (Team Lead) to review and sign-off
- (Dev Manager) to review and sign-off
- (Team Lead) to review and sign-off
- Jayasri (Unlicensed)
- Konstantin Kovbasa (Deactivated)
Project Team: Alpha, Beta or Charlie | Roles |
---|---|