在 Amazon SQS 中测试基于属性的访问控制 - Amazon Simple Queue Service
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

在 Amazon SQS 中测试基于属性的访问控制

以下示例展示了如何在 Amazon SQS 中测试基于属性的访问控制。

创建一个队列,将标签键设置为环境,将标签值设置为生产

运行此 Amazon CLI 命令来测试创建队列,标签键设置为 environment,标签值设置为 prod。如果您没有 Amazon CLI,则可以为您的计算机下载和配置 CLI。

aws sqs create-queue --queue-name prodQueue —region us-east-1 —tags "environment=prod"

您会收到来自 Amazon SQS 端点的 AccessDenied 错误:

An error occurred (AccessDenied) when calling the CreateQueue operation: Access to the resource <queueUrl> is denied.

这是因为 IAM 用户的标签值与 CreateQueue API 调用中传递的标签不匹配。请记住,我们向 IAM 用户应用了一个标签,其键设置为 environment,值设置为 beta

创建一个队列,将标签键设置为环境,将标签值设置为测试

运行此 CLI 命令来测试创建队列,将标签键设置为 environment,将标签值设置为 beta

aws sqs create-queue --queue-name betaQueue —region us-east-1 —tags "environment=beta"

您会收到一条消息,确认队列已成功创建,如下所示。

{ "QueueUrl": "<queueUrl>“ }

向队列发送消息

运行此 CLI 命令以测试向队列发送消息。

aws sqs send-message --queue-url <queueUrl> --message-body testMessage

响应会显示消息已成功传送到 Amazon SQS 队列。IAM 用户权限允许您向带有 beta 标签的队列发送消息。响应包括 MD5OfMessageBody 和包含消息的 MessageId

{ "MD5OfMessageBody": "<MD5OfMessageBody>", "MessageId": "<MessageId>" }