卡巴斯基容器安全

与 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) 会被自动添加到证书中。如果有必要,可以手动指定 cnaltnameipsans 值,如下所示:

    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 数据库管理系统的证书和证书密钥。

本节帮助内容

HashiCorp Vault 存储设置:

与存储相关的限制