

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# Amazon SQS 政策的基本範例
<a name="sqs-basic-examples-of-sqs-policies"></a>

本節說明常見 Amazon SQS 使用案例的範例政策。

當您將政策連接到使用者時，可以使用主控台來驗證每個政策的效果。起初，使用者沒有許可且無法在主控台進行任何操作。隨著您將政策連接到使用者，便可以驗證使用者在主控台上能夠執行各種動作。

**注意**  
我們建議您使用兩個瀏覽器視窗：一個用於授予許可，另一個 AWS 管理主控台 用於使用使用者的登入資料登入 ，以便在將許可授予使用者時驗證許可。

## 範例 1：授予一個許可給一個 AWS 帳戶
<a name="grant-one-permission-to-one-account"></a>

下列範例政策會授予美國東部 （俄亥俄） `444455556666/queue1` 區域中名為 之佇列的 `111122223333` `SendMessage` 許可 AWS 帳戶 編號。

------
#### [ 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：將兩個許可授予一個 AWS 帳戶
<a name="grant-two-permissions-to-one-account"></a>

下列範例政策會授予名為 之佇列`111122223333`的 `SendMessage`和 `ReceiveMessage`許可 AWS 帳戶 編號`444455556666/queue1`。

------
#### [ 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：將所有許可授予兩個 AWS 帳戶
<a name="grant-all-permissions-to-two-accounts"></a>

下列範例政策授予兩個不同的 AWS 帳戶 號碼 (`111122223333` 和 `444455556666`) 許可，以使用 Amazon SQS 允許`123456789012/queue1`在美國東部 （俄亥俄） 區域中名為 的佇列共用存取的所有動作。

------
#### [ 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：授與跨帳戶許可給角色和使用者名稱
<a name="grant-cross-account-permissions-to-role-and-user-name"></a>

下列範例政策授予 `role1`和 AWS 帳戶 數字`username1`下的`111122223333`跨帳戶許可，以使用 Amazon SQS 允許`123456789012/queue1`在美國東部 （俄亥俄） 區域中名為 的佇列共用存取的所有動作。

跨帳戶許可權不會套用至下列動作：
+ `[AddPermission](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_AddPermission.html)`
+ `[CancelMessageMoveTask](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_CancelMessageMoveTask.html)`
+ `[CreateQueue](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_CreateQueue.html)`
+ `[DeleteQueue](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_DeleteQueue.html)`
+ `[ListMessageMoveTask](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_ListMessageMoveTasks.html)`
+ `[ListQueues](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_ListQueues.html)`
+ `[ListQueueTags](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_ListQueueTags.html)`
+ `[RemovePermission](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_RemovePermission.html)`
+ `[SetQueueAttributes](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_SetQueueAttributes.html)`
+ `[StartMessageMoveTask](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_StartMessageMoveTask.html)`
+ `[TagQueue](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_TagQueue.html)`
+ `[UntagQueue](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_UntagQueue.html)`

------
#### [ 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：授與許可給所有使用者
<a name="grant-permissions-to-all-users"></a>

以下範例政策授與所有使用者 (匿名使用者) 對名為 `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：授與有限時間的許可給所有使用者
<a name="grant-time-limited-permission-to-all-users"></a>

以下範例政策授與所有使用者 (匿名使用者) 對名為 `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 範圍的所有使用者
<a name="grant-all-permissions-to-all-users-in-cidr-range"></a>

以下範例政策授予所有使用者 (匿名使用者) 許可，對名為 `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 範圍內使用者的允許清單和封鎖清單許可
<a name="allowlist-blocklist-permissions-for-users-in-different-cidr-ranges"></a>

以下範例政策有兩個陳述式：
+ 第一個陳述式授與 `192.0.2.0/24` CIDR 範圍內 (`192.0.2.188` 除外) 的所有使用者 (匿名使用者) 許可，對名為 `111122223333`/queue1 的佇列使用 `SendMessage` 動作。
+ 第二個陳述式封鎖 `12.148.72.0/23` 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"
         }
      }
   }]
}
```

------