与 HashiCorp Vault 集成
卡巴斯基容器安全提供使用外部存储服务 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。
- PostgreSQL 数据库的凭据。
- 用于存储解决方案生成的文件的 S3 兼容文件存储的凭据。
- ClickHouse 数据库管理系统的凭据。
Secret 以 key:value
格式指定
其中:
<key>
是环境变量的名称<value>
是机密存储中 Secret 的完整路径,后跟 @ 符号和在存储中创建的 Secret 的密钥的名称。
例如:POSTGRES_USER: kv/secret/kcs/psql@POSTGRES_USER
要获取证书,您必须在 vault.certificate
部分的字段中指定以下内容:
- 要获取 CA 证书,请将
ca
设置设为true。
在此情况下,访问证书的路径是根据公钥基础设施(公钥基础设施,PKI)中的名称为基础的标准cert/ca
路径形成的。如果 CA 证书不是根证书,请使用caList
参数列出所有证书,包括根证书。例如:cert-ca:
ca: true
tls.crt: pki_kcs/cert/ca
caList:
- pki/cert/ca
- 要生成证书和密钥,您需要从 PKI 名称中指包含定标准
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
部分还包含具有以下证书和密钥的文件的路径:
- 外部 PostgreSQL 数据库的 CA 证书和客户端证书。
- 解决方案组件所需的证书:
- 准入控制器的 CA 证书和 CA 证书密钥。
- 卡巴斯基容器安全许可模块的证书和证书密钥。
- 包含解决方案主要业务逻辑的模块的证书和证书密钥。
- 远程过程调用平台(GRPC)的证书和证书密钥。
- 扫描器服务器的证书和证书密钥。
- 扫描器服务器 API 的证书和证书密钥。
- 企业私有网络更新文件服务器的证书和证书密钥。
- 与 S3 兼容的文件存储的证书和证书密钥。
- 事件中介的证书和证书密钥。
- 代理中介的证书和证书密钥。
- ClickHouse 数据库管理系统的证书和证书密钥。