AWS re:Post을(를) 사용하면 다음에 동의하게 됩니다. AWS re:Post 이용 약관

Athena 교차 계정 문제를 해결하려면 어떻게 해야 합니까?

3분 분량
0

AWS Glue Data Catalog 및 AWS Lake Formation 공유 리소스와 관련된 Amazon Athena 교차 계정 쿼리 문제를 해결하려고 합니다.

해결 방법

Data Catalog 또는 Lake Formation 교차 계정 공유 리소스에 대한 다음 문제 해결 단계를 따르십시오.

Data Catalog 교차 계정 공유 리소스

Athena 교차 계정 Data Catalog 기능을 사용하여 다른 계정의 카탈로그에 액세스한 경우 “액세스 거부됨” 오류가 발생할 수 있습니다. 예를 들어 GetDatabases 또는 GetTable과 같은 Data Catalog API 작업에서 “액세스 거부됨” 오류가 발생할 수 있습니다. 또한 다른 계정의 사용자에게 Amazon Simple Storage Service(Amazon S3) 버킷에 대한 액세스 권한을 부여하면 “액세스 거부됨” 오류가 발생할 수 있습니다.

교차 계정 쿼리를 수행하려면 사용자 계정이 아닌 다른 계정에서 Data Catalog와 Amazon S3 버킷에 액세스해야 하기 때문입니다.

다음 단계에 따라 Data Catalog 및 Amazon S3 권한을 확인하십시오.

Data Catalog 권한

다음 단계에 따라 ](https://docs.aws.amazon.com/athena/latest/ug/security-iam-cross-account-glue-catalog-access.html#security-iam-cross-account-glue-catalog-access-step-1a)소유자의 차용인 계정에 Data Catalog 액세스 권한을 부여합니다[. 그런 다음, AWS Identity and Access Management(IAM) 정책 권한을 부여하여 소유자 계정의 Data Catalog 리소스에 대한 차용인 역할에 액세스 권한을 부여합니다.

자세한 내용은 AWS Glue Data Catalog의 리소스에 대한 교차 계정 액세스를 제공하려면 어떻게 해야 합니까?를 참조하십시오.

Amazon S3 권한

단계에 따라 S3 버킷 정책을 사용하여 쿼리를 실행할 수 있도록 사용자에게 교차 계정 액세스 권한을 부여합니다. 자세한 내용은 Amazon S3 버킷에 있는 객체에 교차 계정 액세스 권한을 제공하려면 어떻게 해야 합니까?를 참조하십시오.

사용자 지정 AWS Key Management Service(AWS KMS) 키를 사용하여 암호화된 S3 버킷의 경우 추가 권한이 필요할 수 있습니다. 단계에 따라 사용자 지정 AWS KMS 키로 암호화된 버킷에 교차 계정 액세스 권한을 부여하십시오. 자세한 내용은 교차 계정 사용자가 사용자 지정 AWS KMS 키로 암호화된 S3 객체에 액세스하려고 할 때 액세스 거부됨 오류가 발생하는 이유는 무엇입니까?를 참조하십시오.

Lake Formation 교차 계정 공유 리소스

다음 단계에 따라 수신한 Lake Formation 교차 계정 오류 메시지 문제를 해결하십시오.

"Insufficient Lake Formation permissions: Illegal combination"

이 오류는 리소스의 IAMAllowedPrincipals 그룹에 Lake Formation 권한이 부여되었을 때 사용자가 Data Catalog 리소스를 공유했기 때문에 발생합니다. 이 오류를 해결하려면 리소스를 공유하기 전에 IAMAllowedPrincipals의 모든 Lake Formation 권한을 취소해야 합니다.

"HIVE_METASTORE_ERROR: Table is missing storage descriptor"

이 오류는 대상 테이블에 권한이 부여되지 않았기 때문에 발생합니다. 리소스 링크에 부여된 권한은 연결된 데이터베이스 또는 대상 테이블에 대한 권한을 부여하지 않습니다. 다음 단계에 따라 대상 테이블에 권한을 명시적으로 부여하십시오.

  1. Lake Formation 콘솔을 엽니다.
  2. 탐색 창에서 **Tables(테이블)**를 선택합니다.
  3. **Tables(테이블)**에서 리소스 링크를 선택합니다.
  4. **Actions(작업)**를 선택한 다음, **Grant on target(대상에 권한 부여)**을 선택합니다.
  5. **Grant data lake permissions(데이터 레이크 권한 부여)**에서 SELECT 및 DESCRIBE 권한을 부여하고 **Grant(권한 부여)**를 선택합니다.

자세한 내용은 Lake Formation에서 리소스 링크의 작동 방식을 참조하십시오.

"Permission denied on S3 path"

이 오류는 IAM 역할에 S3 버킷에서 객체를 읽을 권한이 없을 때 발생할 수 있습니다. AWS KMS 키를 사용하여 소유자 계정에 속한 암호화된 데이터를 쿼리하는 경우를 예로 들 수 있습니다. 이 시나리오에서는 IAM 역할에 다른 계정의 데이터를 해독할 권한이 없는 경우 오류가 발생합니다.

기본 AWSServiceRoleForLakeFormationDataAccess 서비스 연결 역할을 사용한 경우 사용자 지정 IAM 역할을 생성하십시오. IAM 역할에는 다른 계정과 공유하는 데 필요한 AWS KMS 키 권한이 있어야 합니다. 소유자 계정에 키 정책을 추가하십시오. 그런 다음, 새 IAM 역할을 사용하여 Lake Formation에 버킷을 다시 등록합니다.

자세한 내용은 Lake Formation 문제 해결을 참조하십시오.

관련 정보

MSCK REPAIR TABLE 쿼리가 AWS Glue Data Catalog에 파티션을 추가하지 않는 이유는 무엇입니까?

Athena의 Lake Formation 권한 문제를 해결하려면 어떻게 해야 합니까?

Amazon Athena를 사용하여 교차 계정 AWS Glue 데이터 카탈로그 쿼리

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