ベーシックAmazon SQSポリシーの例
このセクションでは、一般的なAmazon SQSユースケースのサンプルポリシーを示します。
コンソールを使用して、ユーザーにポリシーをアタッチしながら各ポリシーの効果を検証できます。最初は、ユーザーにアクセス権限が付与されてないため、コンソールを使用して何もできません。ユーザーにポリシーをアタッチすることで、ユーザーがコンソールで多様なアクションを実行できることを確認できます。
2つのブラウザウィンドウを使用することをお勧めします。1つでアクセス権限を付与し、もう1つでユーザーの認証情報を使用して AWS マネジメントコンソール にサインインして、アクセス権限をユーザーに付与するごとに確認します。
例1:1つのアクセス権限を1人に付与するAWS アカウント
以下のサンプルポリシーは、AWS アカウント番号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:2つのアクセス権限を1人に付与するAWS アカウント
以下のサンプルポリシーは、AWS アカウント番号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:すべてのアクセス権限を 2人に付与するAWS アカウント
以下のサンプルポリシーでは、米国東部(オハイオ) リージョン内で123456789012/queue1という名前のキューについて、 Amazon SQSによって共有アクセスが許可されるすべてのアクションを使用するためのアクセス許可を、2つの異なるAWS アカウント番号(111122223333 および 444455556666) に付与しています。
- 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: ロールおよびユーザー名にクロスアカウントのアクセス許可を付与する
以下のサンプルポリシーは、米国東部(オハイオ) リージョン内で 123456789012/queue1 という名前のキューについて、 Amazon SQSによって共有アクセスが許可されるすべてのアクションを使用するためのクロスアカウントのアクセス許可を、AWS アカウント 番号 111122223333 の role1 および username1 に付与します。
クロスアカウント権限は、次のアクションには適用されません。
- 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:すべてのユーザーにアクセス権限を付与する
以下のサンプルポリシーは、すべてのユーザー (匿名ユーザー) に、ReceiveMessage という名前のキューに対する 111122223333/queue1 アクセス権限を付与します。
- 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:すべてのユーザーに時間制限付きのアクセス権限を付与する
以下のサンプルポリシーは、すべてのユーザー (匿名ユーザー) に、ReceiveMessageという名前のキューに対する111122223333/queue1アクセス権限を 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 範囲のユーザーの許可リストとブロックリストのアクセス権限
以下のサンプルポリシーには、2つのステートメントが含まれています。
-
最初のステートメントは、192.0.2.0/24CIDR の範囲 (192.0.2.188 を除く) に存在するすべてのユーザー (匿名ユーザー) に、SendMessage/queue1 という名前のキューに対する111122223333アクションを使用するアクセス権限を付与します。
-
2 番目のステートメントは、12.148.72.0/23CIDR の範囲に存在するすべてのユーザー (匿名ユーザー) のキュー使用をブロックます。
- 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"
}
}
}]
}