首先想办法拿到原来vault服务器的配置文件。在seal块里面写上一行disabled = "true"
,然后启动vault服务器(开个新的或者用原来的都行,只要存储后端能连上就行),进入migration模式。你应该会看到类似的log:
1 |
[WARN] core: entering seal migration mode; Vault will not automatically unseal even if using an autoseal: from_barrier_type=azurekeyvault to_barrier_type=shamir |
然后每个recovery key持有人下载一个vault,在自己的设备上执行:
(PowerShell)
1 2 |
$env:VAULT_ADDR="http://localhost:8200" ./vault.exe operator unseal "-migrate" |
(Bash)
1 2 |
export VAULT_ADDR="http://localhost:8200" ./vault operator unseal -migrate |
然后输入自己的那份recovery key。如果成功的话,会提示
1 2 3 4 5 6 7 8 9 10 11 12 13 |
Unseal Key (will be hidden): Key Value --- ----- Seal Type shamir Initialized true Sealed true Total Shares 5 Threshold 3 Unseal Progress 1/3 Unseal Nonce -UUID- Seal Migration in Progress true Version 1.1.2 HA Enabled false |
等输入的recovery key数量到达阈值以后,vault会解锁。
如果要设置新的auto unseal,同样修改配置文件,然后手工unseal一次即可。