跳至內容

如何對因 Deny 佇列政策而導致的 Amazon SQS 佇列存取問題進行疑難排解?

1 分的閱讀內容
0

由於 Deny 佇列政策,我無法存取 Amazon Simple Queue Service (Amazon SQS) 佇列。

簡短描述

以下範例 Deny 政策拒絕所有 AWS Identity and Access Management (IAM) 實體存取所有 Amazon SQS 佇列動作:

{  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "deny-sqs-actions",
      "Effect": "Deny",
      "Principal": "*",
      "Action": "SQS:*",
      "Resource": "queueNameArn"
    }
  ]
}

解決方法

對 SQS 佇列存取問題進行疑難排解

如果您無法存取使用 Deny 佇列政策的佇列,請完成下列步驟:

  1. 使用您的 AWS 帳戶根使用者存取該佇列。根使用者憑證允許完整存取帳戶中的所有資源。您可以使用根使用者帳戶移除與佇列相關聯的 Deny 政策。
  2. 如果 Deny 政策限制了特定實體,請嘗試取得該政策排除的實體的存取權。
    **注意:**確認排除的實體是否具有存取佇列所需的權限。
  3. 使用 AWS Organizations 管理帳戶中的 SQSUnlockQueuePolicy AWS 受管政策。

防止 SQS 佇列存取遺失

以下最佳實務有助於防止佇列存取遺失:

包含 AllowDeny 陳述式的政策範例:

{   "Version": "2012-10-17",
   "Id": "Queue1_Policy_UUID",
   "Statement": [{
      "Sid":"Queue1_Allow_Access",
      "Effect": "Allow",
      "Principal": {"AWS": "arn:aws:iam::111122223333:user/User1"},
      "Action": "sqs:*",
      "Resource": "queueNameArn"
   }, {
      "Sid":"Queue1_Deny_Access",
      "Effect": "Deny",
      "NotPrincipal": {"AWS": "arn:aws:iam::111122223333:user/User1"},
      "Action": "sqs:*",
      "Resource": "queueNameArn"
   }]
}

上述範例政策允許 User1 IAM 使用者存取指定 SQS 佇列上的所有 Amazon SQS 動作。此政策也拒絕除 User1 之外的所有主體的佇列存取。

**注意:**Deny 政策中的 NotPrincipal 元素會排除指定的主體。Allow 陳述式會向遭排除的主體授予存取權。

如果您無法存取 SQS 佇列,請聯絡 AWS Support

如果您無法使用根使用者憑證,或不知道Deny政策排除的實體,請聯絡 AWS Support。建立支援案例並附上以下資訊:

  • 確認您使用根使用者憑證嘗試存取佇列。包括您不能使用根使用者憑證的原因,或為什麼根使用者憑證無法解決問題的原因。
  • 確認您無法使用 SQSUnlockQueuePolicy AWS 受管政策,並說明原因。
  • 確認您是佇列擁有者
  • 提供您需要存取佇列的詳細原因。

相關資訊

Amazon SQS 中的管理存取概觀

AWS 官方已更新 7 個月前