Lake Formation 문제 해결 - AWS Lake Formation

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

Lake Formation 문제 해결

AWS Lake Formation 작업 시 문제가 발생하면 이 섹션의 주제를 참조하세요.

일반 문제 해결

여기에 설명된 정보를 사용하여 다양한 Lake Formation 문제를 진단하고 해결하세요.

오류: <Amazon S3 위치>에 대한 Lake Formation 권한이 부족함

리소스가 가리키는 Amazon S3 위치에서 데이터 위치 권한 없이 데이터 카탈로그 리소스를 생성 또는 변경하려고 했습니다.

데이터 카탈로그 데이터베이스 또는 테이블이 Amazon S3 위치를 가리키는 경우 Lake Formation 권한 CREATE_TABLE 또는 ALTER를 부여할 때 해당 위치에 대한 DATA_LOCATION_ACCESS 권한도 부여해야 합니다. 외부 계정이나 조직에 이러한 권한을 부여할 때는 권한 부여 옵션을 포함해야 합니다.

외부 계정에 이러한 권한을 부여한 후에는 해당 계정의 데이터 레이크 관리자가 계정의 보안 주체(사용자 또는 역할)에 권한을 부여해야 합니다. 다른 계정에서 받은 DATA_LOCATION_ACCESS 권한을 부여할 때는 소유자 계정의 카탈로그 ID(AWS 계정 ID)를 지정해야 합니다. 소유자 계정은 위치를 등록한 계정입니다.

자세한 내용은 기본 데이터 액세스 제어데이터 위치 권한 부여 단원을 참조하세요.

오류: “Glue에 대한 암호화 키 권한 부족API”

암호화된 데이터 카탈로그의 AWS KMS 암호화 키에 대한 AWS Identity and Access Management (IAM) 권한 없이 Lake Formation 권한을 부여하려는 시도가 있었습니다.

매니페스트를 사용하는 내 Amazon Athena 또는 Amazon Redshift 쿼리가 실패함

Lake Formation은 매니페스트를 사용하는 쿼리를 지원하지 않습니다.

오류: 'Lake Formation 권한 부족: 카탈로그에서 태그 생성 필요'

사용자/역할은 데이터 레이크 관리자여야 합니다.

잘못된 데이터 레이크 관리자를 삭제하는 중에 오류 발생

잘못된 데이터 레이크 관리자(데이터 레이크 관리자로 정의된 삭제된 IAM 역할)를 모두 동시에 삭제해야 합니다. 잘못된 데이터 레이크 관리자를 개별적으로 삭제하려고 하면 Lake Formation에서 잘못된 보안 주체 오류가 발생합니다.

교차 계정 액세스 문제 해결

여기에 설명된 정보를 사용하여 교차 계정 액세스 문제를 진단하고 해결하세요.

교차 계정 Lake Formation 권한을 부여했지만 수신자가 리소스를 볼 수 없음

  • 수신자 계정의 사용자가 데이터 레이크 관리자인가요? 공유 시점의 리소스는 데이터 레이크 관리자만 볼 수 있습니다.

  • 명명된 리소스 방법을 사용하여 조직 외부 계정과 공유 중인가요? 그렇다면 수신자 계정의 데이터 레이크 관리자가 AWS Resource Access Manager ()에서 리소스 공유 초대를 수락해야 합니다AWS RAM.

    자세한 내용은 의 리소스 공유 초대 수락 AWS RAM 단원을 참조하십시오.

  • 에서 계정 수준(데이터 카탈로그) 리소스 정책을 사용하고 있습니까?AWS Glue? 예인 경우 명명된 리소스 메서드를 사용하는 경우 가 사용자를 대신하여 정책을 공유할 권한을 부여하는 특수 문 AWS RAM 을 정책에 포함해야 합니다.

    자세한 내용은 둘 다를 사용하여 교차 계정 권한 관리 AWS Glue 및 Lake Formation 단원을 참조하십시오.

  • 크로스 계정 액세스 권한을 부여하는 데 필요한 AWS Identity and Access Management (IAM) 권한이 있습니까?

    자세한 내용은 사전 조건 단원을 참조하십시오.

  • 권한을 부여한 리소스에는 IAMAllowedPrincipals 그룹에 부여된 Lake Formation 권한이 없어야 합니다.

  • 계정 수준 정책에 리소스에 대한 deny 문이 있나요?

수신자 계정의 보안 주체가 데이터 카탈로그 리소스는 볼 수 있지만 기본 데이터에는 액세스할 수 없음

수신자 계정의 보안 주체는 필요한 AWS Identity and Access Management (IAM) 권한을 가져야 합니다. 세부 정보는 공유 테이블의 기본 데이터에 액세스을 참조하세요.

오류: AWS RAM 리소스 공유 초대를 수락할 때 발신자가 승인되지 않아 '연결 실패'

다른 계정에 리소스에 대한 액세스 권한을 부여한 후 수신 계정이 리소스 공유 초대를 수락하려고 시도하면 작업이 실패합니다.

$ aws ram get-resource-share-associations --association-type PRINCIPAL --resource-share-arns arn:aws:ram:aws-region:444444444444:resource-share/e1d1f4ba-xxxx-xxxx-xxxx-xxxxxxxx5d8d { "resourceShareAssociations": [ { "resourceShareArn": "arn:aws:ram:aws-region:444444444444:resource-share/e1d1f4ba-xxxx-xxxx-xxxx-xxxxxxxx5d8d ", "resourceShareName": "LakeFormation-MMCC0XQBH3Y", "associatedEntity": "5815803XXXXX", "associationType": "PRINCIPAL", "status": "FAILED", "statusMessage": "Association failed because the caller was not authorized.", "creationTime": "2021-07-12T02:20:10.267000+00:00", "lastUpdatedTime": "2021-07-12T02:20:51.830000+00:00", "external": true } ] }

glue:PutResourcePolicy 에 의해 호출되어 오류가 발생합니다.AWS Glue 수신 계정이 리소스 공유 초대를 수락하는 경우. 이 문제를 해결하려면 생산자/권한 부여자 계정에서 사용하는 위임된 역할에 따라 glue:PutResourcePolicy 작업을 허용하세요.

오류: '리소스에 대한 권한을 부여할 권한이 없음'

다른 계정이 소유한 데이터베이스 또는 테이블에 대한 교차 계정 권한을 부여하려고 했습니다. 계정에서 데이터베이스 또는 테이블을 공유하는 경우 데이터 레이크 관리자는 계정 내 사용자에게만 데이터베이스 또는 테이블에 대한 권한을 부여할 수 있습니다.

오류: “ AWS 조직 정보를 검색하기 위한 액세스가 거부되었습니다.”

계정은 AWS Organizations 관리 계정이며 계정의 조직 단위와 같은 조직 정보를 검색하는 데 필요한 권한이 없습니다.

자세한 내용은 Required permissions for cross-account grants 단원을 참조하십시오.

오류: '조직(<organization-ID>)을 찾을 수 없음'

조직과 리소스를 공유하려고 시도했지만 조직과의 공유가 활성화되지 않았습니다. 조직과의 리소스 공유를 활성화하세요.

자세한 내용은 AWS RAM 사용 설명서AWS 조직과의 공유 활성화를 참조하세요.

오류: 'Lake Formation 권한 부족: 잘못된 조합"

Lake Formation 권한이 해당 리소스에 대한 IAMAllowedPrincipals 그룹에 부여된 동안 사용자가 Data Catalog 리소스를 공유했습니다. 사용자는 리소스를 공유하기 전에 IAMAllowedPrincipals에서 모든 Lake Formation 권한을 취소해야 합니다.

ConcurrentModificationException 외부 계정에 대한 권한 부여/취소 요청 시

사용자가 LF 태그 정책에 대한 보안 주체에 대해 여러 개의 동시 권한 부여 및/또는 취소 요청을 하면 Lake Formation이 를 던집니다 ConcurrentModificationException. 사용자는 예외를 포착하고 실패한 권한 부여/취소 요청을 다시 시도해야 합니다. GrantPermissions/RevokePermissions API 작업의 배치 버전을 사용하면 동시 승인/취소 요청 수를 줄여 이 문제를 어느 정도 BatchGrantPermissions BatchRevokePermissions 완화할 수 있습니다.

AmazonEMR을 사용하여 교차 계정을 통해 공유된 데이터에 액세스하는 중 오류 발생

AmazonEMR을 사용하여 다른 계정에서 공유된 데이터에 액세스하면 일부 Spark 라이브러리가 호출 Glue:GetUserDefinedFunctions API 작업을 시도합니다. AWS RAM 관리형 권한의 버전 1 및 2는 이 작업을 지원하지 않으므로 다음과 같은 오류 메시지가 표시됩니다.

"ERROR: User: arn:aws:sts::012345678901:assumed-role/my-spark-role/i-06ab8c2b59299508a is not authorized to perform: glue:GetUserDefinedFunctions on resource: arn:exampleCatalogResource because no resource-based policy allows the glue:GetUserDefinedFunctions action"

이 오류를 해결하려면 리소스 공유를 생성한 데이터 레이크 관리자가 리소스 공유에 연결된 AWS RAM 관리형 권한을 업데이트해야 합니다. AWS RAM 관리형 권한의 버전 3에서는 보안 주체의 glue:GetUserDefinedFunctions 작업 수행을 허용합니다.

새 리소스 공유를 생성하는 경우 Lake Formation은 기본적으로 AWS RAM 관리형 권한의 최신 버전을 적용하므로 사용자가 수행할 작업이 필요하지 않습니다. 기존 리소스 공유에 대해 계정 간 데이터 액세스를 활성화하려면 AWS RAM 관리형 권한을 버전 3으로 업데이트해야 합니다.

에서 공유된 리소스에 할당된 AWS RAM 권한을 볼 수 있습니다 AWS RAM. 버전 3에는 다음과 같은 권한이 포함됩니다.

Databases AWSRAMPermissionGlueDatabaseReadWriteForCatalog AWSRAMPermissionGlueDatabaseReadWrite Tables AWSRAMPermissionGlueTableReadWriteForCatalog AWSRAMPermissionGlueTableReadWriteForDatabase AllTables AWSRAMPermissionGlueAllTablesReadWriteForCatalog AWSRAMPermissionGlueAllTablesReadWriteForDatabase
기존 리소스 공유의 AWS RAM 관리형 권한 버전을 업데이트하려면

사용자(데이터 레이크 관리자)는 AWS RAM 사용 설명서의 지침에 따라 AWS RAM 관리형 권한을 최신 버전으로 업데이트하거나 리소스 유형에 대한 기존 권한을 모두 취소하고 다시 승인할 수 있습니다. 권한을 취소하면 는 AWS RAM 리소스 유형과 연결된 리소스 공유를 AWS RAM 삭제합니다. 권한을 AWS RAM 등록하면 는 최신 버전의 AWS RAM 관리형 권한을 연결하는 새 리소스 공유를 생성합니다.

청사진 및 워크플로 문제 해결

여기에 설명된 정보를 사용하여 청사진 및 워크플로 문제를 진단하고 해결하세요.

“사용자: <user-ARN>에서 내 블루프린트가 실패하여 iam:PassRole on resource: <role-ARN>”를 수행할 권한이 없습니다.

선택한 역할을 전달할 수 있는 권한이 없는 사용자가 청사진을 생성하려고 했습니다.

역할을 전달할 수 있도록 사용자 IAM 정책을 업데이트하거나 사용자에게 필요한 패스롤 권한이 있는 다른 역할을 선택하도록 요청합니다.

자세한 내용은 Lake Formation 페르소나 및 IAM 권한 참조 단원을 참조하십시오.

“User: <user-ARN>에서 워크플로가 실패하여 iam:PassRole on resource: <role-ARN>”를 수행할 권한이 없습니다.

워크플로에 지정한 역할에 역할 자체의 전달을 허용하는 인라인 정책이 없습니다.

자세한 내용은 (선택 사항) 워크플로에 대한 IAM 역할 생성 단원을 참조하십시오.

'리소스가 존재하지 않거나 요청자가 요청된 권한에 액세스할 권한이 없음'이라는 메시지와 함께 워크플로의 크롤러가 실패함

한 가지 가능한 원인으로, 전달된 역할에 대상 데이터베이스에 테이블을 생성할 수 있는 충분한 권한이 없었기 때문일 수 있습니다. 역할에 데이터베이스에 대한 CREATE_TABLE 권한을 부여하세요.

워크플로의 크롤러가 ' CreateTable 작업을 호출할 때 오류 발생(AccessDeniedException)...'으로 실패했습니다.

한 가지 가능한 원인으로, 워크플로 역할에 대상 스토리지 위치에 대한 데이터 위치 권한이 없었기 때문일 수 있습니다. 해당 역할에 데이터 위치 권한을 부여합니다.

자세한 내용은 DATA_LOCATION_ACCESS 단원을 참조하십시오.