메타데이터 액세스 제어 - AWS Lake Formation

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

메타데이터 액세스 제어

데이터 카탈로그 리소스에 대한 액세스 제어의 경우, 다음 논의에서는 Lake Formation 권한을 통한 세분화된 액세스 제어와 IAM 정책을 통한 대략적인 액세스 제어를 가정합니다.

데이터 카탈로그 리소스에 대한 Lake Formation 권한을 부여하는 방법에는 두 가지가 있습니다.

  • 명명된 리소스 액세스 제어 - 이 방법을 사용하면 데이터베이스 또는 테이블 이름을 지정하여 특정 데이터베이스 또는 테이블에 대한 권한을 부여할 수 있습니다. 권한 부여의 형식은 다음과 같습니다.

    권한 부여 옵션을 사용하여 리소스에 대한 권한을 보안 주체에 부여합니다.

    권한 부여 옵션을 사용하면 피부여자가 다른 보안 주체에게 권한을 부여하도록 허용할 수 있습니다.

  • 태그 기반 액세스 제어 - 이 방법을 사용하면 데이터 카탈로그 데이터베이스, 테이블 및 열에 하나 이상의 LF 태그를 할당하고 보안 주체에 하나 이상의 LF 태그에 대한 권한을 부여할 수 있습니다. 각 LF 태그는 키-값 페어입니다(예: department=sales). 데이터 카탈로그 리소스의 LF 태그와 일치하는 LF 태그가 있는 보안 주체는 해당 리소스에 액세스할 수 있습니다. 이 방법은 데이터베이스와 테이블 수가 많은 데이터 레이크에 사용하는 것이 좋습니다. 이에 대해서는 Lake Formation 태그 기반 액세스 제어에 자세하게 설명되어 있습니다.

보안 주체가 리소스에 대해 갖는 권한은 두 가지 방법에 의해 부여된 권한의 합입니다.

다음 테이블에는 데이터 카탈로그 리소스에 대해 사용 가능한 Lake Formation 권한이 요약되어 있습니다. 열 제목은 권한이 부여된 리소스를 나타냅니다.

카탈로그 데이터베이스
CREATE_DATABASE CREATE_TABLE ALTER
ALTER DROP
DROP DESCRIBE
DESCRIBE SELECT*
INSERT*
DELETE*

예를 들어, CREATE_TABLE 권한은 데이터베이스에 대해 부여됩니다. 즉, 보안 주체는 해당 데이터베이스에서 테이블을 생성할 수 있습니다.

별표(*)가 있는 권한은 데이터 카탈로그 리소스에 부여되지만 기본 데이터에도 적용됩니다. 예를 들어 메타데이터 테이블에 대해 DROP 권한이 부여되면 데이터 카탈로그에서 테이블을 삭제할 수 있습니다. 하지만 동일한 테이블에 DELETE 권한이 부여되면 Amazon S3에서 테이블의 기본 데이터를 삭제할 수 있습니다(예를 들어 SQL DELETE 문 사용). 이러한 권한이 있으면 Lake Formation 콘솔에서 테이블을 보고 AWS Glue API를 사용하여 테이블에 대한 정보를 검색할 수도 있습니다. 따라서, SELECT, INSERTDELETE는 데이터 카탈로그 권한이자 데이터 액세스 권한입니다.

테이블에 대해 SELECT 권한을 부여할 때 하나 이상의 열을 포함하거나 제외하는 필터를 추가할 수 있습니다. 이를 통해 메타데이터 테이블 열에 대한 세분화된 액세스 제어가 가능하여 통합 서비스 사용자가 쿼리를 실행할 때 볼 수 있는 열을 제한할 수 있습니다. IAM 정책만으로는 이 기능을 사용할 수 없습니다.

Super라는 이름의 특수 권한도 있습니다. Super 권한을 사용하면 보안 주체는 해당 권한이 부여된 데이터베이스 또는 테이블에서 지원되는 모든 Lake Formation 작업을 수행할 수 있습니다. 이 권한은 다른 Lake Formation 권한과 공존할 수 있습니다. 예를 들어 메타데이터 테이블에 대해 Super, SELECTINSERT 권한을 부여할 수 있습니다. 보안 주체는 테이블에서 지원되는 모든 작업을 수행할 수 있으며 Super 권한을 취소해도 SELECTINSERT 권한은 그대로 유지됩니다.

각 권한에 대한 자세한 내용은 Lake Formation 권한 참조 섹션을 참조하세요.

중요

다른 사용자가 생성한 데이터 카탈로그 테이블을 보려면 해당 테이블에 대해 하나 이상의 Lake Formation 권한을 부여받아야 합니다. 테이블에 대해 하나 이상의 권한을 부여받은 경우 테이블이 속한 데이터베이스도 볼 수 있습니다.

Lake Formation 콘솔, API 또는 AWS Command Line Interface (AWS CLI)를 사용하여 데이터 카탈로그 권한을 부여 또는 취소할 수 있습니다. 다음은 데이터베이스에 테이블을 생성할 수 있는 datalake_user1 권한을 사용자에게 부여하는 AWS CLI 명령의 retail 예입니다.

aws lakeformation grant-permissions --principal DataLakePrincipalIdentifier=arn:aws:iam::111122223333:user/datalake_user1 --permissions "CREATE_TABLE" --resource '{ "Database": {"Name":"retail"}}'

다음은 Lake Formation 권한으로 세분화된 액세스 제어를 보완하는 대략적인 액세스 제어 IAM 정책의 예입니다. 이것은 모든 메타데이터 데이터베이스 또는 테이블에 대한 모든 작업을 허용합니다.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "glue:*Database*", "glue:*Table*", "glue:*Partition*" ], "Resource": "*" } ] }

다음 예제도 대략적이지만 좀 더 제한적입니다. 이것은 지정된 계정 및 리전의 데이터 카탈로그에 있는 모든 메타데이터 데이터베이스 및 테이블에 대한 읽기 전용 작업을 허용합니다.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "glue:GetTables", "glue:SearchTables", "glue:GetTable", "glue:GetDatabase", "glue:GetDatabases" ], "Resource": "arn:aws:glue:us-east-1:111122223333:*" } ] }

이러한 정책을 IAM 기반의 세분화된 액세스 제어를 구현하는 다음 정책과 비교해 보세요. 이것은 지정된 계정 및 리전의 고객 관계 관리(CRM) 메타데이터 데이터베이스에 있는 테이블의 하위 집합에 대한 권한만 부여합니다.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "glue:GetTables", "glue:SearchTables", "glue:GetTable", "glue:GetDatabase", "glue:GetDatabases" ], "Resource": [ "arn:aws:glue:us-east-1:111122223333:catalog", "arn:aws:glue:us-east-1:111122223333:database/CRM", "arn:aws:glue:us-east-1:111122223333:table/CRM/P*" ] } ] }

대략적인 액세스 제어 정책의 추가적인 예는 Lake Formation 페르소나 및 IAM 권한 참조 섹션을 참조하세요.