我需要哪些許可才能存取 Amazon SQS 佇列?

2 分的閱讀內容
0

我想要存取 Amazon Simple Queue Service (Amazon SQS) 佇列。存取佇列需要哪些 SQS 存取政策和 AWS Identity and Access Management (IAM) 政策許可?

解決方案

若要存取 Amazon SQS 佇列,必須將許可新增至 SQS 存取政策、IAM 政策或兩者。特定許可要求會因 SQS 佇列和 IAM 角色是否來自同一個帳戶而有所差異。

同一個帳戶

SQS 存取政策或 IAM 政策中需要允許存取的聲明。

注意:如果 SQS 存取政策或 IAM 政策明確允許存取,但其他政策明確拒絕存取,則會拒絕存取該佇列。

IAM 使用者政策SQS 存取政策結果
允許允許允許
允許既不允許也不拒絕允許
允許拒絕拒絕
既不允許也不拒絕允許允許
既不允許也不拒絕既不允許也不拒絕隱含拒絕
既不允許也不拒絕拒絕拒絕
拒絕允許拒絕
拒絕既不允許也不拒絕拒絕
拒絕拒絕拒絕

不同的帳戶

SQS 存取政策和 IAM 政策中都需要允許存取的聲明。

IAM 使用者政策SQS 存取政策結果
允許允許允許
允許既不允許也不拒絕隱含拒絕
允許拒絕拒絕
既不允許也不拒絕允許隱含拒絕
既不允許也不拒絕既不允許也不拒絕隱含拒絕
既不允許也不拒絕拒絕拒絕
拒絕允許拒絕
拒絕既不允許也不拒絕拒絕
拒絕拒絕拒絕

政策聲明範例

下列範例政策顯示必須在 IAM 政策和 SQS 佇列存取政策中設定的許可,以允許 SQS 佇列的跨帳戶存取權。

第一項政策會授予 username1 將訊息傳送至資源 arn:aws:sqs:us-east-1:123456789012:queue_1 的許可。

第二項政策允許 username1 將訊息傳送至佇列。

如需這些政策的詳細資訊,請參閱 IAM 政策類型:如何及何時使用

username1 的 IAM 政策聲明範例

{
   "Version": "2012-10-17",
   "Statement": [{
      "Effect": "Allow",
      "Action": "sqs:SendMessage",
      "Resource": "arn:aws:sqs:us-east-1:123456789012:queue_1"
   }]
}

queue_1 的 SQS 資源政策聲明範例

{
   "Version": "2012-10-17",
   "Id": "Queue1_Policy",
   "Statement": [{
      "Sid":"Queue1_AllActions",
      "Effect": "Allow",
      "Principal": {
         "AWS": [
            "arn:aws:iam::111122223333:user/username1"
         ]
      },
      "Action": "sqs:SendMessage",
      "Resource": "arn:aws:sqs:us-east-1:123456789012:queue_1"
   }]
}

AWS 官方
AWS 官方已更新 2 年前