Snowflake Data Clean Room: Amazon S3 버킷의 외부 데이터¶
Snowflake Data Clean Room 에서 분석된 데이터는 Snowflake에 기본으로 저장되거나 클라우드 공급자의 저장소에 외부에 저장되거나 두 곳 모두에 저장될 수 있습니다. 커넥터 를 사용하면 공동 작업자가 클린룸 내에서 클라우드 공급자의 외부 데이터에 액세스할 수 있습니다.
외부 데이터 커넥터는 Snowflake 외부 테이블 을 사용하여 데이터를 사용할 수 있도록 합니다. 클린룸에서 외부 테이블을 연결하면 보안 위험이 증가한다는 점에 유의하십시오. 따라서 컨슈머가 커넥터를 사용하여 외부 데이터를 포함하려면 먼저 공급자가 클린룸에서 외부 테이블 사용을 명시적으로 허용해야 합니다. 공급자가 외부 데이터 커넥터를 사용하는 경우, 컨슈머는 외부 테이블이 사용 중이라는 경고를 받고 이를 통해 클린룸 설치 여부를 결정할 수 있습니다.
이 항목에서는 클린룸 분석가가 Amazon S3 버킷에서 외부 데이터에 액세스할 수 있도록 커넥터를 사용하는 방법에 대해 설명합니다.
중요
Snowflake는 서드 파티 커넥터를 제공하지 않으며 추가 약관이 적용될 수 있습니다. 이러한 통합은 사용자의 편의를 위해 제공되지만, 통합을 통해 전송되거나 통합에서 수신된 모든 콘텐츠에 대한 책임은 사용자에게 있습니다.
고객은 Snowflake Data Clean Rooms 사용과 관련하여 필요한 동의를 얻을 책임이 있습니다. Snowflake Data Clean Rooms를 사용하는 경우, 활성화 목적으로 서드 파티 커넥터를 사용하는 경우를 포함하여 해당 법률 및 규정을 준수하고 있는지 확인하십시오.
전제 조건¶
외부 데이터에 커넥터를 사용하려면:
공급자는 클린룸에서 외부 테이블 사용을 명시적으로 허용 해야 합니다.
파일은 Parquet 형식이어야 합니다.
S3 버킷에 연결하기¶
클린룸 공동 작업자가 Amazon S3 저장소의 데이터에 액세스할 수 있도록 허용하는 프로세스는 다음 단계로 구성됩니다.
AWS에서 이 프로시저를 완료합니다.
특정 권한이 있는 IAM 정책을 만듭니다.
새 IAM 정책을 참조하는 IAM 역할을 만듭니다.
클린룸 환경에서 커넥터를 생성 합니다.
AWS에서 클린룸 환경의 서비스 계정 식별자로 IAM 역할을 업데이트 합니다.
클린룸 환경에서 AWS를 사용하여 커넥터를 인증 합니다.
AWS에서 IAM 정책 만들기¶
Snowflake는 S3 버킷에 액세스하는 데 필요한 권한이 포함된 커넥터 전용 IAM 정책을 만들 것을 권장합니다. 다음 단계에서는 커넥터의 ID를 나타내는 IAM 역할에 이 정책을 추가합니다.
이 절차를 완료하려면 클린룸 환경과 관련된 계정의 리전을 알아야 합니다.
클린룸 환경과 연결된 계정의 리전을 찾으려면 클린룸에 로그인 한 후 Connectors » Cleanrooms » Snowflake 를 선택합니다.
S3 버킷에 대한 권한이 포함된 IAM 정책을 생성하려면 다음을 수행합니다.
AWS Management Console 에 로그인합니다.
Console Home 대시보드에서 Identity and Access Management (IAM) 를 선택합니다.
왼쪽 탐색 모음에서 Account settings 를 선택합니다.
Security Token Service (STS) 섹션에서 클린룸 환경과 연결된 계정의 리전을 찾아 Active 로 전환합니다.
왼쪽 탐색 모음에서 Policies 를 선택합니다.
Create policy 를 선택합니다.
Policy editor 섹션에서 JSON 을 선택합니다.
다음 정책 본문을 복사하여 정책 편집기에 붙여넣은 다음, 버킷 이름(
<bucket>
)과 폴더 경로 접두사(<prefix>
)가 포함되도록 JSON을 편집합니다.{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:GetObject", "s3:GetObjectVersion" ], "Resource": "arn:aws:s3:::<bucket>/<prefix>/*" }, { "Effect": "Allow", "Action": [ "s3:ListBucket", "s3:GetBucketLocation" ], "Resource": "arn:aws:s3:::<bucket>", "Condition": { "StringLike": { "s3:prefix": [ "<prefix>/*" ] } } } ] }
:::
형식을 유지해야 합니다. 예를 들어, S3 버킷 URI가s3://sales/customers/
인 경우Resource
JSON 필드의 값은arn:aws:s3:::sales/customers/*
입니다.Next 를 선택합니다.
정책 이름(예:
snowflake_cleanroom_access
)을 입력한 다음 Create policy 를 선택합니다.
AWS에서 IAM 역할을 만듭니다.¶
AWS IAM 역할은 커넥터의 ID를 나타냅니다. 생성 프로세스 중에 커넥터가 S3 버킷에 액세스하는 데 필요한 권한을 부여하는 새로운 IAM 정책과 역할을 연결합니다.
새 IAM 역할을 만들려면:
AWS의 Console Home 대시보드에서 Identity and Access Management (IAM) 을 선택합니다.
왼쪽 탐색 모음에서 Roles 를 선택합니다.
Create role 을 선택합니다.
Trusted entity type 섹션에서 AWS account 을 선택합니다.
An AWS account 섹션에서 Another AWS account 을 선택합니다.
Account ID 필드에 12자리 숫자가 포함된 임시 자리 표시자 값(예: 현재 AWS 계정의 계정 식별자)을 입력합니다. 이 값은 나중에 변경합니다.
Require external id 를 선택한 다음 임시 자리 표시자 값(예:
0000
)을 입력합니다. 이 값은 나중에 변경합니다.Next 를 선택합니다.
Permissions policies 섹션에서 이전 프로시저에서 만든 정책을 찾아 해당 확인란을 선택합니다.
Next 를 선택합니다.
역할 이름(예:
snowflake_cleanroom_connector
)을 입력한 다음 Create role 을 선택합니다.
S3 버킷 및 IAM 역할 식별자 복사¶
클린룸 환경에서 커넥터를 생성할 때는 S3 버킷의 식별자와 IAM 역할이 필요합니다. 커넥터를 만들기 전에 다음 단계에 따라 이러한 식별자를 복사하여 저장합니다.
역할 식별자를 복사하려면 IAM 역할 식별자를 복사합니다.
AWS의 Console Home 대시보드에서 Identity and Access Management (IAM) 을 선택합니다.
왼쪽 탐색 모음에서 Roles 를 선택합니다.
이전 절차에서 생성한 역할을 찾아 선택하여 엽니다.
Summary 섹션에서 ARN 을 찾아 복사 아이콘을 선택합니다. 나중 단계를 위해 이 역할 식별자를 저장합니다.
S3 버킷 식별자를 복사하려면:
AWS의 Console Home 대시보드에서 S3 를 선택합니다.
S3 버킷의 이름을 찾아 선택하여 엽니다. 버킷에는 클린룸에 포함시킬 데이터가 들어 있어야 합니다.
버킷의 접두사로 이동한 다음 Copy S3 URI 를 선택합니다. 나중 단계를 위해 이 버킷 식별자를 저장합니다.
Objects 섹션의 버튼을 선택하지 마십시오.
커넥터를 생성하고 서비스 계정 세부 정보를 복사합니다.¶
이제 클린룸 환경에서 커넥터를 생성할 준비가 되었습니다. 커넥터를 생성한 후에는 해당 서비스 계정에 대한 세부 정보를 복사하여 AWS의 IAM 역할과 연결할 수 있도록 합니다.
클린룸 환경에서 커넥터를 생성하려면:
Snowflake Data Clean Rooms 로그인 페이지 로 이동합니다.
이메일 주소를 입력하고 Continue 를 선택합니다.
비밀번호를 입력합니다.
여러 개의 클린룸 환경과 연결되어 있는 경우, 사용할 Snowflake 계정을 선택합니다.
왼쪽 탐색에서 Connectors 를 선택한 다음 Amazon Web Services 섹션을 확장합니다.
AWS Role ARN 필드에 AWS에서 복사한 IAM 역할의 식별자(예:
arn:aws:iam::772412615275:role/mub00002_vhb71832_role
)를 입력합니다.S3 Bucket URI 필드에 AWS에서 복사한 S3 버킷의 식별자(예:
s3://sales/customer_data/
)를 입력합니다.Create 를 선택합니다.
클린룸이 AWS에 액세스하는 데 사용하는 서비스 계정을 생성합니다.
복사 아이콘을 사용하여 커넥터의 서비스 계정의 Principal 및 External ID 식별자를 복사하고 다음 프로시저를 위해 저장합니다.
서비스 계정 세부 정보로 IAM 역할 업데이트¶
이제 커넥터의 서비스 계정과 연결된 식별자로 IAM 역할을 업데이트할 준비가 되었습니다. IAM 역할을 업데이트하려면:
AWS Management Console 에 로그인합니다.
Console Home 대시보드에서 Identity and Access Management (IAM) 를 선택합니다.
왼쪽 탐색 모음에서 Roles 를 선택합니다.
이전에 생성한 역할을 찾아서 선택하여 엽니다.
Trust relationships 탭을 선택합니다.
Edit trust policy 를 선택합니다.
커넥터의 서비스 계정의 식별자를 포함하도록 신뢰 정책의 JSON을 수정합니다. 앞서 이러한 식별자를 복사했습니다. JSON 에 대해 다음과 같이 변경합니다.
AWS
JSON 필드의 값을 클린룸 환경에서 복사한 Principal 값으로 바꿉니다.다음 예제에서 클린룸 환경에서 Principal 의 값은
arn:aws:iam::115136555074:user/x4gy-s-p2345g38
입니다.sts:ExternalId
JSON 필드의 값을 클린룸 환경에서 복사한 External ID 값으로 바꿉니다.다음 예제에서 클린룸 환경에서 External ID 의 값은
UCA56729_SFCRole=4447_uht2344sdf3mrWLNRM0y3bE=
입니다.{ "Version": "2012-10-17", "Statement": [ { "Sid": "Statement1", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::115136555074:user/x4gy-s-p2345g38" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "sts:ExternalId": "UCA56729_SFCRole=4447_uht2344sdf3mrWLNRM0y3bE=" } } } ] }
Update policy 를 선택합니다.
커넥터 인증¶
이제 커넥터가 S3 버킷에 액세스할 수 있는지 확인하기 위해 인증할 준비가 되었습니다. 커넥터를 인증하려면:
클린룸 환경에서 로그아웃된 경우 웹 앱에 로그인합니다. 섹션을 참조하십시오.
클린룸 환경에서 Connectors 를 선택하고 Amazon Web Services 섹션을 확장합니다.
연결할 S3 버킷을 선택한 다음 Authenticate 를 선택합니다.
AWS에서 외부 데이터에 대한 액세스 제거¶
클린룸 환경에서 S3 버킷에 대한 액세스를 제거하려면:
Snowflake Data Clean Rooms 로그인 페이지 로 이동합니다.
이메일 주소를 입력하고 Continue 를 선택합니다.
비밀번호를 입력합니다.
여러 개의 클린룸 환경과 연결되어 있는 경우, 사용할 Snowflake 계정을 선택합니다.
왼쪽 탐색에서 Connectors 를 선택하고 Amazon Web Services 섹션을 확장합니다.
현재 연결된 S3 버킷을 찾은 다음 휴지통 아이콘을 선택합니다.