45 lines
1.3 KiB
Markdown
45 lines
1.3 KiB
Markdown
# Vault backup and recovery
|
|
|
|
`dev-k3s` Vault는 single-node integrated Raft입니다. upgrade, Terraform
|
|
state migration, storage 작업 전에 snapshot을 생성합니다.
|
|
|
|
## Snapshot
|
|
|
|
short-lived authorized token과 Vault API 연결을 준비합니다.
|
|
|
|
```bash
|
|
umask 077
|
|
vault operator raft snapshot save .local/vault/dev-k3s.snap
|
|
sha256sum .local/vault/dev-k3s.snap
|
|
chmod 0600 .local/vault/dev-k3s.snap
|
|
```
|
|
|
|
즉시 암호화해 init/unseal material과 다른 위치에 보관합니다. snapshot에는
|
|
secret payload가 포함됩니다.
|
|
|
|
## Recovery material
|
|
|
|
- Raft snapshot
|
|
- unseal key
|
|
- 현재 manifest revision
|
|
- Terraform remote state backup
|
|
- Sealed Secrets controller key
|
|
|
|
Initial root token은 recovery material이 아닙니다. bootstrap 완료 후
|
|
폐기해야 합니다.
|
|
|
|
## Restore exercise
|
|
|
|
분기마다 isolated disposable cluster에서 다음을 검증합니다.
|
|
|
|
1. 동일 Vault version과 storage 설정 배포
|
|
2. Vault init 후 snapshot restore
|
|
3. 복구 key로 unseal
|
|
4. Kubernetes auth 재연결 확인
|
|
5. KV read, JWT signing, dynamic database lease issue/revoke 확인
|
|
6. recovery time과 누락된 의존성 기록
|
|
|
|
현재 dev 구성은 production recovery 설계가 아닙니다. production은
|
|
independent HA Vault, TLS, auto-unseal과 더 엄격한 backup custody가
|
|
필요합니다.
|