跳至內容

如何在將訂閱用戶新增至 Amazon SNS 主題時,解決 IAM 授權錯誤?

1 分的閱讀內容
0

我嘗試將訂閱用戶新增至 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 跨帳戶中,請完成以下步驟:

  1. 將以下身分型政策附加至允許實體執行 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)

  2. 將以下資源型政策附加至主題的存取政策,以允許 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 使用身分型政策

AWS 官方已更新 6 個月前