首页 > 解决方案 > Openshift 上的 Vault 服务器 - 连接被拒绝

问题描述

我想使用保管库服务器来存储机密并将其部署在 openshift 上。

我编写了这个 dockerfile,构建了镜像并将其推送到 openshift 注册表,并从这个镜像流创建了一个部署:

FROM vault:1.5.0
ADD *.hcl /etc/config.hcl

ENTRYPOINT ["vault", "server", "-config=/etc/config.hcl"]

这是配置:

storage "file" {
  path = "/vault/data"
}

listener "tcp" {
  address="127.0.0.1:8200"
  tls_disable=1
}

disable_mlock = true

api_addr = "http://127.0.0.1:8200"

我创建了一条到 8200 端口的路由。当我从 vault-server pod 内部使用 vault CLI 时,它工作正常,我可以登录、配置等。当我在本地计算机上使用 openshift cli 将端口 8200 转发到我的本地 8200 端口时,我还可以访问 API。

问题是我无法从 pod 之外的任何地方访问 API。该路由给我一个 503 响应,当通过http://vault-server.namepsace.svc:8200尝试时,我得到连接被拒绝(使用 Spring Rest 模板)。

如何将 Vault 配置为也接受外部流量?

标签: javaspringkubernetesopenshifthashicorp-vault

解决方案


你的listener块意味着你只监听来自本地主机的连接。address将字段更改0.0.0.0:8200为侦听所有接口:

listener "tcp" {
  address="0.0.0.0:8200"
}

并且请不要忘记在连接正常后立即启用 TLS。


推荐阅读