卡巴斯基容器安全提供使用外部存储服务 HashiCorp Vault 安全地传输密码、令牌和 Secret 的功能。解决方案可生成 Pod 注释,Vault 注入器在启动时使用这些注释从存储中挂载必要的 Secret。
卡巴斯基容器安全支持与 Hashicorp Vault 1.7 或更高版本的集成。
版本 2.0 的卡巴斯基容器安全仅在使用侧边栏容器的侧边栏模式中支持使用 HashiCorp Vault;在此情况下,仅支持 Kubernetes 身份验证方法。
如果未定义 Pod 的服务账户,且使用默认服务账户,根据关键安全要求,我们不建议分配存储专用角色给此类服务账户。
HashiCorp Vault 设置的值在 values.yaml 配置文件中指定,在启动 Helm Chart 包时部署。
HashiCorp Vault 设置在 values.yaml 配置文件中配置如下:
vault 块中的 enabled 设置被设为 false ,则不使用与保管库的集成。vault 库块中的 enabled 设置被设为 true ,则启用与保管库的集成,并且 vault 设置块中的变量值优先。vault 设置块包含以下部分:
secret — 用于指定 Secret 和凭据。certificate — 用于指定证书和证书密钥。secret 部分列出了包含以下参数的机密的文件的路径:
Secret 以 key:value 格式指定
其中:
<key> 是环境变量的名称<value> 是机密存储中 Secret 的完整路径,后跟 @ 符号和在存储中创建的 Secret 的密钥的名称。例如:POSTGRES_USER: kv/secret/kcs/psql@POSTGRES_USER
要获取证书,您必须在 vault.certificate 部分的字段中指定以下内容:
ca 设置设为 true。在此情况下,访问证书的路径是根据公钥基础设施(PKI)中的名称为基础的标准 cert/ca 路径形成的。如果 CA 证书不是根证书,请使用 caList 参数列出所有证书,包括根证书。例如:
cert-ca:
ca: true
tls.crt: pki_kcs/cert/ca
caList:
- pki/cert/ca
issue 路径和创建的角色名称的路径。通用名称 (cn) 和所有可能的备用名称 (altname) 会被自动添加到证书中。如果有必要,可以手动指定 cn、altname 和 ipsans 值,如下所示:
cert-pguser:
cn: pguser
altname: pguser,pguser.psql,pguser.psql.svc,pguser.psql.svc.cluster.local,localhost
ipsans: 0.0.0.0,127.0.0.1
ttl 参数的值。默认值为 8760 小时。
该参数值不能大于 PKI HashiCorp Vault 中设置的值。
certificate 部分还包含具有以下证书和密钥的文件的路径: