【问题标题】:Can't connect to Hashicorp Vault in Docker container with AWS authentication- x509 certificate error无法使用 AWS 身份验证连接到 Docker 容器中的 Hashicorp Vault - x509 证书错误
【发布时间】:2019-06-03 14:54:39
【问题描述】:

我有一个 Docker 容器,其中包含一个服务,该服务需要连接到 Vault 以检索秘密以运行该服务。我的容器正在运行 Linux CentOS

在我的 Docker 容器中运行的 entrypoint.sh 脚本中,我尝试使用 Vault CLI 检索 Vault 机密,然后使用 AWS 身份验证进行身份验证。

来自 Dockerfile 的相关代码:

# Set environment variables
ENV VAULT_URL=https://releases.hashicorp.com/vault/1.0.1/vault_1.0.1_linux_amd64.zip
ENV VAULT_ADDR=MY_VAULT_ADDR_REMOVED

# Install Vault CLI for managing secrets
RUN yum install unzip -y
RUN curl -fSL "$VAULT_URL" -o /bin/vault.zip
RUN unzip /bin/vault.zip -d /bin
ENTRYPOINT ["sh", "-c", "./entrypoint.sh"]

entrypoint.sh 中的相关代码

# Login with Vault and get secrets

vault login -namespace $VAULT_NAMESPACE -method=aws role=my_role aws_access_key_id=$AWS_ACCESS_KEY_ID aws_secret_access_key=$AWS_SECRET_ACCESS_KEY aws_security_token=$AWS_SECURITY_TOKEN
vault read -namespace $VAULT_NAMESPACE some_kv

注意: $AWS_ACCESS_KEY_ID、$AWS_SECRET_ACCESS_KEY 和 $AWS_SECURITY_TOKEN 在运行时作为环境变量传入 Docker 容器。

当我运行命令时:

vault login -namespace $VAULT_NAMESPACE -method=aws role=my_role aws_access_key_id=$AWS_ACCESS_KEY_ID aws_secret_access_key=$AWS_SECRET_ACCESS_KEY aws_security_token=$AWS_SECURITY_TOKEN

我收到以下错误

Error authenticating: Put https://VAULT_URL/v1/auth/aws/login: x509: certificate signed by unknown authority

我已验证我可以使用 AWS 凭证成功地从本地计算机发出相同的 vault login 调用。

我很清楚这是一个证书问题,但我不确定我需要采取哪些步骤来解决它。

我尝试过的事情:

像这样更新了 Dockerfile,其中 vault-cert.cer 是我使用证书导出向导从浏览器下载的文件

# Certificates
COPY src/vault-cert.cer $WSO2IS_HOME/vault-cert.cer
RUN yum install ca-certificates
RUN update-ca-trust force-enable
RUN cp vault-cert.cer /etc/pki/ca-trust/source/anchors
RUN update-ca-trust extract

我希望将 .cer 文件添加到文件系统将允许 Docker 容器信任我正在验证的 URL。

【问题讨论】:

    标签: amazon-web-services docker hashicorp-vault


    【解决方案1】:

    这个命令解决了我的问题:

    # Configure Trust for Vault Certificate RUN openssl s_client -connect $VAULT_HOST:443 < /dev/null | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' >> /etc/pki/tls/certs/ca-bundle.crt

    【讨论】:

      猜你喜欢
      • 2016-03-26
      • 2019-05-08
      • 2018-07-25
      • 2017-09-05
      • 2020-05-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-06-24
      相关资源
      最近更新 更多