Athena의 Lake Formation 권한 문제를 해결하려면 어떻게 해야 하나요?

4분 분량
0

"Insufficient Lake Formation permissions" 또는 "COLUMN_NOT_FOUND" 오류로 인해 Amazon Athena 쿼리가 실패했습니다.

해결 방법

받은 오류 메시지에 대한 문제 해결 단계는 다음과 같습니다.

Error "Insufficient Lake Formation permissions on Amazon_S3_location"

이 오류는 다음 조건이 AWS Identity and Access Management(IAM) 사용자 또는 역할에 해당할 때 발생합니다.

  • IAM 사용자 또는 역할에 Lake Formation의 적절한 Amazon Simple Storage Service (Amazon S3) 데이터 위치 권한이 없습니다.
  • IAM 사용자 또는 역할이 AWS Lake Formation에 등록된 Amazon S3 버킷에서 데이터 카탈로그 리소스를 만들거나 변경하려고 합니다.

이 오류를 해결하려면 데이터베이스 또는 테이블을 만드는 데 사용하는 IAM 사용자 또는 역할에 데이터 위치 권한을 부여해야 합니다. Lake Formation과 함께 Athena를 사용하는 경우, Lake Formation의 IAM 사용자 또는 역할에 필요한 S3 권한을 부여해야 합니다. 또한 IAM 사용자 또는 역할에 필요한 데이터 액세스 권한을 부여해야 합니다.

데이터 액세스 권한은 IAM 사용자 또는 역할이 Amazon S3 위치에서 데이터를 읽고 쓸 수 있도록 허용합니다. 그러나 Lake Formation의 데이터 위치 권한은 IAM 사용자 또는 역할이 데이터 카탈로그 리소스를 만들고 변경할 수 있도록 허용합니다. 데이터 카탈로그 리소스는 등록된 Amazon S3 위치를 가리킵니다.

데이터 레이크 위치가 Lake Formation에 등록되어 있는지 확인

  1. AWS Lake Formation 콘솔을 엽니다.
  2. 탐색 창의 관리에서 데이터 레이크 위치를 선택합니다.
  3. 데이터 레이크 위치에서 데이터 카탈로그 리소스가 가리키는 S3 경로가 Lake Formation에 등록되어 있는지 확인합니다.

AWS Lake Formation 콘솔에서 데이터 위치 권한 부여

  1. 탐색 창에서 데이터 위치를 선택합니다.
  2. 권한 부여를 선택합니다.
  3. 권한 부여 대화 상자에서 내 계정을 선택합니다.
  4. IAM 사용자 및 역할에서 권한을 부여할 IAM 사용자 또는 역할을 선택합니다.
  5. 스토리지 위치에서 오류가 발생한 S3 경로를 선택합니다.
  6. 권한 부여를 선택합니다.

참고: S3 경로가 동일한 계정 내에 있는 경우에만 이 단계를 따르세요. S3 경로가 다른 계정에 있는 경우에는 먼저 모든 교차 계정 액세스 사전 요구 사항이 충족되는지 확인하세요. 그런 다음 데이터 위치 권한 부여(외부 계정)에 제공된 지침을 따릅니다.

자세한 내용은 데이터 위치 권한 부여(동일 계정)을 참고하세요.

Error "Insufficient Lake Formation permissions on database_name"

다음 단계에 따라 데이터베이스에 대한 IAM 사용자 또는 역할 권한을 부여하세요.

  1. Lake Formation 콘솔을 엽니다.
  2. 탐색 창에서 데이터베이스를 선택합니다.
  3. 데이터베이스 이름을 선택하고 작업을 선택한 다음 권한 부여를 선택합니다.
  4. 주체에서 IAM 사용자 및 역할을 선택합니다.
  5. IAM 사용자 및 역할에서 데이터베이스에 권한을 부여할 IAM 사용자 또는 역할을 선택합니다.
  6. LF-태그 또는 카탈로그 리소스에서 명명된 데이터 카탈로그 리소스를 선택합니다.
  7. 데이터베이스 권한에서 설명을 선택합니다.
    참고:
    사용 사례에 따라 추가 권한을 추가할 수도 있습니다.
  8. 권한 부여를 선택합니다.

Error "Insufficient Lake Formation permissions: Required Create Table on database_name"

데이터베이스에 IAM 권한을 부여하려면 다음 단계를 따르세요.

  1. Lake Formation 콘솔을 엽니다.
  2. 탐색 창의 권한에서 데이터 레이크 권한을 선택합니다.
  3. 권한 부여를 선택합니다.
  4. 주체에서 IAM 사용자 및 역할을 선택합니다.
  5. IAM 사용자 및 역할에서 Athena에 사용하려는 IAM 사용자 또는 역할을 선택합니다.
  6. LF-태그 또는 카탈로그 리소스에서 명명된 데이터 카탈로그 리소스를 선택합니다.
  7. 데이터베이스에서 IAM 사용자 또는 역할이 쓰는 데이터베이스를 선택합니다.
  8. 데이터베이스 권한에서 사용 사례에 따라 테이블 생성 또는 설명을 선택합니다.
    참고: 테이블을 만들려면 IAM 사용자 또는 역할에 데이터베이스에 대한 설명테이블 생성 권한이 모두 있어야 합니다.
  9. 권한 부여를 선택합니다.

Error "COLUMN_NOT_FOUND: line 1:8: SELECT * not allowed from relation that has no columns"

다음 단계에 따라 데이터베이스에 대한 설명 권한을 확인합니다. 그런 다음 테이블에 대한 설명선택 권한을 확인합니다.

참고: Lake Formation 관리자는 Athena 콘솔에서 데이터베이스 및 테이블을 볼 수 있지만 데이터를 쿼리하려면 필요한 권한이 필요합니다.

명명된 리소스 방법을 사용하여 데이터베이스 사용 권한 부여

  1. Lake Formation 콘솔을 엽니다.
  2. 탐색 창의 권한에서 데이터 레이크 권한을 선택합니다.
  3. 권한 부여를 선택합니다.
  4. 주체에서 IAM 사용자 및 역할을 선택합니다.
  5. IAM 사용자 및 역할에서 Athena에서 사용하려는 IAM 사용자 또는 역할을 선택합니다.
  6. LF-태그 또는 카탈로그 리소스에서 명명된 데이터 카탈로그 리소스를 선택합니다.
  7. 데이터베이스에서 테이블에 사용할 데이터베이스를 선택합니다.
  8. 데이터베이스 권한에서 설명를 선택합니다.
  9. 권한 부여를 선택합니다.

자세한 내용은 명명된 리소스 방법을 사용하여 데이터베이스 권한 부여를 참고하세요.

명명된 리소스 메서드를 사용하여 테이블 사용 권한 부여

  1. Lake Formation 콘솔을 엽니다.
  2. 탐색 창의 권한에서 데이터 레이크 권한을 선택합니다.
  3. 권한 부여를 선택합니다.
  4. 주체에서 IAM 사용자 및 역할을 선택합니다.
  5. IAM 사용자 및 역할에서 Athena에서 사용하려는 IAM 사용자 또는 역할을 선택합니다.
  6. LF-태그 또는 카탈로그 리소스에서 명명된 데이터 카탈로그 리소스를 선택합니다.
  7. 데이터베이스에서 데이터베이스를 선택합니다.
  8. 테이블에서 하나 이상의 테이블을 선택하거나 모든 테이블을 선택합니다.
  9. 테이블 권한에서 선택 또는 설명을 선택하여 선택 쿼리를 실행하거나 사용 사례에 맞는 테이블 권한을 선택합니다.
  10. 권한 부여를 선택합니다.

참고: 리소스 링크를 통해 테이블에 권한을 부여할 수도 있습니다. 이렇게 하려면 테이블 페이지에서 리소스 링크를 선택하고 작업을 선택한 다음 대상에 권한 부여를 선택합니다. 자세한 내용은 Lake Formation에서 리소스 링크의 작동 방식을 참고하세요.

관련 정보

데이터 위치 권한 부여

AWS 공식
AWS 공식업데이트됨 7달 전