本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
轮换集群密钥 AWS 个
轮换您的集群密钥以符合安全要求并解决潜在的泄露问题。此过程需要将您的集群置于维护模式。
注意
默认情况下, AWS PCS 使用加密集群密钥。 AWS 托管式密钥如果您改用客户管理的密钥对其进行加密,请确保密钥策略授予 AWS PCS 服务相关角色访问该密钥的权限。否则, AWS PCS 无法轮换密钥。有关更多信息,请参阅 使用客户管理的密钥加密集群密钥。
先决条件
-
具有
secretsmanager:RotateSecret权限的 IAM 角色 -
集群处于
ACTIVE或UPDATE_FAILED状态
过程
-
通知集群用户即将到来的维护窗口。
-
将所有计算节点组扩展到 0 容量,将集群置于维护模式。
-
使用 UpdateComputeNodeGroup API 将所有计算节点组的最小值InstanceCount 和最大值InstanceCount 均设置为 0。
-
等到所有节点停止。
-
(可选)在终止容量之前,使用 Slurm 命令耗尽调度程序队列,以便顺利处理任务。
注意
轮换需要零个运行实例。如果开始轮换时实例仍在运行,则轮换将失败并出现以下错误:
All instances must be terminated before you rotate a secret. Set the minimum instance count to 0 to terminate active instances.
注意
在缩减期间实例仍在终止
ACTIVE时,计算节点组可以报告。它还可以在向上扩展期间ACTIVE在任何实例存在之前进行报告。扩展可能需要几分钟,最多大约 30 分钟。如果计算节点组是UPDATING,则get-compute-node-group返回更新前的缩放值, AWS PCS 会拒绝进一步的更新请求,直到更新完成。不要将实例存在ACTIVE视为确认。 -
-
通过密钥管理器启动轮换。
-
控制台方法:
-
导航到密钥管理器,选择您的集群密钥,然后选择轮换密钥。
-
-
API 方法:
-
使用密钥管理器
rotate-secretAPI。
-
-
-
确认旋转成功。
注意
即使稍后轮换失败,该
rotate-secret调用也会返回 HTTP 200。结果稍后以单独RotationFailed或RotationSucceeded事件的形式出现。200 响应仅确认了 AWS PCS 接受了请求,而不是轮换成功。-
运行
describe-secret并确认AWSCURRENT暂存标签已移至新版本并已lastRotatedDate更新。 -
或者,等待 AWS 中的
RotationSucceeded事件 CloudTrail。
注意
使用
describe-secret而不是list-secret-version-ids检查版本。list-secret-version-ids即使您指定--include-deprecated,也可以省略AWSPENDING版本。 -
-
成功轮换后,恢复群集容量。
-
使用 UpdateComputeNodeGroup API 将节点组重置为所需 min/max 容量。
-
对于 AWS PCS-managed 登录节点:无需执行其他操作。
-
对于 BYO 登录节点:
-
连接到登录节点。
-
/etc/slurm/slurm.key使用密钥管理器的新密钥进行更新。 -
重启 Slurm Auth 和 Cred Kiosk 守护程序(sackd)。
-
-
从搁浅的待处理版本中恢复
轮换失败可能会将版本限制在AWSPENDING暂存标签上,并阻止以后的轮换,错误如下:
A previous rotation isn't complete. That rotation will be reattempted.
仅此cancel-rotate-secret命令并不能删除AWSPENDING暂存标签,而是将其设置RotationEnabled为false。要清除搁置版本,请从待处理版本中移除AWSPENDING暂存标签:
aws secretsmanager update-secret-version-stage \ --secret-idsecret-arn\ --version-stage AWSPENDING \ --remove-from-version-idpending-version-id
验证旋转
要确认 Slurm 控制器可访问且节点运行正常,请使用scontrol ping和。scontrol show nodes不要sinfo用来检查没有队列的集群,因为在这种情况下什么都不sinfo显示,也不是有效的检查。
要确认节点使用当前密钥,请将 base64 解码后的AWSCURRENT密钥的 SHA-256 哈希值与节点/etc/slurm/slurm.key上的哈希值进行比较:
sha256sum /etc/slurm/slurm.key
还要将节点哈希值与AWSPREVIOUS版本进行比较,以证明节点的密钥不是过时的。我们建议您比较哈希值,而不是打印密钥材料。