크로스 계정 데이터 카탈로그 액세스 구성
다른 계정의 데이터 카탈로그에 액세스하기 위해 Athena의 계정 간 AWS Glue 기능을 사용하거나 또는 Lake Formation에서 계정 간 액세스를 설정할 수 있습니다.
옵션 A: Athena에서 크로스 계정 데이터 카탈로그 액세스 구성
Athena의 계정 간 AWS Glue 카탈로그 기능을 사용해 자신의 계정에 카탈로그를 등록할 수 있습니다. 이 기능은 Athena 엔진 버전 2 이상 버전에서만 사용할 수 있으며 계정 간 동일한 리전 사용으로 제한됩니다. 자세한 내용은 다른 계정의 데이터 카탈로그 등록 단원을 참조하십시오.
공유할 데이터 카탈로그에 AWS Glue에서 구성된 리소스 정책이 있는 경우 AWS Resource Access Manager에 액세스할 수 있도록 업데이트해야 하고 다음 예제와 같이 계정 A의 데이터 카탈로그를 사용할 수 있는 권한을 계정 B에 부여해야 합니다.
{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Principal": { "Service": "ram.amazonaws.com" }, "Action": "glue:ShareResource", "Resource": [ "arn:aws:glue:
<REGION>
:<ACCOUNT-A>
:table/*/*", "arn:aws:glue:<REGION>
:<ACCOUNT-A>
:database/*", "arn:aws:glue:<REGION>
:<ACCOUNT-A>
:catalog" ] }, { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::<ACCOUNT-B>
:root" }, "Action": "glue:*", "Resource": [ "arn:aws:glue:<REGION>
:<ACCOUNT-A>
:table/*/*", "arn:aws:glue:<REGION>
:<ACCOUNT-A>
:database/*", "arn:aws:glue:<REGION>
:<ACCOUNT-A>
:catalog" ] } ] }
자세한 내용은 AWS Glue 데이터 카탈로그에 대한 크로스 계정 액세스 구성 단원을 참조하십시오.
옵션 B: Lake Formation에서 크로스 계정 액세스 구성
AWS Lake Formation에서는 하나의 계정을 사용하여 중앙 데이터 카탈로그를 관리할 수 있습니다. 이 기능을 사용해 계정 간 액세스를 데이터 카탈로그 메타데이터 및 기본 데이터에 구현할 수 있습니다. 예를 들어 소유자 계정은 다른 (수신자) 계정에게 테이블에 대한 SELECT
권한을 부여할 수 있습니다.
Athena 쿼리 편집기에 표시되는 공유 데이터베이스 또는 테이블의 경우 Lake Formation에서 공유 데이터베이스 또는 테이블에 연결되는 리소스 링크를 생성합니다. Lake Formation의 수신자 계정이 소유자의 테이블을 쿼리하면 CloudTrail은 수신자 계정과 소유자 계정의 로그에 데이터 액세스 이벤트를 추가합니다.
공유된 뷰의 경우 다음 사항에 유의하십시오.
-
쿼리는 소스 테이블이나 뷰가 아닌 대상 리소스 링크에서 실행되며 출력이 대상 계정에 공유됩니다.
-
뷰만 공유하는 것으로는 충분하지 않습니다. 뷰 생성과 관련된 모든 테이블은 계정 간 공유의 일부여야 합니다.
-
공유된 리소스에 생성된 리소스 링크의 이름이 소유자 계정의 리소스 이름과 일치해야 합니다. 이름이 일치하지 않으면
Failed analyzing stored view 'awsdatacatalog.
와 같은 오류 메시지가 표시됩니다.my-lf-resource-link
.my-lf-view
': line 3:3: Schemaschema_name
does not exist
Lake Formation에서 계정 간 액세스에 대한 자세한 내용은 AWS Lake Formation 개발자 안내서의 다음 리소스를 참조하세요.
Lake Formation에서 리소스 링크가 작동하는 방식