Amazon Simple Notification Service(Amazon SNS) 주제를 게시하려고 했는데 ‘publish operation’ 오류를 받았습니다.
해결 방법
수신한 Amazon SNS ‘publish operation’ 오류 유형에 대한 문제 해결 단계를 완료하십시오.
"An error occurred (AuthorizationError) when calling the Publish operation"
이 오류는 Amazon Elastic Compute Cloud(Amazon EC2) 인스턴스 및 SNS 정책에 대한 AWS Identity and Access Management(IAM) 역할 권한이 잘못되었기 때문에 발생했습니다.
이 오류를 해결하려면 IAM 역할을 사용하여 교차 계정 Amazon EC2 인스턴스에서 Amazon SNS 주제를 게시하려면 어떻게 해야 합니까?를 참조하십시오.
"An error occurred (KMSAccessDenied) when calling the Publish operation"
이 오류는 서버 쪽 암호화를 사용하는 AWS 교차 계정 Amazon EC2 인스턴스에서 SNS 주제를 게시하려고 하면 발생합니다. 이 오류는 IAM 및 AWS Key Management Service(AWS KMS) 권한이 잘못되었기 때문에 발생했습니다. EC2 인스턴스의 IAM 역할 권한과 KMS 키의 AWS KMS 키 정책이 올바르지 않습니다.
오류를 해결하려면 AWS KMS 키를 활성화하고 AWS KMS 키 정책 및 IAM 정책을 올바른 권한으로 업데이트하십시오.
참고: IAM 정책으로 최소 권한을 부여하는 것이 모범 사례입니다.
다음 단계를 완료하십시오.
-
AWS KMS 키가 활성화되어 있는지 확인합니다.
-
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": "*"
}
-
kms:GenerateDataKey* 및 kms:Decrypt권한을 사용하여 다음 IAM 역할 정책을 EC2 인스턴스에 연결합니다.
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "VisualEditor0",
"Effect": "Allow",
"Action": [
"kms:Decrypt",
"kms:GenerateDataKey*"
],
"Resource": "your_KMS_Key_ARN"
}
]
}
참고: your_KMS_Key_ARN을 KMS 키 Amazon 리소스 이름(ARN)으로 바꿉니다.