Amazon Simple Queue Service
开发人员指南
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 Amazon AWS 入门

高级 Amazon SQS 策略示例

本部分显示了 Amazon SQS 常用案例的示例策略。

在将每个策略附加到用户时,可使用控制台验证该策略的效果。最初,用户没有权限并且无法在控制台中执行任何操作。在将策略附加到用户时,可以验证用户是否能在控制台中执行各种操作。

注意

建议使用两个浏览器窗口:一个浏览器窗口用于授予权限,另一个浏览器窗口用于使用用户凭证登录 AWS 管理控制台,以便在向用户授予权限时验证这些权限。

示例 1:向一个 AWS 账户授予一项权限

以下示例策略向 AWS 账户号 111122223333 授予对美国东部(俄亥俄州)区域中名为 444455556666/queue1 的队列的 SendMessage 权限。

{ "Version": "2012-10-17", "Id": "Queue1_Policy_UUID", "Statement": [{ "Sid":"Queue1_SendMessage", "Effect": "Allow", "Principal": { "AWS": [ "111122223333" ] }, "Action": "sqs:SendMessage", "Resource": "arn:aws-cn:sqs:us-east-2:444455556666:queue1" }] }

示例 2:向一个 AWS 账户授予两项权限

以下示例策略向 AWS 账号 111122223333 授予对名为 444455556666/queue1 的队列的 SendMessageReceiveMessage 权限。

{ "Version": "2012-10-17", "Id": "Queue1_Policy_UUID", "Statement": [{ "Sid":"Queue1_Send_Receive", "Effect": "Allow", "Principal": { "AWS": [ "111122223333" ] }, "Action": [ "sqs:SendMessage", "sqs:ReceiveMessage" ], "Resource": "arn:aws-cn:sqs:*:444455556666:queue1" }] }

示例 3:向两个 AWS 账户授予所有权限

以下示例策略向两个不同的 AWS 账号(111122223333444455556666)授予权限以使用所有操作,Amazon SQS 允许这些操作共享对美国东部(俄亥俄州)区域中名为 123456789012/queue1 的队列的访问权限。

{ "Version": "2012-10-17", "Id": "Queue1_Policy_UUID", "Statement": [{ "Sid":"Queue1_AllActions", "Effect": "Allow", "Principal": { "AWS": [ "111122223333", "444455556666" ] }, "Action": "sqs:*", "Resource": "arn:aws-cn:sqs:us-east-2:123456789012:queue1" }] }

示例 4:向角色和用户名授予跨账户权限

以下示例策略向 AWS 账号 111122223333 下的 role1username1 授予跨账户权限以使用所有操作,Amazon SQS 允许这些操作共享对美国东部(俄亥俄州)区域中名为 123456789012/queue1 的队列的访问权限。

跨账户权限不适用于以下操作:

{ "Version": "2012-10-17", "Id": "Queue1_Policy_UUID", "Statement": [{ "Sid":"Queue1_AllActions", "Effect": "Allow", "Principal": { "AWS": [ "arn:aws-cn:iam::111122223333:role/role1", "arn:aws-cn:iam::111122223333:user/username1" ] }, "Action": "sqs:*", "Resource": "arn:aws-cn:sqs:us-east-2:123456789012:queue1" }] }

示例 5:向所有用户授予一项权限

以下示例策略向所有用户 (匿名用户) 授予对名为 111122223333/queue1 的队列的 ReceiveMessage 权限。

{ "Version": "2012-10-17", "Id": "Queue1_Policy_UUID", "Statement": [{ "Sid":"Queue1_AnonymousAccess_ReceiveMessage", "Effect": "Allow", "Principal": "*", "Action": "sqs:ReceiveMessage", "Resource": "arn:aws-cn:sqs:*:111122223333:queue1" }] }

示例 6:向所有用户授予有时间限制的权限

以下示例策略向所有用户 (匿名用户) 授予对名为 111122223333/queue1 的队列的 ReceiveMessage 权限,但有效时间仅限于 2009 年 1 月 31 日中午 12:00 至下午 3:00 期间。

{ "Version": "2012-10-17", "Id": "Queue1_Policy_UUID", "Statement": [{ "Sid":"Queue1_AnonymousAccess_ReceiveMessage_TimeLimit", "Effect": "Allow", "Principal": "*", "Action": "sqs:ReceiveMessage", "Resource": "arn:aws-cn:sqs:*:111122223333:queue1", "Condition" : { "DateGreaterThan" : { "aws:CurrentTime":"2009-01-31T12:00Z" }, "DateLessThan" : { "aws:CurrentTime":"2009-01-31T15:00Z" } } }] }

示例 7:向 CIDR 范围内的所有用户授予所有权限

以下示例策略向所有用户(匿名用户)授予对名为 111122223333/queue1 的队列使用可以共享的所有可能的 Amazon SQS 操作的权限,但条件是请求必须来自于 192.168.143.0/24 CIDR 范围。

{ "Version": "2012-10-17", "Id": "Queue1_Policy_UUID", "Statement": [{ "Sid":"Queue1_AnonymousAccess_AllActions_WhitelistIP", "Effect": "Allow", "Principal": "*", "Action": "sqs:*", "Resource": "arn:aws-cn:sqs:*:111122223333:queue1", "Condition" : { "IpAddress" : { "aws:SourceIp":"192.168.143.0/24" } } }] }

示例 8:不同 CIDR 范围内用户的白名单和黑名单权限

以下策略示例具有两项陈述:

  • 第一个语句向 192.168.143.0/24 CIDR 范围 (192.168.143.188 除外) 内的所有用户 (匿名用户) 授予对名为 111122223333/queue1 的队列使用 SendMessage 操作的权限。

  • 第二个语句将 10.1.2.0/24 CIDR 范围内的所有用户 (匿名用户) 列入黑名单来阻止其使用该队列。

{ "Version": "2012-10-17", "Id": "Queue1_Policy_UUID", "Statement": [{ "Sid":"Queue1_AnonymousAccess_SendMessage_IPLimit", "Effect": "Allow", "Principal": "*", "Action": "sqs:SendMessage", "Resource": "arn:aws-cn:sqs:*:111122223333:queue1", "Condition" : { "IpAddress" : { "aws:SourceIp":"192.168.143.0/24" }, "NotIpAddress" : { "aws:SourceIp":"192.168.143.188/32" } } }, { "Sid":"Queue1_AnonymousAccess_AllActions_IPLimit_Deny", "Effect": "Deny", "Principal": "*", "Action": "sqs:*", "Resource": "arn:aws-cn:sqs:*:111122223333:queue1", "Condition" : { "IpAddress" : { "aws:SourceIp":"10.1.2.0/24" } } }] }