【问题标题】: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具有 KMS 自动解封功能的 EKS 上的 Vault:“http://127.0.0.1:8200/v1/sys/seal-status”:拨打 tcp 127.0.0.1:8200:连接:连接被拒绝
【发布时间】: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": "*"
        }
    ]
}

有什么帮助吗?

【问题讨论】:

    标签: kubernetes-helm amazon-eks hashicorp-vault amazon-kms vault


    【解决方案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 天!

    【讨论】:

      猜你喜欢
      • 2021-10-25
      • 2020-11-22
      • 1970-01-01
      • 2020-02-21
      • 2019-12-12
      • 2018-12-26
      • 2019-12-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多