我嘗試將訂閱用戶新增至 Amazon Simple Notification Service (Amazon SNS) 主題,但收到 Identity and Access Management (IAM) 授權錯誤。
簡短說明
當 IAM 實體嘗試將訂閱新增至 Amazon SNS 主題,但沒有 Subscribe API 動作權限時,SNS 會傳回以下錯誤:
「An error occurred (AuthorizationError) when calling the Subscribe operation: User: your_IAM_user_or_role is not authorized to perform: sns:Subscribe on resource: YOUR_SNS_TOPIC_ARN」
**注意:**檢查您的特定錯誤訊息,以判斷錯誤來自身分型政策還是資源型政策。
若要解決此錯誤,請授予 IAM 實體在 Amazon SNS 主題上執行 Subscribe API 動作的權限。
解決方法
若要授予 IAM 實體在 Amazon SNS 主題上執行 Subscribe API 動作的權限,請完成以下步驟:
跨帳戶存取權
如果 IAM 實體位於您的 SNS 主題的 AWS 跨帳戶中,請完成以下步驟:
-
將以下身分型政策附加至允許實體執行 sns:Subscribe API 動作的 IAM 實體:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "SNSSubscribePermission",
"Effect": "Allow",
"Action": "sns:Subscribe",
"Resource": "YOUR_SNS_TOPIC_ARN"
}
]
}
**注意:**將 YOUR_SNS_TOPIC_ARN 替換為 Amazon SNS 主題的 Amazon Resource Name (ARN)。
-
將以下資源型政策附加至主題的存取政策,以允許 IAM 實體執行 sns:Subscribe API 動作:
{
"Sid": "AllowIAMEntity",
"Effect": "Allow",
"Principal": {
"AWS": "YOUR_IAM_ENTITY_ARN "
},
"Action": "sns:Subscribe",
"Resource": "YOUR_SNS_TOPIC_ARN"
}
**注意:**將 YOUR_IAM_ENTITY_ARN 替換為 IAM 實體的 ARN。將 YOUR_SNS_TOPIC_ARN 替換為 Amazon SNS 主題的 ARN。
相同帳戶存取權
如果 IAM 實體與您的 SNS 主題位於相同 AWS 帳戶中,請附加政策以允許 sns:Subscribe 動作的權限。請附加前述步驟中的身分型政策或資源型政策。
相關資訊
搭配 Amazon SNS 使用身分型政策