如何连接到远程 hashicorp 保险库服务器

How to connect to remote hashicorp vault server

让我在这里解释一下我的用例,

我想尝试在我的本地跳转,所以我将 VAULT_ADDR 配置为:

$ echo $VAULT_ADDR 
http://127.0.0.1:8200

然后我在开发模式下启动了 vault (vault server -dev),一切正常,我能够连接到服务器。

然后我写了一个非常简单的配置文件:

$ cat vault.config 
backend "inmem" {}

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

disable_mlock = true

我用 vault server -config=vault.config 重新启动了服务器,这也很好用。

现在我想使用部署在远程服务器(aws ec2 实例)中的保险库服务器。我已将配置文件的内容更改为以下

backend "inmem" {}

listener "tcp" {
  address = "123.456.789.1:8200" (aws ec2 public ip)
  tls_disable = 1
}

disable_mlock = true

现在这是抛出错误

'Error checking seal status: Get "http://123.456.789.1:8200/v1/sys/seal-status": dial tcp 123.456.789.1:8200: connect: connection refused'

当我尝试使用 telnet 命令检查连接时,也失败了。

  telnet 123.456.789.1 8200

'telnet: Unable to connect to remote host: Connection refused'

我在aws的安全组里开了8200端口,两个实例都在同一个vpc里。我在这里缺少什么?有帮助吗?

我找到了解决上述问题的方法。基本上我执行了以下步骤。

  1. 首先,我通过以下命令在上面的机器 ('123.456.XXX.X') 中启动了 vault 服务器
vault server -dev -dev-listen-address="123.456.789.1:8200"

这里是 123.456.789.1 --> 这是我的 ec2 实例的私有 IP,我的保管库服务器是 运行。

  1. 接下来,在我的源机器(我在 123.456.XXX.X 中调用保险库服务器的机器)中,我设置了以下参数
export VAULT_ADDR='http://123.456.789.1:8200'
export VAULT_TOKEN='*****************'
  1. 现在,当我尝试远程登录到 123.456.XXX.X 服务器时,它按预期工作
telnet 123.456.789.1 8200

输出

Trying 123.456.789.1...
Connected to 123.456.789.1.
Escape character is '^]'.