本文档介绍了 Secret Manager 中 Cloud SQL Secret 的自动轮换。借助自动轮换,Secret Manager 会生成安全密码,更新目标 Cloud SQL 数据库实例中的 Secret,并将新 Secret 存储为最新的 Secret 版本。
自动轮播的优势
自动轮换具有以下优势:
- 无需维护用于轮换凭据的自定义 Cloud Run 函数。
- 通过频繁轮换凭据来最大限度地减少泄露凭据的影响。
- 可让您满足要求定期轮替密码的合规性要求,例如支付卡行业数据安全标准 (PCI-DSS)。如需了解详情,请参阅合规性资源中心。
主要概念
如需使用自动轮播功能,您必须了解以下概念:
Secret 类型
您可以使用 Secret 类型对 Secret 进行分类。如需启用自动轮替,请在创建时选择 Cloud SQL DB credentials Secret 类型。如需了解详情,请参阅创建区域性 Secret。
现有 Secret 不支持自动轮替。
Secret 的内置身份
Secret 是具有内置身份的资源类型。每个 Secret 都有一个唯一标识符,用于将其与 Cloud de Confiance by S3NS 项目中的所有其他资源区分开来。当您创建 Secret 时,系统会自动生成此唯一标识符,并将其存储在 Secret 资源的 iamPolicyUidPrincipal 字段中。如需了解详情,请参阅资源的内置身份。
您必须向内置身份授予在 Cloud SQL 实例上更新凭据所需的权限。 这可确保 Secret 仅拥有轮换自身凭据所需的权限,从而遵循最小权限原则。
轮替安排和状态
您可以使用轮替时间表来指定密钥的轮替频率。 例如,每 30 天或 90 天一次。
系统会使用密文的轮替状态来跟踪轮替计划的健康状况:
Enabled:轮替时间表已启用,并且最近一次轮替成功完成。Disabled:轮换时间表已暂停。如果轮换尝试失败,状态也会更改为Disabled。
轮播策略
每个 Cloud SQL DB credentials Secret 管理一组数据库凭据(Cloud SQL 实例 ID、用户名和密码)。
在轮换期间,Secret Manager 会为 Cloud SQL 用户生成安全密码,并更新 Secret Manager 和目标 Cloud SQL 实例中的 Secret。
旋转生命周期
自动轮替流程遵循由 Secret Manager 管理的特定生命周期,并且工作流包含以下步骤:
- 启动:该流程会根据配置的轮替时间表或按需手动轮替来启动。
- 生成:Secret Manager 会生成符合 Cloud SQL 密码政策的安全密码。
- 同步:Secret Manager 会更新目标 Cloud SQL 实例中的密码,并将新 Secret 存储为最新的 Secret 版本。在此阶段,Cloud SQL 实例已使用新密码,但 Secret
alias仍指向旧版本。 - 更新别名:Secret Manager 会更新密文别名,使其指向新的密文版本。
- 发送通知:如果已配置,Secret Manager 会发送 Pub/Sub 通知,提醒您轮换成功或失败。
如果轮替失败,系统会自动重试。如果失败情况持续存在,Secret Manager 会将轮替状态设置为 Disabled。如需恢复轮换,您必须解决根本问题并重新启用轮换。