Amazon SNS에서 게시 작업 오류를 해결하려면 어떻게 해야 합니까?

최종 업데이트 날짜: 2021년 7월 28일

Amazon Simple Notification Service(Amazon SNS)에서 오류가 발생합니다. 이 오류는 서브넷을 사용할 때 발생하며 교차 계정 Amazon Elastic Compute Cloud(Amazon EC2) 인스턴스에서 SNS 주제를 게시하려고 할 때 발생합니다.

간략한 설명

게시 작업을 호출할 때 권한 부여 오류가 발생하면 EC2 인스턴스 IAM 역할 및 SNS 주제 액세스 정책 권한 확인 섹션의 단계를 완료합니다.

서버 측 암호화를 사용하는 SNS 주제에 문제가 있고 ‘KMSAccessDenied’ 오류가 발생하면 KMS 키 설정 및 EC2 IAM 역할 권한 확인 섹션의 단계를 완료하세요.

참고: EC2 인스턴스에서 인터넷 게이트웨이를 사용하여 인터넷에 연결할 수 없는 경우 EC2 인스턴스에서 인터넷 게이트웨이를 사용하여 인터넷에 연결할 수 없는 이유는 무엇입니까?를 참조하세요.

해결 방법

EC2 인스턴스 IAM 역할 및 SNS 주제 액세스 정책 권한 확인

EC2 인스턴스 및 Amazon SNS 주제 액세스 정책에 대해 잘못 구성된 AWS Identity and Access Management(IAM) 역할 권한으로 인해 다음 오류가 발생할 수 있습니다.

"An error occurred (AuthorizationError) when calling the Publish operation: User: arn:aws:iam::111122223333:role/cross-acc-ec2-sns-publish-role/i-0123456789f804d is not authorized to perform: SNS:Publish on resource: arn:aws:sns:us-east-2:123456789012:cross-account-ec2-sns."

KMS 키 설정 및 EC2 IAM 역할 권한 확인

EC2 인스턴스의 IAM 역할과 AWS KMS 키(KMS 키)의 AWS Key Management Service(AWS KMS) 키 정책에 대한 권한이 잘못된 경우 다음 오류가 발생할 수 있습니다.

An error occurred (KMSAccessDenied) when calling the Publish operation: null (Service: AWSKMS; Status Code: 400; Error Code: AccessDeniedException; Re
quest ID: IDNumber; Proxy: null)

참고: 위의 오류는 SNS 주제에서 서버 측 암호화를 사용하는 경우에만 발생합니다.

이 오류를 해결하려면 KMS 키 및 AWS KMS 키 정책 권한을 확인하세요.

1.    KMS 키가 활성화되어 있는지 확인합니다.

2.    EC2 인스턴스 IAM 역할이 AWS KMS 키 정책에서 kms:GenerateDataKey*kms:Decrypt를 수행할 수 있는지 확인합니다. 이는 SNS 주제에 대한 서버 측 암호화에 사용되는 KMS 키의 핵심 정책입니다. 예를 들면 다음과 같습니다.

{
  "Effect": "Allow",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:role/cross-acc-ec2-sns-publish-role"
  },
  "Action": [
    "kms:GenerateDataKey*",
    "kms:Decrypt"
  ],
  "Resource": "*"
}

3.    kms:GenerateDataKey*kms:Decrypt 권한이 EC2 인스턴스의 IAM 역할에 연결되어 있는지 확인합니다. 예를 들면 다음과 같습니다.

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "VisualEditor0",
      "Effect": "Allow",
      "Action": [
        "kms:Decrypt",
        "kms:GenerateDataKey*"
      ],
      "Resource": "*"
    }
  ]
}

이 문서가 도움이 되었나요?


결제 또는 기술 지원이 필요하세요?