我正在运行最新的 CentOS,我需要 Hashicorp Vault 1.6.3 作为服务运行。我目前正在使用 kv/secret 后台,因此我可以使用
Vault kv put secret/test/hello foo=bar
为了存储机密。当将 Vault 作为服务器运行时,它会阻塞。我需要 Vault 服务器在服务器重新启动时自动作为服务启动,如果可能的话,它真的不应该阻塞。我已经大约三年没有使用 Vault 了,所以我可能只是有点笨。
所以我想我需要问的是:
当我的服务器重启时,如何启动 Vault。
它应该被阻止吗?如果不,我该如何防止这种情况发生?
答案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 脚本。