由於 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 佇列政策的佇列,請完成下列步驟:
- 使用您的 AWS 帳戶根使用者存取該佇列。根使用者憑證允許完整存取帳戶中的所有資源。您可以使用根使用者帳戶移除與佇列相關聯的 Deny 政策。
- 如果 Deny 政策限制了特定實體,請嘗試取得該政策排除的實體的存取權。
**注意:**確認排除的實體是否具有存取佇列所需的權限。
- 使用 AWS Organizations 管理帳戶中的 SQSUnlockQueuePolicy AWS 受管政策。
防止 SQS 佇列存取遺失
以下最佳實務有助於防止佇列存取遺失:
包含 Allow 和 Deny 陳述式的政策範例:
{ "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 中的管理存取概觀