Amazon과 함께 레이크 포메이션을 활성화하세요 EMR - 아마존 EMR

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

Amazon과 함께 레이크 포메이션을 활성화하세요 EMR

Amazon EMR 6.15.0 이상에서는 AWS Glue Data Catalog의 데이터에 액세스하는 EMR EC2 클러스터에서 Amazon에서 Spark 작업을 실행할 때 Hudi, Iceberg 또는 Delta Lake 기반 테이블에 테이블, 행, 열 및 셀 수준 권한을 적용하는 데 사용할 AWS Lake Formation 수 있습니다.

이 섹션에서는 Amazon에서 작동하도록 보안 구성을 생성하고 Lake Formation을 설정하는 방법을 다룹니다EMR. 또한 Lake Formation용으로 생성한 보안 구성으로 클러스터를 시작하는 방법도 살펴봅니다.

1단계: EMR 클러스터의 런타임 역할 설정

EMR클러스터의 런타임 역할을 사용하려면 보안 구성을 만들어야 합니다. 보안 구성을 사용하면 클러스터 전체에 일관된 보안, 권한 부여 및 인증 옵션을 적용할 수 있습니다.

  1. 다음 보안 콘텐츠를 포함하는 lf-runtime-roles-sec-cfg.json 파일을 생성합니다.

    { "AuthorizationConfiguration": { "IAMConfiguration": { "EnableApplicationScopedIAMRole": true, "ApplicationScopedIAMRoleConfiguration": { "PropagateSourceIdentity": true } }, "LakeFormationConfiguration": { "AuthorizedSessionTagValue": "Amazon EMR" } }, "EncryptionConfiguration": { "EnableInTransitEncryption": true, "InTransitEncryptionConfiguration": { "TLSCertificateConfiguration": {<certificate-configuration>} } } }
  2. 다음으로 세션 태그가 Lake Formation을 승인할 수 있도록 LakeFormationConfiguration/AuthorizedSessionTagValue 속성을 Amazon EMR로 설정합니다.

  3. 다음 명령을 사용하여 Amazon EMR 보안 구성을 생성합니다.

    aws emr create-security-configuration \ --name 'iamconfig-with-iam-lf' \ --security-configuration file://lf-runtime-roles-sec-cfg.json

    또는 Amazon EMR 콘솔을 사용하여 사용자 지정 설정으로 보안 구성을 생성할 수 있습니다.

2단계: Amazon EMR 클러스터 시작

이제 이전 단계에서 생성한 보안 구성으로 EMR 클러스터를 시작할 준비가 되었습니다. 보안 구성 생성에 대한 자세한 내용은 보안 구성을 사용하여 클러스터 보안 설정Amazon EMR 스텝의 런타임 역할 섹션을 참조하세요.

3a단계: Amazon 런타임 역할을 사용하여 Lake Formation 기반 테이블 수준 권한 설정 EMR

열, 행 또는 셀 수준에서 세분화된 액세스 제어가 필요하지 않은 경우 Glue 데이터 카탈로그를 사용하여 테이블 수준의 권한을 설정할 수 있습니다. 테이블 수준 액세스를 활성화하려면 AWS Lake Formation 콘솔로 이동하여 사이드바의 관리 섹션에서 애플리케이션 통합 설정 옵션을 선택합니다. 그리고 나서 다음 옵션을 활성화하고 저장을 선택합니다.

외부 엔진이 전체 테이블 액세스 권한으로 Amazon S3 위치의 데이터에 액세스하도록 허용

Lake Formation 외부 데이터 필터링

3b단계: Amazon 런타임 역할을 사용하여 Lake Formation 기반 열, 행 또는 셀 수준 권한 설정 EMR

Lake Formation에서 테이블 및 열 수준 권한을 적용하려면 Lake Formation의 데이터 레이크 관리자가 세션 태그 구성 Amazon EMR의 값으로 AuthorizedSessionTagValue를 설정해야 합니다. Lake Formation은 이 세션 태그를 사용하여 직접 호출자에게 권한을 부여하고 데이터 레이크에 대한 액세스를 제공합니다. Lake Formation 콘솔의 외부 데이터 필터링 섹션에서 이 세션 태그를 설정할 수 있습니다. Replace 123456789012 자신의 ID로. AWS 계정

Lake Formation 외부 데이터 필터링

4단계: Amazon EMR 런타임 역할에 대한 AWS Glue 및 Lake Formation 권한 구성

Amazon 런타임 역할을 사용하여 Lake Formation 기반 액세스 제어를 계속 설정하려면 Amazon EMR 런타임 역할에 대한 AWS Glue 및 Lake Formation 부여를 구성해야 합니다. EMR IAM런타임 역할이 Lake Formation과 상호 작용할 수 있도록 하려면 해당 역할에 lakeformation:GetDataAccess 및 를 사용하여 액세스 권한을 부여하십시오glue:Get*.

Lake Formation 권한은 AWS Glue 데이터 카탈로그 리소스, Amazon S3 위치 및 해당 위치의 기본 데이터에 대한 액세스를 제어합니다. IAM권한은 Lake Formation 및 AWS Glue APIs 및 리소스에 대한 액세스를 제어합니다. 데이터 카탈로그 (SELECT) 의 테이블에 액세스할 수 있는 Lake Formation 권한이 있더라도 에 대한 IAM 권한이 없으면 작업이 glue:Get* API 실패합니다. Lake Formation 액세스 제어에 대한 자세한 내용은 Lake Formation access control overview를 참조하세요.

  1. 다음 콘텐츠가 포함된 emr-runtime-roles-lake-formation-policy.json 파일을 생성합니다.

    { "Version": "2012-10-17", "Statement": { "Sid": "LakeFormationManagedAccess", "Effect": "Allow", "Action": [ "lakeformation:GetDataAccess", "glue:Get*", "glue:Create*", "glue:Update*" ], "Resource": "*" } }
  2. 관련 IAM 정책을 생성하십시오.

    aws iam create-policy \ --policy-name emr-runtime-roles-lake-formation-policy \ --policy-document file://emr-runtime-roles-lake-formation-policy.json
  3. 이 정책을 IAM 런타임 역할에 할당하려면 AWS Lake Formation 권한 관리의 단계를 따르십시오.

이제 런타임 역할과 Lake Formation을 사용하여 테이블 및 열 수준 권한을 적용할 수 있습니다. 또한 소스 ID를 사용하여 작업을 제어하고 작업을 모니터링할 수 AWS CloudTrail있습니다. 자세한 end-to-end 예제는 Amazon EMR 단계의 런타임 역할 소개를 참조하십시오.