AWS Glue 및 Lake Formation을 모두 사용하여 교차 계정 권한 관리하기 - AWS Lake Formation

AWS Glue 및 Lake Formation을 모두 사용하여 교차 계정 권한 관리하기

데이터 카탈로그 리소스 및 기본 데이터에 대한 교차 계정 액세스 권한을 AWS Glue 또는 AWS Lake Formation을 사용하여 부여할 수 있습니다.

AWS Glue에서는 데이터 카탈로그 리소스 정책을 만들거나 업데이트하여 교차 계정 권한을 부여합니다. Lake Formation에서는 Lake Formation GRANT/REVOKE 권한 모델과 Grant Permissions API 작업을 사용하여 교차 계정 권한을 부여합니다.

작은 정보

Lake Formation 권한에만 의존하여 데이터 레이크를 보호하는 것이 좋습니다.

Lake Formation 콘솔 또는 AWS Resource Access Manager(AWS RAM) 콘솔을 사용하여 Lake Formation 교차 계정 권한 부여를 볼 수 있습니다. 그러나 이러한 콘솔 페이지에는 AWS Glue 데이터 카탈로그 리소스 정책에 의해 부여된 교차 계정 권한이 표시되지 않습니다. 마찬가지로 AWS Glue 콘솔의 설정 페이지를 사용하여 데이터 카탈로그 리소스 정책에서 교차 계정 권한 부여를 볼 수 있지만, 이 페이지에는 Lake Formation을 사용하여 부여된 교차 계정 권한이 표시되지 않습니다.

교차 계정 권한을 보고 관리할 때 권한 부여를 놓치지 않도록 하기 위해, Lake Formation과 AWS Glue는 사용자가 Lake Formation과 AWS Glue의 교차 계정 권한 부여를 인지하고 허용하고 있음을 표시하기 위해 다음 작업을 수행하도록 요구합니다.

AWS Glue 데이터 카탈로그 리소스 정책을 사용하여 교차 계정 권한을 부여하는 경우

계정(권한 부여자 계정 또는 생산자 계정)이 AWS RAM을 사용하여 리소스를 공유하는 교차 계정 권한 부여를 하지 않은 경우 AWS Glue에서와 같이 데이터 카탈로그 리소스 정책을 저장할 수 있습니다. 하지만 AWS RAM 리소스 공유와 관련된 권한 부여가 이미 이루어진 경우, 리소스 정책을 성공적으로 저장하려면 다음 중 하나를 수행해야 합니다.

  • AWS Glue 콘솔의 설정 페이지에서 리소스 정책을 저장하면, 정책의 권한이 Lake Formation 콘솔을 사용하여 부여된 모든 권한에 추가된다는 알림이 콘솔에 표시됩니다. 정책을 저장하려면 계속 진행을 선택해야 합니다.

  • glue:PutResourcePolicy API 작업을 사용하여 리소스 정책을 저장하는 경우 EnableHybrid 필드를 'TRUE'(유형 = 문자열)로 설정해야 합니다. 다음 코드 예제는 Python에서 이 작업을 수행하는 방법을 보여줍니다.

    import boto3 import json REGION = 'us-east-2' PRODUCER_ACCOUNT_ID = '123456789012' CONSUMER_ACCOUNT_IDs = ['111122223333'] glue = glue_client = boto3.client('glue') policy = { "Version": "2012-10-17", "Statement": [ { "Sid": "Cataloguers", "Effect": "Allow", "Action": [ "glue:*" ], "Principal": { "AWS": CONSUMER_ACCOUNT_IDs }, "Resource": [ f"arn:aws:glue:{REGION}:{PRODUCER_ACCOUNT_ID}:catalog", f"arn:aws:glue:{REGION}:{PRODUCER_ACCOUNT_ID}:database/*", f"arn:aws:glue:{REGION}:{PRODUCER_ACCOUNT_ID}:table/*/*" ] } ] } policy = json.dumps(policy) glue.put_resource_policy(PolicyInJson=policy, EnableHybrid='TRUE')

    자세한 내용은 AWS Glue 개발자 안내서의 PutResourcePolicy 작업(Python: put_resource_policy)을 참조하세요.

Lake Formation 명명된 리소스 방법을 사용하여 교차 계정 권한을 부여하는 경우

계정에 데이터 카탈로그 리소스 정책이 없는 경우(생산자 계정) Lake Formation 교차 계정 권한 부여는 평소와 같이 진행됩니다. 그러나 데이터 카탈로그 리소스 정책이 있는 경우, 명명된 리소스 방법을 사용하여 교차 계정 권한 부여가 성공할 수 있도록 하기 위해 다음 명령문을 추가해야 합니다. <region>을 유효한 리전 이름으로 바꾸고 <account-id>를 AWS 계정 ID(생산자 계정 ID)로 바꿉니다.

{ "Effect": "Allow", "Action": [ "glue:ShareResource" ], "Principal": {"Service": [ "ram.amazonaws.com" ]}, "Resource": [ "arn:aws:glue:<region>:<account-id>:table/*/*", "arn:aws:glue:<region>:<account-id>:database/*", "arn:aws:glue:<region>:<account-id>:catalog" ] }

이 추가 명령문이 없으면 Lake Formation 권한 부여는 성공하지만, AWS RAM에서 차단되고 수신자 계정은 권한이 부여된 리소스에 액세스할 수 없습니다.

중요

Lake Formation 태그 기반 액세스 제어(LF-TBAC) 방법을 사용하여 계정 간 권한을 부여하는 경우, 최소한 사전 조건에 지정된 권한이 있는 데이터 카탈로그 리소스 정책이 있어야 합니다.

추가 참고: