本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
CloudTrail 更新和 Amazon SQS 死信队列 (DLQ) 重新驱动的权限要求
2023 年 6 月 8 日,Amazon SQS 推出了适用于 Amazon SDK 和 Amazon Command Line Interface (CLI) 的死信队列 (DLQ) 重新驱动。此功能是对已支持 Amazon 控制台 DLQ 重新驱动的补充。如果您之前曾使用 Amazon 控制台重新驱动死信队列消息,则可能会受到以下更改的影响:
CloudTrail 事件重命名
2023 年 10 月 15 日,Amazon SQS 控制台上死信队列重新驱动的 CloudTrail 事件名称将发生变化。如果您已为这些 CloudTrail 事件设置了警报,则必须立即对其进行更新。以下是 DLQ 重新驱动的新 CloudTrail 事件名称:
上一个事件名称 | 新事件名称 |
---|---|
|
|
|
|
更新权限
在 SDK 和 CLI 版本中,Amazon SQS 还更新了 DLQ 重新驱动的队列权限,以遵守安全最佳实践。使用以下队列权限类型重新驱动 DLQ 中的消息。
-
基于操作的权限(更新 DLQ API 操作)
-
托管 Amazon SQS 策略权限
-
使用 sqs:* 通配符的权限策略
重要
要使用适用于 SDK 或 CLI 的 DLQ 重新驱动,您需要具有与上述选项之一相匹配的 DLQ 重新驱动权限策略。
如果您的 DLQ 重新驱动队列权限与上述选项之一不匹配,则您必须在 2023 年 8 月 31 日之前更新您的权限。从现在起至 2023 年 8 月 31 日,您的账户只能在您之前使用过 DLQ 重新驱动的区域使用您在 Amazon 控制台上配置的权限重新驱动消息。例如,假设您在 us-east-1 和 eu-west-1 中都有“账户 A”。在 2023 年 6 月 8 日之前,“账户 A”用于在 us-east-1 的 Amazon 控制台上重新驱动消息,但在 eu-west-1 中却没有。在 2023 年 6 月 8 日至 2023 年 8 月 31 日之间,如果“账户 A”的策略权限与上述任一选项不匹配,则只能在 us-east-1 中使用该策略在 Amazon 控制台上重新驱动消息,而不能在 eu-west-1 中重新驱动消息。
重要
如果在 2023 年 8 月 31 日之后您的 DLQ 重新驱动权限与其中一个选项不匹配,则您的账户将无法再使用 Amazon 控制台重新驱动 DLQ 消息。
但是,如果您在 2023 年 8 月期间在 Amazon 控制台上使用了 DLQ 重新驱动特征,则您可以根据这些选项之一在 2023 年 10 月 15 日之前采用新权限。
有关更多信息,请参阅标识受影响的策略。
以下是每个 DLQ 重新驱动选项的队列权限示例。使用服务器端加密 (SSE) 队列时,需要相应的 Amazon KMS 密钥权限。
基于操作
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "sqs:ReceiveMessage", "sqs:DeleteMessage", "sqs:GetQueueAttributes", "sqs:StartMessageMoveTask", "sqs:ListMessageMoveTasks", "sqs:CancelMessageMoveTask" ], "Resource": "arn:aws:sqs:<DLQ_region>:<DLQ_accountId>:<DLQ_name>" }, { "Effect": "Allow", "Action": "sqs:SendMessage", "Resource": "arn:aws:sqs:<DestQueue_region>:<DestQueue_accountId>:<DestQueue_name>" } ] }
托管策略
以下托管策略包含所需的更新权限:
-
AmazonSQSFullAccess - 包括以下死信队列重新驱动任务:开始、取消和列出。
-
AmazonSQSReadOnlyAccess - 提供只读访问权限,并包括列出死信队列重新驱动任务。
使用 sqs* 通配符的权限策略
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "sqs:*", "Resource": "*" } ] }
标识受影响的策略
如果您使用的是客户托管策略 (CMP),则可以使用 Amazon CloudTrail 和 IAM 来标识受队列权限更新影响的策略。
注意
如果您使用的是 AmazonSQSFullAccess
和 AmazonSQSReadOnlyAccess
,则无需采取进一步操作。
-
登录 Amazon CloudTrail 控制台。
-
在事件历史记录页面的查找属性下,使用下拉菜单选择事件名称。然后搜索
CreateMoveTask
。 -
选择事件,打开详细信息页面。在事件记录部分,从
userIdentity
ARN 中检索UserName
或RoleName
。 -
登录到 IAM 控制台。
-
对于用户,选择“用户”。通过上一步中标识的
UserName
选择用户。 -
对于角色,选择“角色”。通过上一步中标识的
RoleName
搜索用户。
-
-
在详细信息页面的权限部分,查看
Action
中前缀为sqs:
的所有策略,或查看Resource
中定义了 Amazon SQS 队列的策略。