operator rekey
operator rekey
命令生成一组新的解封密钥。这可以选择性地更改密钥分片的总数或重建主密钥所需的密钥分片的阈值。此操作不需要停机,但它需要解封 Vault 并提供足够数量个现有的解封密钥。
可以在命令行上直接提供解封密钥作为命令的参数。如果密钥指定为 "-",则命令将从 stdin 读取。如果 TTY 可用,该命令将提示输入文本。
例子
开始重新生成解封密钥:
$ vault operator rekey \
-init \
-key-shares=15 \
-key-threshold=9
开始重新生成密钥,并且启动验证程序:
$ vault operator rekey \
-init \
-key-shares=15 \
-key-threshold=9
为自动解封的 Vault 重新生成恢复密钥,并且使用 PGP 加密生成的恢复密钥:
$ vault operator rekey \
-target=recovery \
-init \
-pgp-keys=keybase:grahamhashicorp
-key-shares=1
-key-threshold=1
将 PGP 加密过的密钥保存在 Vault 内核:
$ vault operator rekey \
-init \
-pgp-keys="..." \
-backup
取回备份的解封密钥:
``shell $ vault operator rekey -backup-retrieve
删除备份的解封密钥:
```shell
$ vault operator rekey -backup-delete
使用验证随机字符来验证正在重新生成密钥:
$ vault operator rekey -verify -nonce="..."
可用标志
除了全局可用的标准标志以外,也可以配置下列标志:
输出选项
-format
(string: "table")
- 按照指定格式打印输出。合法的格式有table
、json
或yaml
。也可以通过环境变量VAULT_FORMAT
设定该值。
命令选项
-cancel
(bool: false)
- 重置重新生成密钥的进程。这会丢弃已提交的解封密钥以及配置。默认为false
。-init
(bool: false)
- 开始重新生成密钥的操作。可以在没有其他重新生成密钥操作进行的时候启动。可以用-key-shares
以及-key-threshold
标志定制新的密钥分片数以及阈值。-key-shares
(int: 5)
- 主密钥拆分的密钥分片数。该值就是生成的解封密钥的个数。该参数别名是-n
。-key-threshold
(int: 3)
- 重建主密钥所需的密钥分片数。该值必须小于等于-key-shares
。该参数别名是-t
。-nonce
(string: "")
- 重建过程需使用的随机字符串。输入每个解封密钥时都必须输入相同的随机字符串。-pgp-keys
(string: "...")
- 逗号分隔的含有 PGP 公钥文件的路径或是 Keybase 用户名(使用keybase:<username>
的格式)列表。如果给定该参数,生成的解封密钥会按照列表顺序使用对应的公钥进行加密后进行 base64 编码返回。-status
(bool: false)
- 在不提供解封密钥的情况下打印当前尝试的状态。默认为false
。-target
(string: "barrier")
- 重新生成的密钥类型。只有在启用了 HSM 功能或是使用了自动解封的情况下可以设置为recovery
。-verify
(bool: false)
- 表明在-init
阶段重建密钥的验证过程已经启动。配合-nonce
选项可以判定给定的随机字符串元被用于了验证过程。
备份选项
-backup
(bool: false)
- 将 PGP 加密过的解封密钥备份在 Vault 内核中。当发生失败时可以找回备份的密钥,或是成功后抛弃备份的密钥。该选项只有在现存的解封密钥是通过 PGP 加密的情况下有效。-backup-delete
(bool: false)
- 删除备份的解封密钥-backup-retrieve
(bool: false)
- 找回备份的解封密钥。该选项只有在现存的解封密钥是通过 PGP 加密的情况下有效。