조직의 AWS 계정이 내 계정의 Amazon SNS 주제에 메시지를 게시하도록 허용하려면 어떻게 해야 합니까?

최종 업데이트 날짜: 2020년 4월 28일

AWS 계정의 Amazon Simple Notification Service(Amazon SNS) 주제가 AWS Organizations의 조직 내 모든 계정에서 게시한 메시지를 수락하도록 하고 싶습니다. 어떻게 설정해야 합니까?

간략한 설명

조직의 모든 계정이 주제에 메시지를 게시할 수 있도록 SNS 주제의 액세스 정책을 구성합니다. 액세스 정책에서 전역 조건 키 aws:PrincipalOrgID를 포함하고 조직의 ID를 지정합니다.

해결 방법

1.    Organizations 콘솔에서 조직의 ID를 찾습니다. 자세한 내용은 마스터 계정에서 조직 세부 정보 보기를 참조하십시오.

2.    Amazon SNS 콘솔에서 주제를 생성합니다. 새 주제의 Amazon 리소스 이름(ARN)을 적어둡니다.

3.    Amazon SNS 콘솔에서 주제를 편집합니다. <topicName> 편집 페이지에서 [액세스 정책 – 선택 사항]을 확장하고 다음 예제 정책을 [JSON 편집기]에 붙여 넣습니다.

참고: [snsTopicArn]을 [주제의 ARN]으로 바꿉니다. myOrgId를 조직의 ID로 바꿉니다.

{
    "Version": "2008-10-17",
    "Id": "__default_policy_ID",
    "Statement": [
        {
            "Sid": "allow-publish-from-organization-accounts",
            "Effect": "Allow",
            "Principal": {
                "AWS": "*"
            },
            "Action": [
                "sns:Publish"
            ],
            "Resource": "snsTopicArn",
            "Condition": {
                "StringEquals": {
                    "aws:PrincipalOrgID": "myOrgId"
                }
            }
        }
    ]
}

팁: 조직의 계정이 더 많은 Amazon SNS API 작업(예: GetTopicAttributes)을 수행하도록 허용하려면 정책의 "작업" 아래에 작업을 추가합니다.

4.    테스트를 위해 이메일 주소로 SNS 주제를 구독합니다. 구독을 생성할 때 [주제의 ARN]을 지정해야 합니다.

5.    이메일에서 AWS Notifications로부터 받은 구독 확인 메시지를 찾아 구독을 확인합니다.

6.    조직 내 AWS 계정을 사용하여 계정의 SNS 주제에 메시지를 게시합니다. 게시 요청에서 주제의 ARN을 지정해야 합니다.

게시되면 이메일로 게시된 메시지를 수신합니다.