Amazon Simple Notification Service(Amazon SNS) 주제에 구독자를 추가하려고 했는데 Identity and Access Management(IAM) 권한 부여 오류가 발생했습니다.
간략한 설명
IAM 엔터티가 구독 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"
참고: 자세한 오류 메시지를 확인하여 오류가 ID 기반 정책에서 발생했는지, 리소스 기반 정책에서 발생했는지 확인하십시오.
이 오류를 해결하려면 Amazon SNS 주제에 대한 구독 API 작업을 실행할 권한을 IAM 개체에 부여하십시오.
해결 방법
Amazon SNS 주제에 대한 구독 API 작업을 실행할 권한을 IAM 엔터티에 부여하려면 다음 단계를 완료하십시오.
교차 계정 액세스
IAM 엔터티가 SNS 주제의 AWS 교차 계정에 있는 경우 다음 단계를 완료하십시오.
-
IAM 엔터티에 엔터티가 sns:Subscribe API 작업을 실행할 수 있도록 허용하는 다음 ID 기반 정책을 연결합니다.
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "SNSSubscribePermission",
"Effect": "Allow",
"Action": "sns:Subscribe",
"Resource": "YOUR_SNS_TOPIC_ARN"
}
]
}
참고: YOUR_SNS_TOPIC_ARN을 Amazon SNS 주제의 Amazon 리소스 이름(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 작업에 대한 권한을 허용하는 정책을 연결합니다. 이전 단계의 ID 기반 정책 또는 리소스 기반 정책을 연결합니다.
관련 정보
Amazon SNS에서 자격 증명 기반 정책 사용