AWS Lake Formation을 사용하여 CloudTrail Lake 페더레이션 리소스 관리
이벤트 데이터 스토어를 페더레이션하면 CloudTrail은 AWS Glue 데이터 카탈로그에서 페더레이션 리소스에 대한 세분화된 액세스 제어를 허용하는 서비스인 AWS Lake Formation에 페더레이션 역할 ARN과 이벤트 데이터 스토어를 등록합니다. 이 섹션에서는 Lake Formation을 사용하여 CloudTrail Lake 페더레이션 리소스를 관리하는 방법을 설명합니다.
페더레이션을 활성화하면 CloudTrail이 AWS Glue 데이터 카탈로그에 다음과 같은 리소스를 생성합니다.
-
관리형 데이터베이스 - CloudTrail이 계정당
aws:cloudtrail
이라는 이름의 데이터베이스를 1개 생성합니다. CloudTrail이 데이터베이스를 관리합니다. AWS Glue에서 데이터베이스를 삭제하거나 수정할 수 없습니다. -
관리형 페더레이션 테이블 - CloudTrail이 각 페더레이션 이벤트 데이터 스토어에 대해 1개의 테이블을 생성하고 테이블 이름으로 이벤트 데이터 스토어 ID를 사용합니다. CloudTrail이 테이블을 관리합니다. AWS Glue에서 테이블을 삭제하거나 수정할 수 없습니다. 테이블을 삭제하려면 이벤트 데이터 스토어에서 페더레이션을 비활성화해야 합니다.
페더레이션 리소스에 대한 액세스 제어
두 가지 권한 방법 중 하나를 사용하여 관리형 데이터베이스 및 테이블에 대한 액세스를 제어할 수 있습니다.
-
IAM 전용 액세스 제어 - IAM 전용 액세스 제어를 사용하면 필요한 IAM 권한을 가진 계정의 모든 사용자에게 모든 데이터 카탈로그 리소스에 대한 액세스 권한이 부여됩니다. AWS Glue가 IAM과 작동하는 방식에 대한 자세한 내용은 AWS Glue에서 IAM을 사용하는 방식을 참조하세요.
Lake Formation 콘솔에서 이 방법은 IAM 액세스 제어만 사용으로 표시됩니다.
참고
데이터 필터를 생성하고 다른 Lake Formation 기능을 사용하려면 Lake Formation 액세스 제어를 사용해야 합니다.
-
Lake Formation 액세스 제어 - 이 방법은 다음과 같은 이점을 제공합니다.
-
데이터 필터를 생성하여 열 수준, 행 수준, 셀 수준의 보안을 구현할 수 있습니다.https://docs.aws.amazon.com/lake-formation/latest/dg/data-filters-about.html 자세한 내용은 AWS Lake Formation 개발자 안내서의 Securing data lakes with row-level access control을 참조하세요.
-
Lake Formation 관리자와 데이터베이스 및 리소스 작성자만 데이터베이스와 테이블을 볼 수 있습니다. 다른 사용자가 이러한 리소스에 액세스해야 하는 경우 Lake Formation 권한을 사용하여 액세스 권한을 명시적으로 부여해야 합니다.
-
액세스 제어에 대한 자세한 내용은 세분화된 액세스 제어 방법을 참조하세요.
페더레이션 리소스의 권한 방법 결정
페더레이션을 처음 활성화하면 CloudTrail이 Lake Formation 데이터 레이크 설정을 사용하여 관리형 데이터베이스와 관리형 페더레이션 테이블을 생성합니다.
CloudTrail이 페더레이션을 활성화한 후에는 해당 리소스에 대한 권한을 확인하여 관리형 데이터베이스와 관리형 페더레이션 테이블에 어떤 권한 방법을 사용하고 있는지 확인할 수 있습니다. 리소스에 대해 IAM_ALLOWED_PRINCIPALS
에 ALL
(Super) 할당 설정이 있는 경우 리소스는 IAM 권한으로만 관리됩니다. 설정이 누락된 경우 리소스는 Lake Formation 권한으로 관리됩니다. Lake Formation 권한에 대한 자세한 내용은 Lake Formation 권한 참조에서 확인할 수 있습니다.
관리형 데이터베이스와 관리형 페더레이션 테이블의 권한 방법은 다를 수 있습니다. 예를 들어, 데이터베이스와 테이블의 값을 확인하면 다음과 같은 내용을 볼 수 있습니다.
-
데이터베이스의 경우 권한에
IAM_ALLOWED_PRINCIPALS
에ALL
(Super)을 할당하는 값이 있으며, 이는 데이터베이스에 대해 IAM 전용 액세스 제어를 사용하고 있음을 나타냅니다. -
테이블의 경우
IAM_ALLOWED_PRINCIPALS
에ALL
(Super)을 할당하는 값이 없으며, 이는 Lake Formation 권한에 따른 액세스 제어를 나타냅니다.
Lake Formation의 페더레이션 리소스에 대해 IAM_ALLOWED_PRINCIPALS
에 ALL
(Super) 할당 권한을 추가하거나 제거하여 언제든지 액세스 방법을 전환할 수 있습니다.
Lake Formation을 사용하여 크로스 계정 공유
이 섹션에서는 Lake Formation을 사용하여 계정 간에 관리형 데이터베이스와 관리형 페더레이션 테이블을 공유하는 방법을 설명합니다.
다음 단계를 수행하여 계정 간에 관리형 데이터베이스를 공유할 수 있습니다.
-
크로스 계정 데이터 공유 버전을 버전 4로 업데이트합니다.
-
Lake Formation 액세스 제어로 전환하려면 데이터베이스에서
IAM_ALLOWED_PRINCIPALS
에Super
할당 권한(있는 경우)을 제거합니다. -
데이터베이스의 외부 계정에
Describe
권한을 부여합니다. -
데이터 카탈로그 리소스가 AWS 계정과 공유되고 계정이 공유 계정과 같은 AWS 조직에 속하지 않는 경우 AWS Resource Access Manager(AWS RAM)에서 리소스 공유 초대를 수락합니다. 자세한 내용을 알아보려면 AWS RAM에서 리소스 공유 초대 수락을 참조하세요.
이 단계를 완료한 후에는 외부 계정에서 데이터베이스를 볼 수 있어야 합니다. 기본적으로 데이터베이스를 공유해도 데이터베이스의 어떤 테이블에도 액세스할 수 없습니다.
다음 단계를 수행하여 모든 관리형 페더레이션 테이블 또는 개별 관리형 페더레이션 테이블을 외부 계정과 공유할 수 있습니다.
-
크로스 계정 데이터 공유 버전을 버전 4로 업데이트합니다.
-
Lake Formation 액세스 제어로 전환하려면 테이블에서
IAM_ALLOWED_PRINCIPALS
에Super
할당 권한(있는 경우)을 제거합니다. -
(선택 사항) 열 또는 행을 제한하는 데이터 필터를 지정합니다.
-
테이블의 외부 계정에
Select
권한을 부여합니다. -
데이터 카탈로그 리소스가 AWS 계정과 공유되고 계정이 공유 계정과 같은 AWS 조직에 속하지 않는 경우 AWS Resource Access Manager(AWS RAM)에서 리소스 공유 초대를 수락합니다. 조직의 경우 RAM 설정을 사용하여 자동 수락할 수 있습니다. 자세한 내용을 알아보려면 AWS RAM에서 리소스 공유 초대 수락을 참조하세요.
-
이제 테이블이 보입니다. 이 테이블에서 Amazon Athena 쿼리를 활성화하려면 공유 테이블을 사용하여 이 계정에 리소스 링크를 생성합니다.
소유 계정은 Lake Formation에서 외부 계정에 대한 권한을 제거하거나 CloudTrail에서 페더레이션을 비활성화하여 언제든지 공유를 취소할 수 있습니다.