标签: vault

https后端的HAproxy健康检查

我有 haproxy 配置,非常适合后端的 vault 服务器,使用 http 配置,它使用 200 OK 代码基于未密封和活动的 vault 服务器进行负载平衡。这适用于http。但是我们将所有内容都设置为 https (tls),因此健康检查不再起作用,haproxy 将我们引导至密封的保险库服务器。如何修改以下配置以支持 https Vault 服务器后端的健康检查?我当前的 http 配置如下:

listen vault
  bind 0.0.0.0:443
  mode tcp
  balance roundrobin
  option httpchk HEAD /v1/sys/health
  http-check expect status 200
  option tcplog
  option ssl-hello-chk
  server web1 <vault 1 IP>:8200 check
  server web2 <vault 2 IP>:8200 check
Run Code Online (Sandbox Code Playgroud)

linux load-balancing haproxy centos7 vault

10
推荐指数
2
解决办法
3万
查看次数

systemd 的网络绑定功能

我正在部署Goldfish,它是Vault 的一个接口,在专用于机密管理的服务器上进行生产。因此,安全是这里的首要问题。

我正在尝试在 Unbuntu 16.04 系统上使用 systemd 部署服务,为其提供尽可能少的权限。我希望它以非 root 用户身份运行goldfish并侦听端口 443。我尝试了多种选择。


解决方法1:使用systemd插座,在多个帖子建议我发现如这一个(金鱼后端写在去,因为在后)。这似乎是最精确和最安全的,因为它完全由 systemd 管理并为单个服务打开一个端口。我的单元文件如下所示:

  • /etc/systemd/system/goldfish.socket

    [Unit]
    Description=a Vault interface
    
    [Socket]
    ListenStream=443
    NoDelay=true  # Tried with false as well
    
    Run Code Online (Sandbox Code Playgroud)
  • /etc/systemd/system/goldfish.service

    [Unit]
    Description=a Vault interface
    After=vault.service
    Requires=goldfish.socket
    ConditionFileNotEmpty=/etc/goldfish.hcl
    
    [Service]
    User=goldfish
    Group=goldfish
    ExecStart=/usr/local/bin/goldfish -config=/etc/goldfish.hcl
    NonBlocking=true  # Tried with false as well
    
    [Install]
    WantedBy=multi-user.target
    
    Run Code Online (Sandbox Code Playgroud)

不幸的是,我得到一个“listen tcp 0.0.0.0:443: bind: permission denied”。所以看起来它仍然没有得到想要的权限,这似乎违背了为服务创建套接字的目的。我在这里缺少什么?


解决方案 2:为服务提供 CAP_NET_BIND_SERVICE 能力。这次我没有使用 systemd 套接字,而是使用AmbientCapabilities服务中的设置(也尝试使用CpabilityBoudingSetCapabilities,后者令人惊讶地未在 …

networking security systemd vault

6
推荐指数
1
解决办法
8808
查看次数