本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
亚马逊SQS政策的基本示例
本节显示了常见的 Amazon SQS 用例的策略示例。
在将每个策略附加到用户时,可使用控制台验证该策略的效果。最初,用户没有权限并且无法在控制台中执行任何操作。在将策略附加到用户时,可以验证用户是否能在控制台中执行各种操作。
注意
我们建议您使用两个浏览器窗口:一个用于授予权限,另一个用于在向用户授予权限时 Amazon Web Services Management Console 使用用户的证书登录以验证权限。
示例 1:向一个人授予一个权限 Amazon Web Services 账户
以下示例策略向 Amazon Web Services 账户 编号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:sqs:us-east-2:444455556666:queue1" }] }
示例 2:向其中一个授予两个权限 Amazon Web Services 账户
以下示例策略为名为的队列授予 Amazon Web Services 账户 编号111122223333
SendMessage
和ReceiveMessage
权限444455556666/queue1
。
{ "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:sqs:*:444455556666:queue1" }] }
示例 3:将所有权限授予两个 Amazon Web Services 账户
以下示例策略授予两个不同的 Amazon Web Services 账户 数字(111122223333
和444455556666
)使用亚马逊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:sqs:us-east-2:123456789012:queue1" }] }
示例 4:向角色和用户名授予跨账户权限
以下示例策略授予role1
111122223333
跨 Amazon Web Services 账户 账户使用亚马逊SQS允许在美国东部(俄亥俄州)地区共享访问的所有操作的权限。username1
123456789012/queue1
跨账户权限不能应用于以下操作:
{ "Version": "2012-10-17", "Id": "Queue1_Policy_UUID", "Statement": [{ "Sid":"Queue1_AllActions", "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::111122223333:role/role1", "arn:aws:iam::111122223333:user/username1" ] }, "Action": "sqs:*", "Resource": "arn:aws: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: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:sqs:*:111122223333:queue1", "Condition" : { "DateGreaterThan" : { "aws:CurrentTime":"2009-01-31T12:00Z" }, "DateLessThan" : { "aws:CurrentTime":"2009-01-31T15:00Z" } } }] }
示例 7:向某个CIDR范围内的所有用户授予所有权限
以下示例策略授予所有用户(匿名用户)使用所有可能的 Amazon SQS 操作的权限,这些操作可以共享给名为的队列111122223333/queue1
,但前提是请求来自该192.0.2.0/24
CIDR范围。
{ "Version": "2012-10-17", "Id": "Queue1_Policy_UUID", "Statement": [{ "Sid":"Queue1_AnonymousAccess_AllActions_AllowlistIP", "Effect": "Allow", "Principal": "*", "Action": "sqs:*", "Resource": "arn:aws:sqs:*:111122223333:queue1", "Condition" : { "IpAddress" : { "aws:SourceIp":"192.0.2.0/24" } } }] }
示例 8:不同范围内的用户的白名单和黑名单权限 CIDR
以下策略示例具有两项陈述:
-
第一条语句授予
192.0.2.0/24
CIDR范围内的所有用户(匿名用户)(除外192.0.2.188
)使用名为111122223333
/queue1 的队列的SendMessage
操作的权限。 -
第二条语句阻止
12.148.72.0/23
CIDR范围内的所有用户(匿名用户)使用队列。
{ "Version": "2012-10-17", "Id": "Queue1_Policy_UUID", "Statement": [{ "Sid":"Queue1_AnonymousAccess_SendMessage_IPLimit", "Effect": "Allow", "Principal": "*", "Action": "sqs:SendMessage", "Resource": "arn:aws:sqs:*:111122223333:queue1", "Condition" : { "IpAddress" : { "aws:SourceIp":"192.0.2.0/24" }, "NotIpAddress" : { "aws:SourceIp":"192.0.2.188/32" } } }, { "Sid":"Queue1_AnonymousAccess_AllActions_IPLimit_Deny", "Effect": "Deny", "Principal": "*", "Action": "sqs:*", "Resource": "arn:aws:sqs:*:111122223333:queue1", "Condition" : { "IpAddress" : { "aws:SourceIp":"12.148.72.0/23" } } }] }