기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
속성 기반 액세스 제어를 사용하여 권한 부여
이 주제에서는 Data Catalog 리소스에 대한 속성 기반 액세스 권한을 부여하기 위해 따라야 하는 단계를 설명합니다. Lake Formation 콘솔 또는 AWS 명령줄 인터페이스(AWS CLI)를 사용할 수 있습니다.
https://console.aws.amazon.com/lakeformation/
에서 Lake Formation 콘솔을 열고 데이터 레이크 관리자, 리소스 생성자 또는 해당 리소스에 대한 부여 가능한 권한을 가진 IAM 사용자로 로그인합니다. 다음 중 하나를 수행하세요.
탐색 창의 권한에서 데이터 레이크 권한을 선택합니다. 그런 다음 권한 부여를 선택합니다.
탐색 창의 Data Catalog에서 카탈로그를 선택합니다. 그런 다음 카탈로그 객체(카탈로그, 데이터베이스, 테이블 및 데이터 필터)를 선택하고 권한 아래의 작업 메뉴에서 권한 부여를 선택합니다.
권한 부여 페이지에서 속성별 보안 주체를 선택합니다.
속성 키와 값을 지정합니다. 값을 2개 이상 선택하면
OR연산자가 포함된 속성 표현식이 생성됩니다. 즉, IAM 역할 또는 사용자에게 할당된 속성 태그 값이 일치하는 경우 역할/사용자는 리소스에 대한 액세스 권한을 얻습니다.여러 속성 태그를 지정하면
AND연산자를 사용하여 속성 표현식이 생성됩니다. IAM 역할/사용자에게 속성 표현식의 각 속성 태그에 해당하는 태그가 할당된 경우에만 Data Catalog 리소스에 대한 권한이 보안 주체에게 부여됩니다.콘솔에 표시된 결과 Cedar 정책 표현식을 검토합니다.
권한 범위를 선택합니다. 피부여자가 외부 계정에 속한 경우 외부 계정을 선택하고 AWS 계정 ID를 입력합니다.
그런 다음 Data Catalog 계정을 선택하거나 외부 계정에서 선택합니다. 권한 부여를 성공적으로 완료하려면 리소스에 대한 해당 권한 부여 가능 권한이 있어야 합니다.
일치하는 속성이 있는 보안 주체(사용자 또는 역할)가 수행할 작업을 지정합니다. 지정된 속성 표현식 중 하나 이상과 일치하는 태그 및 값이 할당된 IAM 엔터티에 대한 액세스 권한이 부여됩니다. 콘솔에서 Cedar 정책 표현식을 검토합니다. Cedar에 대한 자세한 내용은 What is Cedar?를 참조하세요. | Cedar 정책 언어 참조 가이드 링크
그런 다음 Data Catalog 리소스를 선택하여 액세스 권한을 부여합니다. 카탈로그, 데이터베이스, 테이블 및 데이터 필터를 비롯한 다양한 Data Catalog 리소스에 대해 이러한 권한을 정의할 수 있습니다.
권한 부여를 선택합니다.
이 접근 방식을 사용하면 속성을 기반으로 액세스를 제어할 수 있으므로 적절한 태그가 있는 사용자 또는 역할만 지정된 리소스에 대해 특정 작업을 수행할 수 있습니다.
다음 예제에서는 리소스에 대해 사용 가능한 모든 권한을 받기 위해 충족해야 하는 속성 표현식을 보여줍니다. 아니면 Select, Describe 또는 Drop과 같은 개별 권한을 지정할 수 있습니다. 표현식은 Cedar 정책 표현식을 사용합니다. Cedar에 대한 자세한 내용은 What is Cedar?를 참조하세요. | Cedar 정책 언어 참조 가이드 링크
이 조건은 IAM 보안 주체에 department 태그가 있는지 확인하고 department 태그 값은 sales와 같습니다.
aws lakeformation grant-permissions --principal '{"DataLakePrincipalIdentifier": "111122223333:IAMPrincipals"}' \ --resource '{"Database": {"CatalogId":111122223333, "Name": "abac-db"}}' \ --permissionsALL\ --condition '{"Expression": "context.iam.principalTags.hasTag(\"department\") \ && context.iam.principalTags.getTag(\"department\") == \"sales\""}'