hashicorp-vault - 系统重新启动后无法解封 hashcorp 保管库
问题描述
我在本地安装了 Vault 并启动、解封并初始化了 Vault 并添加了一些秘密。重新启动后,我无法使用密钥打开保险库。前两个开封密钥被接受,没有问题,但在提交第三个密钥后,我得到一个错误响应:
Error unsealing: Error making API request.
URL: PUT https://127.0.0.1:28200/v1/sys/unseal
Code: 500. Errors:
* failed to decrypt encrypted stored keys: cipher: message authentication failed
有什么想法吗?我正在运行 Vault 版本 1.4.2。我使用的命令是vault operator unseal
. 服务器配置为:
Vault_server.hcl
listener "tcp" {
address = "127.0.0.1:28200"
tls_cert_file = "/etc/vault/certs/vault_cert.crt"
tls_key_file = "/etc/vault/certs/vault_cert.key"
}
storage "file" {
path = "/etc/vault/mnt/data"
}
api_addr = "https://127.0.0.1:28200" # my $VAULT_ADDR is https://127.0.0.1:28200
disable_mlock = true
相关日志输出:
Jun 12 21:26:24 lambda vault[1147]: 2020-06-12T21:26:24.537-0500 [DEBUG] core: unseal key supplied
Jun 12 21:26:24 lambda vault[1147]: 2020-06-12T21:26:24.537-0500 [DEBUG] core: cannot unseal, not enough keys: keys=1 threshold=3 nonce=920f7d80-fdcc-3bc3-149e-8b069ef23acb
Jun 12 21:26:38 lambda vault[1147]: 2020-06-12T21:26:38.069-0500 [DEBUG] core: unseal key supplied
Jun 12 21:26:38 lambda vault[1147]: 2020-06-12T21:26:38.069-0500 [DEBUG] core: cannot unseal, not enough keys: keys=2 threshold=3 nonce=920f7d80-fdcc-3bc3-149e-8b069ef23acb
Jun 12 21:26:51 lambda vault[1147]: 2020-06-12T21:26:51.984-0500 [DEBUG] core: unseal key supplied
我在网络搜索中能找到的最相关的问题是那些无意中损坏了他们的存储的人:
- https://github.com/hashicorp/vault/issues/5498
- https://groups.google.com/forum/#!msg/vault-tool/N9fc_dUejJw/OfovdNNHBwAJ
- https://discuss.hashicorp.com/t/move-vault-installation-between-servers/6990/2
我不确定这是否适用于此。我正在使用文件系统存储,保险库是 中所有内容的所有者/etc/vault
,我无法判断任何数据已丢失或损坏。
解决方案
我在 GKE 上使用他们的官方 vault-k8s helm chart 在 HA 模式下新安装的 vault 1.4.2 遇到了同样的问题。我将它部署在 2 个环境中。第一个没问题,但是当我尝试将第二个保管库实例加入 HA 集群时,第二个失败的方式与您描述的完全相同。我只是删除并重新安装了几次,最终成功了。
推荐阅读
- python - 重塑使用 timeseries_dataset_from_array 预处理的 Tensorflow 数据集
- c++ - 如何从 C++ 中的 GNU gettext .mo 文件中获取编码
- flutter - Moor 加密:从 pre null sound db 解密失败
- r - 通过逻辑运算符对数据框进行子集和过滤,并选择上述行
- python - PYQT5动态地将按钮分配给功能
- typescript - typescript 从映射类型中提取,props 的 union 类型的具体值
- python - 如何使用 python psycopg2 库将 bytea 转换或转换为 json
- twitter - TwitterOAuth 和 OpenSSL:来自 Twitter“followers/ids”API 调用的 errno 104
- angular - 在多个组件之间共享样式并对其进行重复数据删除
- jenkins - 从 FreeStyle 作业执行共享库