如何在生产环境中在 CentOS 上将 Hashicorp Vault 作为服务运行

如何在生产环境中在 CentOS 上将 Hashicorp Vault 作为服务运行

我正在运行最新的 CentOS,我需要 Hashicorp Vault 1.6.3 作为服务运行。我目前正在使用 kv/secret 后台,因此我可以使用

Vault kv put secret/test/hello foo=bar

为了存储机密。当将 Vault 作为服务器运行时,它会阻塞。我需要 Vault 服务器在服务器重新启动时自动作为服务启动,如果可能的话,它真的不应该阻塞。我已经大约三年没有使用 Vault 了,所以我可能只是有点笨。

所以我想我需要问的是:

  1. 当我的服务器重启时,如何启动 Vault。

  2. 它应该被阻止吗?如果不,我该如何防止这种情况发生?

答案1

Vault 是同一个二进制文件中的服务和命令行工具。因此,您可以继续vault在命令行上使用,并创建一个普通的旧式 Linux 服务供 Vault 运行。它会在那里“阻塞”,但这就是服务的用途。

根据你现在的情况,你可以从Hashicorp 关于配置 systemd 创建 Vault 服务的说明

该服务应如下所示

[Unit]
Description="HashiCorp Vault - A tool for managing secrets"
Documentation=https://www.vaultproject.io/docs/
Requires=network-online.target
After=network-online.target
ConditionFileNotEmpty=/etc/vault.d/vault.hcl
StartLimitIntervalSec=60
StartLimitBurst=3

[Service]
User=vault
Group=vault
ProtectSystem=full
ProtectHome=read-only
PrivateTmp=yes
PrivateDevices=yes
SecureBits=keep-caps
AmbientCapabilities=CAP_IPC_LOCK
Capabilities=CAP_IPC_LOCK+ep
CapabilityBoundingSet=CAP_SYSLOG CAP_IPC_LOCK
NoNewPrivileges=yes
ExecStart=/usr/local/bin/vault server -config=/etc/vault.d/vault.hcl
ExecReload=/bin/kill --signal HUP $MAINPID
KillMode=process
KillSignal=SIGINT
Restart=on-failure
RestartSec=5
TimeoutStopSec=30
StartLimitInterval=60
StartLimitIntervalSec=60
StartLimitBurst=3
LimitNOFILE=65536
LimitMEMLOCK=infinity

[Install]
WantedBy=multi-user.target

答案2

如果你认为“它阻止”是指保险库被密封,那么你可以配置云平台自动解封或者,如果您了解所有安全问题,只需为服务启动添加自动解封 bash 脚本。

相关内容