Amazon SNS 주제에 구독자를 추가하려고 할 때의 권한 부여 오류를 해결하려면 어떻게 해야 합니까?

2분 분량
0

내 Amazon Simple Notification Service(Amazon SNS) 주제에 구독자 추가 시 AWS Identity and Access Management(IAM) 권한 부여 오류가 발생합니다. 이 오류를 해결하려면 어떻게 해야 합니까?

간략한 설명

IAM 엔터티Subscribe API 작업 권한 없이 Amazon SNS 주제에 구독을 추가하려고 하면 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 엔터티는 IAM 사용자 또는 역할일 수 있습니다.

이 오류를 해결하려면 Amazon SNS 주제에 대해 Subscribe API 작업을 실행할 수 있는 권한을 IAM 엔터티에 부여합니다.

“명시적 거부”로 끝나는 유사한 오류가 발생하는 경우

SNS 리소스에 대한 IAM 엔터티 액세스를 명시적으로 거부하는 정책 명령문을 제거합니다.

해결 방법

IAM 엔터티와 SNS 주제가 서로 다른 AWS 계정에 있는 경우

다음 두 가지를 모두 수행합니다.

엔터티가 “sns:Subscribe” 작업을 실행할 수 있도록 허용하는 IAM 엔터티에 IAM 정책 명령문을 연결합니다.

자세한 설명은 IAM 자격 증명 권한 추가 및 제거를 참조하세요. 다음 예제 IAM 정책 명령문을 연결합니다.

중요: **“YOUR_SNS_TOPIC_ARN”**을 Amazon SNS 주제의 Amazon 리소스 이름(ARN)으로 바꿉니다.

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "SNSSubscribePermission",
            "Effect": "Allow",
            "Action": "sns:Subscribe",
            "Resource": "YOUR_SNS_TOPIC_ARN"
        }
    ]
}

IAM 엔터티가 “sns:Subscribe” 작업을 실행할 수 있도록 허용하는 주제의 액세스 정책에 Amazon SNS 정책 명령문을 연결합니다.

자세한 설명은 내 Amazon SNS 주제의 액세스 정책을 편집하려면 어떻게 해야 합니까?를 참조하세요. 다음 예제 Amazon SNS 정책 명령문을 연결합니다.

중요: **“YOUR_IAM USER/ROLE_ARN”**을 IAM 엔터티의 ARN으로 바꿉니다. **“YOUR_SNS_TOPIC_ARN”**을 Amazon SNS 주제의 ARN으로 바꿉니다.

{
  "Sid": "AllowIAMEntity",
  "Effect": "Allow",
  "Principal": {
    "AWS": "YOUR_IAM USER/ROLE_ARN "
  },
  "Action": "sns:Subscribe",
  "Resource": "YOUR_SNS_TOPIC_ARN"
}

IAM 엔터티와 SNS 주제가 동일한 계정에 있는 경우

다음 중 하나를 수행하되 둘 다 수행하지는 마십시오.

엔터티가 “sns:Subscribe” 작업을 실행할 수 있도록 허용하는 IAM 엔터티에 IAM 정책 명령문을 연결합니다.

-또는-

IAM 엔터티가 “sns:Subscribe” 작업을 실행할 수 있도록 허용하는 주제의 액세스 정책에 Amazon SNS 정책 명령문을 연결합니다.

정책 명령문의 예는 이 문서의 IAM 엔터티와 SNS 주제가 서로 다른 AWS 계정에 있는 경우 섹션을 참조하십시오.

IAM 엔터티의 정책 또는 SNS 주제의 액세스 정책이 SNS 리소스에 대한 액세스를 명시적으로 거부하지 않는지 확인

IAM 엔터티의 정책 및 SNS 주제의 액세스 정책을 검토합니다. 그런 다음 SNS 리소스에 대한 IAM 엔터티 액세스를 명시적으로 거부하는 모든 정책 명령문을 제거합니다.

자세한 내용은 명시적 거부와 암시적 거부 간의 차이점을 참조하십시오.


관련 정보

Amazon SNS에서 자격 증명 기반 정책 사용

AWS 공식
AWS 공식업데이트됨 3년 전