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 } ] }

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

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

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

오류: “ AWS 조직 정보를 검색할 수 있는 액세스가 거부되었습니다.”

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

자세한 정보는 Required permissions for cross-account grants을 참조하세요.

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

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

자세한 내용은 사용 AWS RAM 안내서의 AWS Organizations와 공유 활성화를 참조하십시오.

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

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

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

사용자가 LF-Tag 정책에 따라 보안 주체에 대한 권한 부여 및/또는 권한 취소를 동시에 여러 번 요청하면 Lake Formation이 이를 처리합니다. ConcurrentModificationException 사용자는 예외를 포착하고 실패한 권한 부여/취소 요청을 다시 시도해야 합니다. GrantPermissions/RevokePermissionsAPI 작업의 일괄 버전을 사용하면 동시 BatchRevokePermissions부여/취소 요청 BatchGrantPermissions수를 줄임으로써 이 문제를 어느 정도 완화할 수 있습니다.

Amazon EMR을 사용하여 교차 계정을 통해 공유된 데이터에 액세스할 때 오류 발생

Amazon EMR을 사용하여 다른 계정에서 공유된 데이터에 액세스하는 경우 일부 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

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

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

<role-ARN>내 청사진은 “사용자: <user-ARN>iam: PassRole on resource: 를 수행할 권한이 없습니다.” 라는 메시지가 표시되면서 실패했습니다.

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

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

자세한 정보는 Lake Formation 페르소나 및 IAM 권한 참조을 참조하세요.

<role-ARN>내 <user-ARN>워크플로가 실패했습니다. “사용자:: iam: PassRole on resource:”

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

자세한 정보는 (선택 사항) 워크플로를 위한 IAM 역할 생성을 참조하세요.

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

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

워크플로의 크롤러가 “작업을 호출하는 동안 오류가 발생했습니다 (AccessDeniedException)...” 라는 메시지가 표시되면서 실패했습니다. CreateTable

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

자세한 정보는 DATA_LOCATION_ACCESS을 참조하세요.