Certificate Authority Service 最佳实践
本页概述了一些最佳实践,可帮助您更有效地使用 Certificate Authority Service。
角色和访问权限控制
您可以使用 Identity and Access Management (IAM) 向用户授予角色。角色包含一个或多个权限。IAM 中的角色可以是基本角色、预定义角色或自定义角色。
| IAM 角色类型 | 说明 |
|---|---|
| 基本版 | 包括在引入 IAM 之前已存在的 Owner、Editor 和 Viewer 角色。 |
| 预定义 | 预定义角色由 Google 创建和维护。 |
| 自定义 | 自定义角色是用户定义的,可让您捆绑一个或多个受支持的权限以满足您的特定需求。如需了解详情,请参阅了解自定义角色。 |
在任何给定时间,个人都不应被分配多个角色。此外,所有持有已分配角色的人员都应接受有关其职责和安全实践的适当简报和培训。如果您想向个人分配一组不同的权限,建议您使用 IAM 创建自定义角色。如需了解如何创建自定义角色,请参阅创建和管理自定义角色。
如需了解权限和预定义的 IAM 角色,请参阅 使用 IAM 进行访问权限控制。
CA Service 层级
层级是为证书授权机构 (CA) 池设置的。CA 池中的所有 CA 都被分配了相同的层级。CA Service 为 CA 池提供了两个运营服务层级:DevOps 和 Enterprise。这两个层级根据运营要求,为组织提供了性能和生命周期管理功能的平衡。
- 我们建议您仔细考虑是否使用 DevOps 层级,因为它不支持证书撤消。
- 对于 DevOps 层级中的 CA,系统不会存储已颁发的证书。您只能通过查看 Cloud Audit Logs(如果已启用)来跟踪证书。我们建议您仅将 DevOps 层级用于不需要撤消的短期证书,例如用于微服务、容器、会话证书、非持久性虚拟机和其他隔离需求的证书。
- 公钥基础架构 (PKI) 可以包含 DevOps 和 Enterprise 层级中的 CA 的组合,以满足各种需求。
- 在大多数情况下,我们建议您使用 Enterprise 层级来创建向其他 CA 和最终实体颁发证书的 CA 池。
如需详细了解 CA Service 层级,请参阅选择运营层级。
如需了解如何启用 Cloud Audit Logs,请参阅配置数据访问审核日志。
CA 签名密钥
对 CA 证书的基础加密密钥对进行适当控制,可决定 PKI 提供的安全性和完整性。本部分列出了一些保护 CA 签名密钥的最佳实践。
硬件安全模块 (HSM)
您可以将 CA Service 配置为使用 由 Google 拥有和管理的 加密密钥,这些密钥使用 Cloud HSM 来生成、存储和使用密钥。不过,如果您想使用现有的 Cloud KMS 密钥,可以在设置 CA 期间使用该密钥。
如需详细了解 Cloud HSM,请参阅 Cloud HSM。
如需详细了解如何将加密密钥导入 Cloud HSM 或 Cloud KMS,请参阅将密钥导入 Cloud KMS。
Google 管理的密钥与客户管理的密钥
如果您没有需要 直接在 CA Service 之外管理密钥的自定义安全或运营要求,我们建议您使用 由 Google 拥有和管理的 加密密钥。 由 Google 拥有和管理的 加密密钥提供了一个简化的、 默认安全的密钥生成、存储和使用系统。
由Google 拥有和管理的 加密密钥使用 Cloud HSM,并且任何 其他组织都无法访问或使用这些密钥。您可以通过 Cloud Audit Logs 审核对 Cloud HSM 签名密钥的访问和使用情况。
如需详细了解生命周期管理模型,请参阅管理资源。
导入外部 CA
无法将之前颁发的证书导入 CA Service。我们建议您不要将包含已颁发证书的现有外部 CA 导入 CA Service。
密钥托管
CA Service 使用 Cloud KMS 和 Cloud HSM 来保护密钥免遭导出和提取。如果您的组织想要保留 CA 密钥的副本,可以使用本地工具生成密钥。如需将这些密钥与 CA Service 搭配使用,请将密钥导入 Cloud KMS 和 Cloud HSM。然后,您可以安全地托管密钥并保持所有权,直到将来需要时为止。
如需了解如何将密钥导入 Cloud KMS,请参阅将密钥导入 Cloud KMS。
CA 密钥大小和算法
加密密钥大小和算法定义了用于对证书和证书撤消列表 (CRL) 进行签名的非对称密钥对的类型和强度。CA 的生命周期可能相对较长。因此,密钥必须足够强大,才能在 CA 的预期生命周期内保持安全。
如果您拥有一个定义明确的 PKI 环境并使用现代设备,那么 椭圆曲线数字签名算法 (ECDSA) 可提供最佳性能和安全性。对于拥有各种系统且不确定密钥支持的组织,使用基于 RSA 的密钥可能就足够了。
CA 签名密钥还有其他注意事项,例如是否符合认证要求、与其他系统的兼容性以及特定的威胁模型。选择密钥大小和算法时,请考虑您的使用场景。
无论 CA 的生命周期或密钥大小和算法如何,我们都建议您设置一个定期轮换 CA 密钥的流程。
如需详细了解如何为签名密钥选择算法,请参阅 选择密钥算法。