기본 데이터 액세스 제어 - AWS Lake Formation

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

기본 데이터 액세스 제어

통합 AWS 서비스가 AWS Lake Formation에 의해 액세스가 제어되는 Amazon S3 위치의 데이터에 대한 액세스를 요청하는 경우 Lake Formation은 데이터에 액세스하기 위한 임시 보안 인증을 제공합니다.

Lake Formation이 Amazon S3 위치의 기본 데이터에 대한 액세스를 제어할 수 있도록 하려면 해당 위치를 Lake Formation에 등록해야 합니다.

Amazon S3 위치를 등록한 후에는 다음과 같은 Lake Formation 권한 부여를 시작할 수 있습니다.

  • 해당 위치를 가리키는 데이터 카탈로그 테이블에 대한 데이터 액세스 권한(SELECT, INSERTDELETE)).

  • 해당 위치에 대한 데이터 위치 권한.

Lake Formation 데이터 위치 권한은 특정 Amazon S3 위치를 가리키는 데이터 카탈로그 리소스를 생성하는 기능을 제어합니다. 데이터 위치 권한은 데이터 레이크 내의 위치에 대해 추가 보안 계층을 제공합니다. 보안 주체에 CREATE_TABLE 또는 ALTER 권한을 부여할 때 보안 주체가 메타데이터 테이블을 생성하거나 변경할 수 있는 위치를 제한하는 데이터 위치 권한도 부여합니다.

Amazon S3 위치는 버킷 또는 버킷 아래의 접두사이지만 개별 Amazon S3 객체는 아닙니다.

Lake Formation 콘솔, API 또는 AWS CLI를 사용하여 보안 주체에 데이터 위치 권한을 부여할 수 있습니다. 일반적인 권한 부여 형식은 다음과 같습니다.

grant DATA_LOCATION_ACCESS to principal on S3 location [with grant option]

with grant option을 포함하면 부여자가 다른 보안 주체에게 권한을 부여할 수 있습니다.

Lake Formation 권한은 세분화된 액세스 제어를 위해 항상 AWS Identity and Access Management(IAM) 권한과 함께 작동한다는 점을 기억해야 합니다. 기본 Amazon S3 데이터에 대한 읽기/쓰기 권한의 경우 다음과 같이 IAM 권한이 부여됩니다.

위치를 등록할 때 해당 위치에 대한 읽기/쓰기 권한을 부여하는 IAM 역할을 지정합니다. Lake Formation은 통합 AWS 서비스에 임시 보안 인증을 제공할 때 해당 역할을 맡습니다. 일반적인 역할에는 다음과 같은 정책이 연결되어 있을 수 있습니다. 여기서 등록된 위치는 버킷 awsexamplebucket입니다.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:PutObject", "s3:GetObject", "s3:DeleteObject" ], "Resource": [ "arn:aws:s3:::awsexamplebucket/*" ] }, { "Effect": "Allow", "Action": [ "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::awsexamplebucket" ] } ] }

Lake Formation은 등록 중에 이와 같은 정책을 자동으로 생성하는 데 사용할 수 있는 서비스 연결 역할을 제공합니다. 자세한 내용은 Lake Formation에 서비스 연결 역할 사용 섹션을 참조하세요.

따라서 Amazon S3 위치를 등록하면 해당 위치에 필요한 IAM s3: 권한이 부여되며, 여기서 권한은 위치를 등록하는 데 사용된 역할에 따라 지정됩니다.

중요

요청자 지불이 활성화된 Amazon S3 버킷은 등록하지 마세요. Lake Formation에 등록된 버킷의 경우 버킷 등록에 사용된 역할은 항상 요청자로 표시됩니다. 다른 AWS 계정으로 버킷에 액세스하는 경우, 역할이 버킷 소유자와 동일한 계정에 속하면 버킷 소유자에게 데이터 액세스 요금이 부과됩니다.

기본 데이터에 대한 읽기/쓰기 액세스를 위해 보안 주체는 Lake Formation 권한 외에도 다음과 같은 IAM 권한이 필요합니다.

lakeformation:GetDataAccess

이 권한을 통해 Lake Formation은 데이터에 액세스하기 위한 임시 보안 인증 요청을 승인합니다.

참고

Amazon Athena에서는 사용자에게 lakeformation:GetDataAccess 권한을 요구합니다. 다른 통합 서비스에서는 기본 실행 역할에 lakeformation:GetDataAccess 권한이 있어야 합니다.

이 권한은 Lake Formation 페르소나 및 IAM 권한 참조의 제안 정책에 포함되어 있습니다.

요약하자면, Lake Formation 보안 주체가 Lake Formation 권한으로 제어되는 액세스를 사용하여 기본 데이터를 읽고 쓸 수 있도록 하려면 다음을 수행합니다.

  • 데이터가 들어 있는 Amazon S3 위치를 Lake Formation에 등록합니다.

  • 기본 데이터 위치를 가리키는 데이터 카탈로그 테이블을 생성하는 보안 주체는 데이터 위치 권한이 있어야 합니다.

  • 기본 데이터를 읽고 쓰는 보안 주체는 기본 데이터 위치를 가리키는 데이터 카탈로그 테이블에 대한 Lake Formation 데이터 액세스 권한이 있어야 합니다.

  • 기본 데이터를 읽고 쓰는 보안 주체는 기본 데이터 위치가 Lake Formation에 등록된 경우 lakeformation:GetDataAccess IAM 권한이 있어야 합니다.

참고

Lake Formation 권한 모델은 IAM 또는 Amazon S3 정책을 통해 Amazon S3 위치에 액세스할 수 있는 경우 Amazon S3 API 또는 콘솔을 통한 Amazon S3 위치 액세스를 차단하지 않습니다. IAM 정책을 보안 주체에 연결하여 이러한 액세스를 차단할 수 있습니다.

데이터 위치 권한에 대한 자세한 내용

데이터 위치 권한은 데이터 카탈로그 데이터베이스 및 테이블에 대한 생성 및 업데이트 작업의 결과를 제어합니다. 규칙은 다음과 같습니다.

  • 보안 주체가 Amazon S3 위치에 대한 명시적 또는 암시적 데이터 위치 권한을 가지고 있어야 해당 위치를 지정하는 데이터베이스 또는 테이블을 생성하거나 업데이트할 수 있습니다.

  • 명시적 권한 DATA_LOCATION_ACCESS는 콘솔, API 또는 AWS CLI를 통해 부여됩니다.

  • 암시적 권한은 데이터베이스에 등록된 위치를 가리키는 위치 속성이 있고, 보안 주체가 데이터베이스에 대한 CREATE_TABLE 권한을 가지고 있으며, 보안 주체가 해당 위치나 하위 위치에 테이블을 생성하려고 할 때 부여됩니다.

  • 보안 주체에게 특정 위치에 대한 데이터 위치 권한이 부여된 경우 보안 주체는 모든 하위 위치에 대한 데이터 위치 권한을 가집니다.

  • 보안 주체는 기본 데이터에 대한 읽기/쓰기 작업을 수행하는 데 데이터 위치 권한이 필요하지 않습니다. SELECT 또는 INSERT 데이터 액세스 권한만 있으면 충분합니다. 데이터 위치 권한은 해당 위치를 가리키는 데이터 카탈로그 리소스를 생성하는 데만 적용됩니다.

다음 다이어그램에 표시된 시나리오를 고려하세요.


          폴더 계층 구조와 두 개의 데이터베이스(데이터베이스 A와 B)가 있으며 데이터베이스 B는 고객 서비스 폴더를 가리키고 있습니다.

이 다이어그램에서:

  • Amazon S3 버킷 Products, FinanceCustomer Service가 Lake Formation에 등록되어 있습니다.

  • Database A에는 위치 속성이 없으며 Database B에는 Customer Service 버킷을 가리키는 위치 속성이 있습니다.

  • 사용자 datalake_user에게는 두 데이터베이스 모두에 대한 CREATE_TABLE 권한이 있습니다.

  • 사용자 datalake_user에게는 Products 버킷에 대한 데이터 위치 권한만 부여되었습니다.

다음은 사용자 datalake_user가 특정 위치의 특정 데이터베이스에 카탈로그 테이블을 생성하려고 할 때의 결과입니다.

datalake_user가 테이블을 생성하려는 위치
데이터베이스 및 위치 성공 또는 실패 Reason
데이터베이스 A(Finance/Sales) 실패 데이터 위치 권한 없음
데이터베이스 A(Products) 성공 데이터 위치 권한 있음
데이터베이스 A(HR/Plans) 성공 위치가 등록되지 않음
데이터베이스 B(Customer Service/Incidents) 성공 Customer Service에 데이터베이스의 위치 속성이 있음

자세한 내용은 다음을 참조하세요.