Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅
中国的 Amazon Web Services 服务入门
(PDF)。
Amazon SQS 策略的基本示例
本部分显示了常见 Amazon SQS 使用案例的示例策略。
在将每个策略附加到用户时,可使用控制台验证该策略的效果。最初,用户没有权限并且无法在控制台中执行任何操作。在将策略附加到用户时,可以验证用户是否能在控制台中执行各种操作。
建议使用两个浏览器窗口:一个浏览器窗口用于授予权限,另一个浏览器窗口用于使用用户凭证登录 Amazon Web Services 管理控制台,以便在向用户授予权限时验证这些权限。
示例 1:向一个 Amazon Web Services 账户授予一项权限
以下示例策略向 Amazon Web Services 账户号 111122223333 授予对美国东部(俄亥俄州)区域中名为 444455556666/queue1 的队列的 SendMessage 权限。
- JSON
-
-
{
"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 授予对名为 444455556666/queue1 的队列的 SendMessage 和 ReceiveMessage 权限。
- JSON
-
-
{
"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)授予对美国东部(俄亥俄州)区域中名为 123456789012/queue1 的队列使用 Amazon SQS 允许共享访问的所有操作的权限。
- JSON
-
-
{
"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:向角色和用户名授予跨账户权限
以下示例策略向 Amazon Web Services 账户号 111122223333 下的 role1 和 username1 授予对美国东部(俄亥俄州)区域中名为 123456789012/queue1 的队列使用 Amazon SQS 允许共享访问的所有操作的跨账户权限。
跨账户权限不能应用于以下操作:
- JSON
-
-
{
"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 权限。
- JSON
-
-
{
"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 期间。
- JSON
-
-
{
"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 范围内的所有用户授予所有权限
以下示例策略向所有用户(匿名用户)授予对名为 111122223333/queue1 的队列使用可以共享的所有可能的 Amazon SQS 操作的权限,但条件是请求必须来自于 192.0.2.0/24 CIDR 范围。
- JSON
-
-
{
"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 范围内用户的允许列表和阻止列表权限
以下策略示例具有两项陈述:
- JSON
-
-
{
"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"
}
}
}]
}