Add plan for live credential rotation
This commit is contained in:
parent
1dac340644
commit
7076f44014
1 changed files with 104 additions and 0 deletions
104
docs/CredentialRotation.md
Normal file
104
docs/CredentialRotation.md
Normal file
|
@ -0,0 +1,104 @@
|
|||
# Credential Rotation
|
||||
|
||||
## Example Data
|
||||
|
||||
Default
|
||||
|
||||
```json
|
||||
[{
|
||||
"current": true,
|
||||
"id": "521e0760",
|
||||
"userName": "root",
|
||||
"hostName": "backup-restore-65bd9b6ff5-z69sn",
|
||||
"created": "2024-10-18 13:08:16"
|
||||
}]
|
||||
```
|
||||
|
||||
Add another password
|
||||
|
||||
```json
|
||||
[
|
||||
{
|
||||
"current": true,
|
||||
"id": "521e0760",
|
||||
"userName": "root",
|
||||
"hostName": "backup-restore-65bd9b6ff5-z69sn",
|
||||
"created": "2024-10-18 13:08:16"
|
||||
},
|
||||
{
|
||||
"current": false,
|
||||
"id": "b67161fb",
|
||||
"userName": "root",
|
||||
"hostName": "backup-restore-65bd9b6ff5-z69sn",
|
||||
"created": "2024-10-18 13:16:54"
|
||||
}
|
||||
]
|
||||
```
|
||||
|
||||
Change current password
|
||||
|
||||
```json
|
||||
[
|
||||
{
|
||||
"current": false,
|
||||
"id": "521e0760",
|
||||
"userName": "root",
|
||||
"hostName": "backup-restore-65bd9b6ff5-z69sn",
|
||||
"created": "2024-10-18 13:08:16"
|
||||
},
|
||||
{
|
||||
"current": true,
|
||||
"id": "b67161fb",
|
||||
"userName": "root",
|
||||
"hostName": "backup-restore-65bd9b6ff5-z69sn",
|
||||
"created": "2024-10-18 13:16:54"
|
||||
}
|
||||
]
|
||||
```
|
||||
|
||||
Remove old password
|
||||
|
||||
```json
|
||||
[
|
||||
{
|
||||
"current": true,
|
||||
"id": "b67161fb",
|
||||
"userName": "root",
|
||||
"hostName": "backup-restore-65bd9b6ff5-z69sn",
|
||||
"created": "2024-10-18 13:16:54"
|
||||
}
|
||||
]
|
||||
```
|
||||
|
||||
## Steps
|
||||
|
||||
Steps need to be validated and performed seperately and work independently of each other.
|
||||
To avoid problems where the program is shut down mid-transition.
|
||||
|
||||
### Stages
|
||||
|
||||
#### Initial State
|
||||
|
||||
Validation:
|
||||
|
||||
- Detect change requested: new password file environment is set
|
||||
|
||||
Steps to perform:
|
||||
|
||||
- Add new password
|
||||
- `restic -r <repo> key add --new-password-file <file>`
|
||||
|
||||
#### New password has been added
|
||||
|
||||
Validation:
|
||||
|
||||
- List of passwords has 2 entries
|
||||
- The password with the newer timestamp is not set as "current"
|
||||
|
||||
Steps to perform:
|
||||
|
||||
- Extract id of new password
|
||||
- Extract id of old password
|
||||
- Remove old password in favour of new one
|
||||
- `restic -r <repo> key remove --key-hint <new-id> <old-id>`
|
||||
- Unset new password file environment
|
Loading…
Reference in a new issue