AWS Glue의 Lake Formation 권한 오류를 해결하려면 어떻게 해야 하나요?

6분 분량
0

AWS Glue 크롤러 또는 ETL 작업이 AWS Lake Formation 관련 오류로 인해 실패합니다. 그러나 필요한 AWS Identity and Access Management(IAM) 권한을 구성했습니다.

간략한 설명

AWS Glue 데이터 카탈로그와 Amazon Simple Storage Service(Amazon S3)와 같은 리소스에 액세스하려면 올바른 IAM 정책과 Lake Formation 권한이 있어야 합니다. Amazon S3 크롤러 또는 ETL 작업과 연결된 IAM 역할에 충분한 Lake Formation 권한이 없는 경우 오류가 발생합니다. 다음 리소스를 읽고 쓸 수 있는 올바른 Lake Formation 권한이 있어야 합니다.

  • 데이터 카탈로그의 데이터베이스와 테이블
  • Amazon S3의 기본 데이터

해결 방법

데이터 카탈로그 데이터베이스 생성 시 액세스 문제

데이터 카탈로그 데이터베이스 생성 문제로 인해 오류가 발생한 경우 다음과 유사한 오류 메시지가 표시됩니다.

Insufficient Lake Formation permission(s): Required Create Database on Catalog

이 오류를 해결하려면 data lake administrator role(데이터 레이크 관리자 역할)을 사용하여 Lake Formation 콘솔에 액세스하세요. 그런 다음 관련 IAM 역할에 Create database permission(데이터베이스 생성 권한)을 부여합니다.

  1. AWS Lake Formation 콘솔을 엽니다.
  2. 탐색 창의 Permissions(허가)에서 Administrative roles and tasks(관리 역할 및 작업)를 선택합니다.
  3. Database creators(데이터베이스 생성자)에서 Grant(부여)를 선택합니다.
  4. IAM users and roles(IAM 사용자 및 역할)의 경우 드롭다운 목록에서 액세스 권한을 부여하려는 IAM 역할을 선택합니다.
  5. Catalog permissions(카탈로그 권한)에서 Create database(데이터베이스 생성)를 선택합니다.
  6. IAM 역할이 계정의 다른 역할에 권한을 부여하도록 하려면 Grantable permissions(부여 가능한 권한)에서 Create database(데이터베이스 생성)를 선택합니다.
  7. Grant(권한 부여)를 선택합니다.

데이터 카탈로그 데이터베이스 액세스 문제

데이터 카탈로그 데이터베이스 문제로 인해 오류가 발생한 경우 다음 중 하나와 유사한 오류 메시지가 표시됩니다.

Insufficient Lake Formation permission(s) on example_database: Required Create Table
Insufficient Lake Formation permission(s) on example_database: (Database name: example_database)
Insufficient Lake Formation permission(s) on example_table (Database name: example_database, Table Name: example_table)

첫 번째 및 세 번째 오류를 해결하려면 크롤러 또는 ETL 작업과 연결된 IAM 역할에 example_database에 대한 Create table(테이블 생성) 권한을 부여합니다.

두 번째 오류를 해결하려면 크롤러 또는 ETL 작업과 연결된 IAM 역할에 example_database에 대한 Describe(설명) 권한을 부여합니다.

  1. Lake Formation 콘솔을 엽니다.
  2. 탐색 창의 Permissions(허가)에서 Data lake permissions(데이터 레이크 허가)를 선택합니다.
  3. Grant(권한 부여)를 선택합니다.
  4. Principals(보안 주체)에서 IAM users and roles(IAM 사용자 및 역할)를 선택합니다.
  5. IAM users and roles(IAM 사용자 및 역할)에서 크롤러와 연결된 IAM 역할을 선택합니다.
  6. LF-Tags or catalog resources(LF 태그 또는 카탈로그 리소스)에서 Named data catalog resources(명명된 데이터 카탈로그 리소스)를 선택합니다.
  7. Databases(데이터베이스)의 경우 크롤러가 쓰고 있는 데이터베이스를 선택합니다.
  8. Database permissions(데이터베이스 권한)에서 사용 사례에 따라 테이블 생성 또는 Describe(설명)를 선택합니다. 참고: 크롤러 역할에는 작성 대상 데이터베이스에 대한 Describe(설명) 권한과 Create Table(테이블 생성) 권한이 모두 있어야 합니다. AWS Glue ETL의 경우 작업 자체에서 UpdateDatabase 또는 DeleteDatabase API 호출을 실행하지 않는 한 이러한 권한으로도 충분합니다. 이러한 경우에는 Alter(변경) 또는 Drop(삭제) 권한을 부여하세요.
  9. IAM 역할이 계정의 다른 역할에 권한을 부여하도록 하려면 Grantable permissions(부여 가능한 권한)에서 권한을 설정하세요.
  10. Grant(권한 부여)를 선택합니다.

데이터 카탈로그 테이블의 액세스 문제

데이터 카탈로그 테이블 문제로 인해 오류가 발생한 경우 다음 중 하나와 유사한 오류 메시지가 표시됩니다.

Insufficient Lake Formation permission(s) on example_table (Database name: example_database, Table Name: example_table)
Insufficient Lake Formation permission(s): Required Alter on example_table

이 오류가 표시되면 AWS Glue 크롤러 또는 ETL 작업이 테이블에 액세스 중인 것입니다. 크롤러의 경우 example_table에 대한 Describe(설명) 및 Alter(변경) 권한을 크롤러와 연결된 IAM 역할에 부여합니다.

example_table을 읽는 ETL 작업의 경우 작업과 연결된 IAM 역할에 example_table에 대한 Describe(설명) 및 Select(선택) 권한을 부여합니다. ETL 작업이 example_table을 업데이트하는 경우 해당 작업과 연결된 IAM 역할에 example_table에 대한 Alter(변경) 권한을 부여합니다.

  1. Lake Formation 콘솔을 엽니다.
  2. 탐색 창의 Permissions(허가)에서 Data lake permissions(데이터 레이크 허가)를 선택합니다.
  3. Grant(권한 부여)를 선택합니다.
  4. Principals(보안 주체)에서 IAM users and roles(IAM 사용자 및 역할)를 선택합니다.
  5. IAM users and roles(IAM 사용자 및 역할)에서 IAM role(IAM 역할)을 선택합니다.
  6. LF-Tags or catalog resources(LF 태그 또는 카탈로그 리소스)에서 Named data catalog resources(명명된 데이터 카탈로그 리소스)를 선택합니다.
  7. Databases(데이터베이스)의 경우 크롤러가 쓰고 있는 데이터베이스를 선택합니다.
  8. Tables-optional(테이블(선택 사항))의 경우 크롤러가 액세스하는 테이블을 선택합니다.
  9. Table permissions(테이블 권한)에서 사용 사례에 따라 Select(선택), Describe(설명) 또는 Alter(변경)를 선택합니다.
  10. IAM 역할이 계정의 다른 역할에 권한을 부여하도록 하려면 Grantable permissions(부여 가능한 권한)에서 권한을 설정하세요.
  11. Grant(권한 부여)를 선택합니다.

Lake Formation IAM 권한의 액세스 문제

Lake Formation의 IAM 권한 문제로 인해 오류가 발생한 경우 다음 중 하나와 유사한 오류 메시지가 표시됩니다.

com.amazonaws.services.lakeformation.model.AccessDeniedException: Service Principal: glue.amazonaws.com is not authorized to perform: lakeformation:GetDataAccess
on resource: s3://sample-bucket/sample-prefix/ because no identity-based policy allows the lakeformation:GetDataAccess action

AWS Glue 작업 역할 또는 AWS Glue 크롤러 역할에 충분한 IAM 권한이 없을 때 이 오류가 발생합니다. 작업 또는 역할에는 Lake Formation이 해당 역할 및 Amazon S3 위치에 임시 보안 인증을 제공할 수 있는지 확인할 수 있는 권한이 있어야 합니다.

  1. IAM 콘솔을 엽니다.
  2. AWS Glue 크롤러 또는 AWS Glue 작업 역할에 대한 IAM 정책을 생성합니다.
  3. 정책의 리소스에 대한 작업으로 lakeformation:GetDataAccess 권한을 추가합니다. 참고: API lakeformation:GetDataAccess는 와일드카드를 리소스로 사용해야 합니다.
  4. 정책을 AWS Glue 크롤러 또는 AWS Glue 작업 역할에 연결합니다.

Amazon S3 경로와 관련된 액세스 문제

Amazon S3 경로 문제로 인해 오류가 발생한 경우 오류 메시지는 다음 메시지와 유사합니다. 오류에는 Amazon S3 경로가 포함됩니다.

Insufficient Lake Formation permission(s) on s3://s3-example-bucket/example-prefix/ (Database name: example-database, Table Name: example-table)<br>
Insufficient Lake Formation permission(s) on s3://s3-example-bucket/example-prefix/

이 오류는 크롤러 또는 ETL 작업과 연결된 IAM 역할에 Amazon S3 경로에 액세스하는 데 필요한 권한이 없을 때 발생합니다.

이 오류를 해결하려면 다음 단계를 수행합니다.

  1. Lake Formation 콘솔을 엽니다.
  2. 탐색 창의 Register and ingest(등록 및 수집)에서 Data lake locations(데이터 레이크 위치)를 선택합니다.
  3. 오류 메시지에서 경로의 Amazon S3 경로 또는 접두사가 Data lake locations(데이터 레이크 위치) 목록에 등록된 위치인지 확인합니다.
  4. 오류 메시지의 Amazon S3 경로 또는 접두사가 Data lake locations(데이터 레이크 위치) 목록에 나열되어 있지 않으면 Register location(위치 등록)을 선택합니다.
  5. Amazon S3 경로의 경우 Browse(탐색)를 선택한 다음 올바른 Amazon S3 경로를 선택합니다.
  6. IAM role(IAM 역할)에서 AWSServiceRoleForLakeFormationDataAccess의 기본 선택을 유지합니다. 사용자 지정 IAM 역할을 사용한다면 관련 요건을 충족해야 합니다. 중요: Amazon S3 위치를 등록할 때 Lake Formation은 이전 IAM 역할을 맡습니다. 그러면 해당 위치의 데이터에 액세스하는 통합 AWS 서비스에 임시 보안 인증이 부여됩니다. 등록된 Amazon S3 위치와 연결된 IAM 역할에 S3 버킷에 대한 읽기 및 쓰기 필수 권한이 있는지 확인합니다. 이렇게 하면 AccessDenied오류가 발생하지 않습니다.
  7. 탐색 창의 Permissions(사용 권한)에서 Data locations(데이터 위치)를 선택합니다.
  8. Grant(권한 부여)를 선택합니다.
  9. Grant permissions(권한 부여)에서 My account(내 계정)를 선택합니다.
  10. IAM users and roles(IAM 사용자 및 역할)에서 액세스 권한을 부여하려는 IAM 역할을 선택합니다.
  11. Grant(권한 부여)를 선택합니다.

관련 정보

Lake Formation 허가 관리

Amazon S3 위치 등록

AWS 공식
AWS 공식업데이트됨 일 년 전