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

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

测试基于属性的访问控制

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

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

运行此 Amazon CLI 命令来测试创建队列,将标签键设置为环境,将标签值设置为生产。如果您没有 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>" }