Amazon SNS 항목에 알림을 보내기 위한 알림 통합 생성하기¶
Amazon SNS 항목에 알림을 보내려면 해당 항목에 대한 알림 통합을 생성해야 합니다. 이를 위해 다음을 수행하십시오.
참고
현재 이 기능은 AWS에 호스팅된 Snowflake 계정으로 제한됩니다.
Amazon SNS 항목 만들기¶
알림을 처리할 AWS 계정에서 SNS 항목을 만듭니다. SNS 항목의 ARN(Amazon Resource Name)을 기록합니다.
참고
표준 SNS 항목만 지원됩니다. 오류 알림에 사용할 SNS FIFO(first in, first out) 항목을 만들지 마십시오. 현재, FIFO 항목으로 전송된 오류 알림은 자동으로 실패합니다.
대기 시간을 줄이고 전체 리전 으로 알림을 보내기 위한 데이터 송신 요금이 발생하지 않도록 하려면 Snowflake 계정과 동일한 리전에 SNS 항목을 만드는 것이 좋습니다.
지침은 SNS 설명서에서 Amazon SNS 항목 만들기 를 참조하십시오.
IAM 정책을 생성합니다.¶
SNS 항목에 대한 게시 권한을 부여하는 AWS IAM(Identity and Access Management) 정책을 만듭니다. 이 정책은 다음 작업을 정의합니다.
sns:publish
: SNS 항목에 게시합니다.
AWS 관리 콘솔에 로그인합니다.
홈 대시보드에서 Identity & Access Management (IAM)를 선택합니다.
왼쪽 탐색 창에서 Account settings 을 선택합니다.
Security Token Service Regions 목록을 확장하고 계정이 위치한 리전 에 해당하는 AWS 리전을 찾아 상태가 Inactive 이면 Activate 을 선택합니다.
왼쪽 탐색 창에서 Policies 을 선택합니다.
Create Policy 를 선택합니다.
JSON 탭을 선택합니다.
SNS 항목에 대해 취할 수 있는 조치 사항을 정의하는 정책 문서를 추가합니다.
다음 텍스트를 복사하여 정책 편집기에 붙여넣습니다.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "sns:Publish" ], "Resource": "<sns_topic_arn>" } ] }
sns_topic_arn
을 이전에 생성한 SNS 항목의 ARN으로 바꿉니다.Review policy 를 선택합니다.
정책 이름(예:
snowflake_sns_topic
)과 설명(선택 사항)을 입력하고 Create policy 를 선택합니다.
AWS IAM 역할을 생성합니다.¶
SNS 항목에 대한 권한을 할당할 AWS IAM 역할을 만듭니다.
AWS 관리 콘솔에 로그인합니다.
홈 대시보드에서 Identity & Access Management (IAM)를 선택합니다.
왼쪽 탐색 창에서 Roles 을 선택합니다.
Create role 을 선택합니다.
Another AWS account 을 신뢰할 수 있는 엔터티 타입으로 선택합니다.
Account ID 필드에 본인의 AWS 계정 ID를 임시로 입력합니다.
Require external ID 옵션을 선택합니다. 이 옵션을 사용하면 Amazon 계정 리소스(즉, SNS)에 대한 권한을 서드 파티(즉, Snowflake)에 부여할 수 있습니다.
지금은
0000
과 같은 더미 ID를 입력하십시오. 나중에 신뢰 관계를 수정하고 더미 ID를 계정에 대해 생성된 Snowflake IAM 사용자의 외부 ID로 바꿉니다. Snowflake 사용자는 IAM 역할에 대한 신뢰 정책의 조건을 통해 나중에 만들 알림 통합 오브젝트를 사용하여 역할을 맡을 수 있습니다.Next 를 선택합니다.
이전에 만든 정책 을 찾아 이 정책을 선택합니다.
Next 를 선택합니다.
역할의 이름과 설명을 입력하고 Create role 을 선택합니다.
역할 요약 페이지에 있는 Role ARN 값을 기록합니다. 하나 이상의 이후 단계에서 이 값을 지정하게 됩니다.
알림 통합 만들기¶
CREATE NOTIFICATION INTEGRATION 명령을 실행하여 알림 통합을 생성합니다. 통합은 만든 SNS 항목을 참조하는 Snowflake 오브젝트입니다.
명령을 실행할 때, 이러한 매개 변수를 다음 값으로 설정합니다.
AWS_SNS_TOPIC_ARN 을 사용자가 이전에 기록한 SNS 항목 ARN으로 설정합니다.
AWS_SNS_ROLE_ARN을 앞서 기록한 IAM 역할 ARN 으로 설정합니다.
참고
AWS_SNS_ROLE_ARN의 값은 대/소문자를 구분합니다. AWS 계정에 지정된 정확한 값을 사용하십시오.
예:
CREATE NOTIFICATION INTEGRATION my_notification_int
ENABLED = TRUE
DIRECTION = OUTBOUND
TYPE = QUEUE
NOTIFICATION_PROVIDER = AWS_SNS
AWS_SNS_TOPIC_ARN = 'arn:aws:sns:us-east-2:111122223333:sns_topic'
AWS_SNS_ROLE_ARN = 'arn:aws:iam::111122223333:role/error_sns_role';
SNS 항목에 Snowflake 액세스 권한 부여¶
IAM 사용자 ARN 및 SNS 항목 외부 ID를 검색합니다.¶
DESCRIBE INTEGRATION 명령을 실행하여 방금 만든 알림 통합의 속성을 표시합니다.
예를 들어, 이름이
my_notification_int
인 알림 통합의 속성을 표시하려면 다음을 수행합니다.DESC NOTIFICATION INTEGRATION my_notification_int;
+---------------------------+-------------------+------------------------------------------------------+----------------------+ | property | property_type | property_value | property_default | +---------------------------+-------------------+------------------------------------------------------+----------------------+ | ENABLED | Boolean | true | false | | NOTIFICATION_PROVIDER | String | AWS_SNS | | | DIRECTION | String | OUTBOUND | INBOUND | | AWS_SNS_TOPIC_ARN | String | arn:aws:sns:us-east-2:111122223333:myaccount | | | AWS_SNS_ROLE_ARN | String | arn:aws:iam::111122223333:role/myrole | | | SF_AWS_IAM_USER_ARN | String | arn:aws:iam::123456789001:user/c_myaccount | | | SF_AWS_EXTERNAL_ID | String | MYACCOUNT_SFCRole=2_a123456/s0aBCDEfGHIJklmNoPq= | | +---------------------------+-------------------+------------------------------------------------------+----------------------+
다음 속성의 값을 기록합니다.
SF_AWS_IAM_USER_ARN
계정에 대해 생성된 Snowflake IAM 사용자의 ARN. Snowflake 계정의 사용자는 알림 통합을 사용하여 이 사용자에 대한 외부 ID를 제출함으로써 앞서 만든 IAM 역할 을 갖게 됩니다.
SF_AWS_EXTERNAL_ID
계정에 대해 생성된 Snowflake IAM 사용자의 외부 ID입니다.
다음 단계에서는 이러한 값으로 IAM 역할의 신뢰 관계를 업데이트합니다.
Snowflake에 관한 클라우드 메시징의 방향을 나타내는 DIRECTION 속성에 유의하십시오.
IAM 역할의 신뢰 관계 수정하기¶
AWS 관리 콘솔에 로그인합니다.
홈 대시보드에서 Identity & Access Management (IAM)를 선택합니다.
왼쪽 탐색 창에서 Roles 을 선택합니다.
앞서 만든 역할 을 선택합니다.
Trust relationships 탭을 선택합니다.
Edit trust relationship 을 선택합니다.
앞서 기록한 알림 통합 속성의 값 을 사용하도록 정책 문서를 수정합니다.
IAM 역할에 대한 정책 문서
{ "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "AWS": "<sf_aws_iam_user_arn>" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "sts:ExternalId": "<sf_aws_external_id>" } } } ] }
여기서
sf_aws_iam_user_arn
은 사용자가 기록한 SF_AWS_IAM_USER_ARN 값입니다.sf_aws_external_id
는 사용자가 기록한 SF_AWS_EXTERNAL_ID 값입니다.
Update Trust Policy 를 선택합니다. 변경 사항이 저장됩니다.