旋转和锁定私钥的最佳实践
通过 IBM Cloud® Secrets Manager,您可以设计用于旋转私钥和敏感数据的策略。 请查看以下建议的准则,以了解如何实施密钥管理最佳实践。
定义轮换策略
当您使用 Secrets Manager 来设计私钥管理策略时,请考虑您希望根据组织的内部准则来轮换私钥的频率。 提前确定哪些用户或服务标识需要访问以轮换私钥,以及如何手动轮换这些私钥以避免应用程序中断。
-
确定私钥的旋转频率。
在 Secrets Manager中存储私钥后,决定其轮换频率。 由于人员流动、流程故障或根据组织内部准则,您可能需要轮换机密。 定期轮换私钥,例如每 90 天轮换一次,以满足有关私钥管理的最佳实践。
-
测试在 Secrets Manager中管理的每种私钥类型的轮换工作流程。
Secrets Manager 评估用于旋转私钥的请求的方式因私钥类型而异。 例如,某些私钥将立即替换为您在轮换时提供的数据,而其他私钥 (例如公用证书) 将进入额外的验证步骤。 有关 Secrets Manager 如何处理旋转请求的更多信息,请参阅 手动旋转私钥。
-
建立用于将最新密钥版本部署到应用程序的过程。
使用自动流程在密钥轮换后获取并部署最新版本的密钥。 有关更多信息,请参阅 通过锁定私钥避免应用程序中断。
为即将到期的私钥设置警报
连接到 Event Notifications 服务,以便 Secrets Manager 可以在私钥或证书即将到期时提前通知您。
- 通过启用事件通知为实例设置警报。 要将实例连接到 Event Notifications 服务,请转至 Secrets Manager UI> 设置> Event Notifications。
- 在 Event Notifications 中创建主题和预订,以便可以将警报转发并传递到 所选目标,例如 Slack 或电子邮件。
为了确保您的警报配置正常运行,请在您的 IBM Cloud Logs 实例中创建一个警报,以便在您的 Event Notifications 与 Secrets Manager 集成出现问题时发出警报。Secrets Manager 还会 将发送的事件通知记录为 INFO
或 ERROR
日志。
对私钥启用自动轮换
通过启用自动旋转,简化实例中旋转私钥的过程。
-
使用自动旋转来限制私钥保持活动状态的时间。
通过定期调度私钥的自动轮换,可降低凭证受损的可能性。 根据指定的旋转时间间隔轮换私钥时,Secrets Manager 会自动创建新版本的私钥。 有关更多信息,请参阅 自动旋转私钥。
-
将自动轮换安排在私钥设置为到期之前进行。
为避免应用程序中断,建议将自动旋转与到期日期之间的最小时间间隔设置为 30 天。
通过锁定私钥来避免应用程序中断
使用锁定来规划密钥的定期轮换。 当您在自动化工作流程中创建和除去对私钥的锁定时,只有在将私钥的最新版本完全部署到应用程序之后,才能安全地删除这些私钥。
-
对私钥创建锁定以表示使用该私钥的应用程序或服务。 要从 Secrets Manager UI 创建锁定,请转至“密钥”页面,然后单击 操作 菜单
> 锁定。
您可以将锁定视为可以在私钥与使用该私钥的客户机或应用程序之间创建的一种映射。 如果某个私钥附加了锁定,那么意味着不应该修改该私钥,因为应用程序当前正在使用该私钥。
只有移除所有关联的锁,才能解锁、删除或修改一个秘密。
-
构建一个自动化流程,仅当应用程序选取了最新的私钥版本之后,才能帮助您安全地从实例中删除旧私钥或已到期的私钥。 例如,假设有以下场景:
创建将在 89 天内到期并安排在 90 天内自动轮换的私钥。
锁定机密的自动工作流程示例。 行动说明 1 运行从 Secrets Manager 获取私钥的管道,并将其部署到 Kubernetes 集群,以便应用程序可以使用该私钥。 2 在当前版本的私钥上创建锁定 (使用该私钥的每个应用程序或服务都有一个锁定)。 3 90 天后,接收来自 Event Notifications 的通知,指示您的私钥已轮换。 作为对通知的响应,运行管道以获取最新的私钥版本并将其部署到集群。 4 运行另一个管道,1) 验证集群中的服务 pod 是否选取了新私钥版本,2) 在 Secrets Manager中除去对先前私钥版本的两个锁定。 5 两天后,先前版本的私钥将到期,并且将安全地从实例中删除。 下一个定期轮换循环重复步骤 2-4。