具有 KMS 自动解封功能的 EKS 上的 Vault:“http://127.0.0.1:8200/v1/sys/seal-status”:拨打 tcp 127.0.0.1:8200:连接:连接被拒
Posted
技术标签:
【中文标题】具有 KMS 自动解封功能的 EKS 上的 Vault:“http://127.0.0.1:8200/v1/sys/seal-status”:拨打 tcp 127.0.0.1:8200:连接:连接被拒绝【英文标题】:Vault on EKS with KMS auto-unseal: "http://127.0.0.1:8200/v1/sys/seal-status": dial tcp 127.0.0.1:8200: connect: connection refused 【发布时间】:2022-01-16 06:10:32 【问题描述】:我已经在我的带有 kubernetes 1.21.0 的 AWS EKS 集群中使用 Vault Helm Chart 版本 0.18.0 安装了 Vault 1.9.1,但我无法通过键入以下命令来初始化它:
kubectl --namespace=vault exec vault-0 -- vault operator init
我得到了错误
Error initializing: Put "http://127.0.0.1:8200/v1/sys/init": dial tcp 127.0.0.1:8200:
connect: connection refused
pod 正在运行但未处于 READY 状态,就绪探测失败,原因是:
Error checking seal status: Get "http://127.0.0.1:8200/v1/sys/seal-status": dial tcp 127.0.0.1:8200: connect: connection refused
这是我的图表值:
vault:
injector:
enabled: false
csi:
enabled: true
server:
enabled: true
extraVolumes:
- name: vault-storage-config
type: secret
extraArgs: -config=/vault/userconfig/vault-storage-config/config.hcl
ha:
enabled: true
replicas: 3
还有config.hcl
ui = true
storage "postgresql"
connection_url = "postgres://<user>:<pwd>@<rds.url>/vault"
table="vault_kv_store"
ha_enabled="true"
ha_table="vault_ha_locks"
service_registration "kubernetes"
seal "awskms"
kms_key_id = <my_kms_key_id>
我已启用自动解封功能,利用与 AWS KMS 的集成。 我已经检查过 EKS 工作节点是否能够访问 postgres RDS 实例并能够调用 AWS KMS 服务,它们被授予
"Version": "2012-10-17",
"Statement": [
"Action": [
"kms:Encrypt",
"kms:Decrypt",
"kms:DescribeKey",
"ec2:DescribeInstances"
],
"Effect": "Allow",
"Resource": "*"
]
有什么帮助吗?
【问题讨论】:
【参考方案1】:我自己找到了解决方案。我专注于假设权限问题的自动解封功能,实际上后来我发现这是与 postgres 数据存储有关的问题。 由于重新启动,我丢失了后来可以输入的日志
kubectl logs vault-0 -n mynamespace --previous
所以我注意到了错误
Error initializing storage of type postgresql:
failed to check for native upsert: dial tcp <rds_ip_instance>:5342: connect: connection timed
早期我使用 psql 从主机检查 rds 实例的可达性,但我没有注意到我错误配置了 postgres 端口 5343
而不是 5432
。
基本上,我一直是混词效应的受害者,这让我疯狂了 2 天!
【讨论】:
以上是关于具有 KMS 自动解封功能的 EKS 上的 Vault:“http://127.0.0.1:8200/v1/sys/seal-status”:拨打 tcp 127.0.0.1:8200:连接:连接被拒的主要内容,如果未能解决你的问题,请参考以下文章