내 Amazon Simple Queue Service(Amazon SQS) 대기열이 다른 AWS 계정의 Amazon Simple Notification Service(SNS) 주제를 구독했습니다. Amazon SNS 콘솔에서 교차 계정 구독의 속성을 보거나 편집할 때 'authorization error'가 나타납니다. 해결하려면 어떻게 해야 하나요?
간략한 설명
주제를 소유하지 않은 계정에서 SQS 대기열에 대한 SNS 주제 구독을 생성하는 경우, SQS 대기열을 소유하는 계정이 구독을 소유합니다. SNS 주제를 생성한 계정에서 SNS 구독 속성을 보거나 편집하면 권한 부여 오류가 발생합니다.
참고: 구독 관련 보기 및 편집 권한은 SNS 주제 정책 작업-,Valid%20Amazon%20SNS%20policy%20actions,-Amazon%20SNS%20supports)에 포함할 수 없습니다. 대신 다음 해결 방법을 사용하십시오.
해결 방법
AWS Console 사용
- SNS 주제를 소유한 계정에서 Amazon SNS 콘솔을 엽니다.
- 탐색 창에서 주제를 선택합니다.
- 주제의 이름을 선택합니다. 그런 다음 구독 탭에서 SQS 대기열 구독의 구독 ID를 복사합니다.
- SQS 대기열을 소유한 계정에서 Amazon SNS 콘솔을 엽니다.
- 구독 메뉴 옵션에서 단계 3에서 복사한 구독 ID를 선택합니다.
- 필요에 따라 구독 속성을 보고 편집합니다.
GetSubscriptionAttributes 사용
참고: AWS Command Line Interface(AWS CLI) 명령을 실행할 때 오류가 발생할 경우
AWS CLI의 최신 버전을 사용하고 있는지 확인하세요.
AWS Command Line Interface(AWS CLI) 또는 SDK로 구독 생성에 사용한 계정에서 GetSubscriptionAttributes를 이용해 구독 속성을 봅니다. 이 명령을 실행하려면 IAM 사용자 또는 역할에 SNS 작업 SetSubscriptionAttributes 및 GetSubscriptionAttributes에 대한 권한을 가지고 있어야 합니다.
다음 예제에서는 AWS CLI의 GetSubscriptionAttributes를 **SubscriptionArn=**를 요청 파라미터로 이용해 사용합니다. SubscriptionArn을 검색하려면 ListSubscriptionsByTopic을 사용합니다.
aws sns get-subscription-attributes --subscription-arn arn:aws:sns:eu-central-1:1234567890:TestTopicSubOwnerSQS:53XXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX
{
"Attributes": {
"Owner": "9876543210",
"RawMessageDelivery": "false",
"TopicArn": "arn:aws:sns:eu-central-1:1234567890:TestTopicSubOwnerSQS",
"Endpoint": "example@amazon.com",
"Protocol": "email",
"PendingConfirmation": "false",
"ConfirmationWasAuthenticated": "false",
"SubscriptionArn": "arn:aws:sns:eu-central-1:1234567890:TestTopicSubOwnerSQS:53XXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX"
}
}
구독 삭제 및 재생성
SNS 주제를 소유한 AWS 계정에서 SNS 주제 구독의 속성을 제어하려면 다음을 수행하십시오.
- 기존 구독을 삭제합니다.
- SNS 주제를 소유한 계정에서 동일 구독을 생성합니다.
이제 SNS 주제를 소유한 AWS 계정이 생성된 구독 리소스의 소유자가 됩니다.
관련 정보
다른 AWS 계정에서 Amazon SQS 대기열에 대한 "삭제됨" 상태의 Amazon SNS 주제 구독을 다시 생성하려면 어떻게 해야 합니까?
Amazon SNS 주제에 구독자를 추가하려고 할 때의 권한 부여 오류를 해결하려면 어떻게 해야 합니까?
Amazon SNS에서 HTTP 400 "AccessDeniedException" 오류를 해결하려면 어떻게 해야 합니까?
Amazon SNS 주제의 알림을 성공적으로 수신하기 위해 Amazon SQS 구독을 받으려면 어떻게 해야 합니까
Amazon SNS 주제에 Lambda 함수를 구독하려고 할 때 권한 부여 오류가 발생하는 이유가 무엇인가요?