Lake Formation 태그 기반 액세스 제어를 사용한 데이터 레이크 관리 - AWS Lake Formation

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

Lake Formation 태그 기반 액세스 제어를 사용한 데이터 레이크 관리

수천 명의 고객이 페타바이트 규모의 데이터 레이크를 구축하고 있습니다. AWS이러한 고객 중 다수는 조직 전체에서 데이터 레이크를 쉽게 구축하고 공유하는 AWS Lake Formation 데 사용합니다. 테이블과 사용자 수가 증가함에 따라 데이터 관리자와 관리자는 데이터 레이크에 대한 권한을 대규모로 쉽게 관리할 수 있는 방법을 찾고 있습니다. Lake Formation TAG 기반 액세스 제어 (LF-TBAC) 는 데이터 관리자가 데이터 분류 및 온톨로지에 따라 LF-태그를 만든 다음 리소스에 연결할 수 있도록 함으로써 이 문제를 해결합니다.

TBACLF-는 속성을 기반으로 권한을 정의하는 권한 부여 전략입니다. Lake Formation에서 이러한 속성을 LF 태그라고 합니다. 데이터 카탈로그 리소스 및 Lake Formation 보안 주체에 LF 태그를 연결할 수 있습니다. 데이터 레이크 관리자는 LF 태그를 사용하여 Lake Formation 리소스에 대한 권한을 할당하고 취소할 수 있습니다. 자세한 내용은 Lake Formation 태그 기반 액세스 제어 섹션을 참조하세요.

이 가이드에서는 AWS 공개 데이터세트를 사용하여 Lake Formation 태그 기반 액세스 제어 정책을 만드는 방법을 보여줍니다. 또한 Lake Formation 태그 기반 액세스 정책이 연결된 테이블, 데이터베이스 및 열을 쿼리하는 방법도 보여줍니다.

다음 사용 사례에 TBAC LF-를 사용할 수 있습니다.

  • 데이터 레이크 관리자가 액세스 권한을 부여해야 하는 테이블과 보안 주체가 많습니다.

  • 온톨로지를 기반으로 데이터를 분류하고 분류에 따라 권한을 부여하려고 합니다.

  • 데이터 레이크 관리자는 느슨하게 결합된 방식으로 권한을 동적으로 할당하려고 합니다.

다음은 TBAC LF-를 사용하여 권한을 구성하는 상위 단계입니다.

  1. 데이터 관리자는 두 개의 LF 태그인 ConfidentialSensitive를 사용하여 태그 온톨로지를 정의합니다. Confidential=True인 데이터에는 더 엄격한 액세스 제어가 적용됩니다. Sensitive=True인 데이터에는 분석가의 구체적인 분석이 필요합니다.

  2. 데이터 관리자는 데이터 엔지니어가 다양한 LF 태그가 있는 테이블을 구축할 수 있도록 다양한 권한 수준을 할당합니다.

  3. 데이터 엔지니어는 tag_databasecol_tag_database의 두 가지 데이터베이스를 구축합니다. tag_database의 모든 테이블은 Confidential=True로 구성됩니다. col_tag_database의 모든 테이블은 Confidential=False로 구성됩니다. col_tag_database에 있는 테이블의 일부 열에는 특정 분석 요구 사항에 따라 Sensitive=True 태그가 지정되어 있습니다.

  4. 데이터 엔지니어는 분석가에게 특정 표현식 조건 Confidential=TrueConfidential=False,Sensitive=True이 있는 테이블에 대한 읽기 권한을 부여합니다.

  5. 이 구성을 통해 데이터 분석가는 올바른 데이터로 분석을 수행하는 데 집중할 수 있습니다.

수강 대상

이 자습서는 데이터 관리자, 데이터 엔지니어 및 데이터 분석가를 대상으로 합니다. Lake Formation의 관리 AWS Glue Data Catalog 및 관리 권한과 관련하여 생성 계정 내의 데이터 관리자는 지원하는 기능에 따라 기능적 소유권을 가지며 다양한 소비자, 외부 조직 및 계정에 액세스 권한을 부여할 수 있습니다.

다음 테이블에는 이 자습서에서 사용되는 역할이 나열되어 있습니다.

역할 설명
데이터 관리자(관리자) lf-data-steward 사용자는 다음과 같은 액세스 권한을 가집니다.
  • 데이터 카탈로그의 모든 리소스에 대한 읽기 액세스 권한

  • LF 태그를 생성하고 데이터 엔지니어 역할에 연결하여 다른 보안 주체에게 권한을 부여할 수 있음

데이터 엔지니어

lf-data-engineer 사용자는 다음과 같은 액세스 권한을 가집니다.

  • 데이터 카탈로그의 모든 리소스에 대한 전체 읽기, 쓰기 및 업데이트 액세스 권한

  • 데이터 레이크의 데이터 위치 권한

  • LF 태그를 연결하고 데이터 카탈로그에 연결할 수 있음

  • 리소스에 LF 태그를 연결하여 데이터 관리자가 생성한 정책을 기반으로 보안 주체에 액세스할 수 있음

데이터 분석가 lf-data-analyst 사용자는 다음과 같은 액세스 권한을 가집니다.
  • Lake Formation 태그 기반 액세스 정책을 통해 공유되는 리소스에 대한 세분화된 액세스 권한

사전 조건

이 자습서를 시작하기 전에 올바른 권한을 가진 관리자로 로그인하는 데 사용할 수 있는 계정이 AWS 계정 있어야 합니다. 자세한 내용은 초기 AWS 구성 작업을 완료하세요. 단원을 참조하십시오.

이 자습서에서는 사용자가 IAM 익숙하다고 가정합니다. 에 대한 IAM 자세한 내용은 IAM사용자 안내서를 참조하십시오.

1단계: 리소스 프로비저닝

이 자습서에는 빠른 설정을 위한 AWS CloudFormation 템플릿이 포함되어 있습니다. 템플릿을 검토한 후 필요에 맞게 사용자 지정할 수 있습니다. 템플릿은 에 나열되어 있는 수강 대상 세 가지 역할을 생성하여 이 연습을 수행하고 nyc-taxi-data 데이터세트를 로컬 Amazon S3 버킷에 복사합니다.

  • Amazon S3 버킷

  • 적절한 Lake Formation 설정

  • 적절한 아마존 EC2 리소스

  • 자격 증명이 있는 세 가지 IAM 역할

리소스 생성
  1. 미국 동부 (버지니아 북부) 지역의 https://console.aws.amazon.com/cloudformation에서 AWS CloudFormation 콘솔에 로그인합니다.

  2. 스택 시작을 선택합니다.

  3. Next(다음)를 선택합니다.

  4. 사용자 구성 섹션에서 세 가지 역할에 대한 암호를 입력합니다(DataStewardUserPassword, DataEngineerUserPasswordDataAnalystUserPassword).

  5. 마지막 페이지의 세부 정보를 검토하고 리소스가 생성될 수 있음을 AWS CloudFormation 인정함을 선택합니다. IAM

  6. 생성(Create)을 선택합니다.

    스택 생성에는 최대 5분이 걸릴 수 있습니다.

참고

자습서를 완료한 후 요금이 계속 발생하지 않도록 AWS CloudFormation 스택을 삭제하는 것이 좋습니다. 스택의 이벤트 상태에서 리소스가 성공적으로 삭제되었는지 확인하세요.

2단계: 데이터 위치 등록, LF-tag 온톨로지 생성, 권한 부여

이 단계에서 데이터 관리자 사용자는 두 개의 LF 태그 (Confidential및) 로 태그 온톨로지를 정의하고 특정 IAM 주체에게 새로 생성된 LF 태그를 리소스에 Sensitive 첨부할 수 있는 권한을 부여합니다.

데이터 위치를 등록하고 LF-태그 온톨로지를 정의합니다.
  1. 데이터 관리자 사용자(lf-data-steward)로서 첫 번째 단계를 수행하여 Amazon S3의 데이터와 Lake Formation의 데이터 카탈로그를 확인합니다.

    1. AWS CloudFormation 스택을 배포할 때 https://console.aws.amazon.com/lakeformation/사용한 비밀번호로 Lake Formation 콘솔에 로그인합니다. lf-data-steward

    2. 탐색 창의 권한에서 관리 역할 및 작업을 선택합니다.

    3. 데이터 레이크 관리자 섹션에서 추가를 선택합니다.

    4. 관리자 추가 페이지에서 IAM사용자 및 역할에 대해 사용자를 선택합니다lf-data-steward.

    5. 저장을 선택하여 lf-data-steward를 Lake Formation 관리자로 추가합니다.

  2. 다음으로 데이터 카탈로그 설정을 업데이트하여 IAM 기반 액세스 제어 대신 Lake Formation 권한을 사용하여 카탈로그 리소스를 제어합니다.

    1. 탐색 창의 관리에서 데이터 카탈로그 설정을 선택합니다.

    2. 새 데이터베이스에 대한 IAM 액세스 제어만 사용을 선택 취소하십시오.

    3. 새 데이터베이스의 새 테이블에 대한 IAM 액세스 제어만 사용을 선택 취소합니다.

    4. 저장을 클릭합니다.

  3. 다음으로, 데이터 레이크의 데이터 위치를 등록합니다.

    1. 탐색 창의 관리에서 데이터 레이크 위치를 선택합니다.

    2. 위치 등록을 선택합니다.

    3. 위치 등록 페이지에서 Amazon S3 경로에 을 입력합니다s3://lf-tagbased-demo-Account-ID.

    4. IAMrole의 경우 기본값을 AWSServiceRoleForLakeFormationDataAccess 그대로 두십시오.

    5. 권한 모드로 Lake Formation을 선택합니다.

    6. 위치 등록을 선택합니다.

  4. 다음으로, LF 태그를 정의하여 온톨로지를 생성합니다.

    1. 탐색 창의 권한 아래에서 LF-태그 및 권한을 선택합니다. .

    2. LF 태그 추가를 선택합니다.

    3. Confidential를 입력합니다.

    4. 에 대해 TrueFalse를 추가합니다.

    5. LF 태그 추가를 선택합니다.

    6. 단계를 반복하여 해당 값이 Sensitive 포함된 LF-태그를 생성합니다. True

    이 연습에 필요한 모든 LF-태그를 생성했습니다.

사용자에게 권한 부여 IAM
  1. 다음으로, 특정 IAM 주체에게 새로 만든 LF-태그를 리소스에 첨부할 수 있는 권한을 부여하세요.

    1. 탐색 창의 권한에서 LF-태그 및 권한을 선택합니다.

    2. LF-태그 권한 섹션에서 권한 부여를 선택합니다.

    3. 권한 유형에서 LF-태그 키-값 쌍 권한을 선택합니다.

    4. 사용자 및 역할을 선택합니다IAM.

    5. IAM사용자 및 역할의 경우 lf-data-engineer 역할을 검색하여 선택합니다.

    6. LF-Tags 섹션에서 값 TrueConfidential False with 값이 있는 키를 추가합니다. key Sensitive True

    7. 권한에서 권한부여 가능한 권한에 대한 설명연결을 선택합니다.

    8. 권한 부여를 선택합니다.

  2. 다음으로 데이터 카탈로그와 에서 생성한 기본 Amazon S3 버킷에 데이터베이스를 생성할 권한을 AWS CloudFormation부여합니다. lf-data-engineer

    1. 탐색 창의 관리에서 관리 역할 및 작업을 선택합니다.

    2. 데이터베이스 생성자 섹션에서 권한 부여를 선택합니다.

    3. IAM사용자 및 역할의 경우 lf-data-engineer 역할을 선택합니다.

    4. 카탈로그 권한에 대해 데이터베이스 생성을 선택합니다.

    5. 권한 부여를 선택합니다.

  3. 다음으로, Amazon S3 버킷(s3://lf-tagbased-demo-Account-ID)에 대한 권한을 lf-data-engineer 사용자에게 부여합니다.

    1. 탐색 창의 권한에서 데이터 위치를 선택합니다.

    2. 권한 부여를 선택합니다.

    3. 내 계정을 선택합니다.

    4. IAM사용자 및 역할의 경우 lf-data-engineer 역할을 선택합니다.

    5. 스토리지 위치에는 AWS CloudFormation 템플릿으로 생성한 Amazon S3 버킷을 입력합니다(s3://lf-tagbased-demo-Account-ID).

    6. 권한 부여를 선택합니다.

  4. 다음으로, LF-Tag 표현식과 관련된 리소스에 lf-data-engineer 부여 가능한 권한을 부여하십시오. Confidential=True

    1. 탐색 창의 권한에서 데이터 레이크 권한을 선택합니다.

    2. 권한 부여를 선택합니다.

    3. IAM사용자 및 역할을 선택합니다.

    4. lf-data-engineer 역할을 선택합니다.

    5. LF-태그 또는 카탈로그 리소스 섹션에서 LF-태그와 일치하는 리소스를 선택합니다.

    6. LF-태그 키-값 쌍 추가를 선택합니다.

    7. 값이 TrueConfidential 키를 추가합니다.

    8. 데이터베이스 권한 섹션에서 데이터베이스 권한부여 가능한 권한에 대해 설명을 선택합니다.

    9. 테이블 권한 섹션에서 테이블 권한과 부여 가능 권한 모두에 대해 설명, 선택, 변경을 선택합니다.

    10. 권한 부여를 선택합니다.

  5. 다음으로 LF-Tag 표현식과 관련된 리소스에 lf-data-engineer 부여 가능한 권한을 부여합니다. Confidential=False

    1. 탐색 창의 권한에서 데이터 레이크 권한을 선택합니다.

    2. 권한 부여를 선택합니다.

    3. IAM사용자 및 역할을 선택합니다.

    4. lf-data-engineer 역할을 선택합니다.

    5. LF 태그와 일치하는 리소스를 선택합니다.

    6. LF 태그 추가를 선택합니다.

    7. 값이 FalseConfidential 키를 추가합니다.

    8. 데이터베이스 권한 섹션에서 데이터베이스 권한부여 가능한 권한에 대해 설명을 선택합니다.

    9. 테이블 및 열 권한 섹션에서는 아무 것도 선택하지 않습니다.

    10. 권한 부여를 선택합니다.

  6. 다음으로 LF-Tag 키-값 쌍과 관련된 리소스에 lf-data-engineer 부여 가능한 권한을 부여합니다. Confidential=False Sensitive=True

    1. 탐색 창의 권한에서 데이터 권한을 선택합니다.

    2. 권한 부여를 선택합니다.

    3. 사용자 및 역할을 선택합니다. IAM

    4. lf-data-engineer 역할을 선택합니다.

    5. LF-태그 또는 카탈로그 리소스 섹션에서 LF-태그와 일치하는 리소스를 선택합니다.

    6. LF 태그 추가를 선택합니다.

    7. 값이 FalseConfidential 키를 추가합니다.

    8. LF-태그 키-값 쌍 추가를 선택합니다.

    9. 값이 TrueSensitive 키를 추가합니다.

    10. 데이터베이스 권한 섹션에서 데이터베이스 권한부여 가능한 권한에 대해 설명을 선택합니다.

    11. 테이블 권한 섹션에서 테이블 권한과 부여 가능 권한 모두에 대해 설명, 선택, 변경을 선택합니다.

    12. 권한 부여를 선택합니다.

3단계: Lake Formation 데이터베이스 생성

이 단계에서는 두 개의 데이터베이스를 만들고 테스트 목적으로 데이터베이스와 특정 열에 LF-태그를 첨부합니다.

데이터베이스 수준 액세스를 위한 데이터베이스 및 테이블 생성
  1. 먼저 데이터베이스와 tag_database 테이블을 만들고 적절한 source_data LF-태그를 첨부합니다.

    1. Lake Formation 콘솔 (https://console.aws.amazon.com/lakeformation/) 의 데이터 카탈로그에서 데이터베이스를 선택합니다.

    2. 데이터베이스 생성를 선택합니다.

    3. 이름tag_database을 입력합니다.

    4. 위치에는 AWS CloudFormation 템플릿으로 생성한 Amazon S3 위치를 입력합니다(s3://lf-tagbased-demo-Account-ID/tag_database/).

    5. 이 데이터베이스의 새 테이블에 대한 IAM 액세스 제어만 사용을 선택 취소하십시오.

    6. 데이터베이스 생성를 선택합니다.

  2. 다음으로, tag_database 내에 새 테이블을 생성합니다.

    1. 데이터베이스 페이지에서 tag_database 데이터베이스를 선택합니다.

    2. 테이블 보기를 선택하고 테이블 생성을 클릭합니다.

    3. 이름source_data을 입력합니다.

    4. 데이터베이스tag_database 데이터베이스를 선택합니다.

    5. 표 형식의 경우 표준 AWS Glue 표를 선택합니다.

    6. 데이터 위치에서 내 계정 내의 지정된 경로를 선택합니다.

    7. 경로 포함에는 AWS CloudFormation 템플릿에서 tag_database 생성할 경로를 입력합니다(s3://lf-tagbased-demoAccount-ID/tag_database/).

    8. 데이터 형식에서 CSV를 선택합니다.

    9. 업로드 스키마에서 다음과 같은 열 구조 JSON 배열을 입력하여 스키마를 생성합니다.

      [ { "Name": "vendorid", "Type": "string" }, { "Name": "lpep_pickup_datetime", "Type": "string" }, { "Name": "lpep_dropoff_datetime", "Type": "string" }, { "Name": "store_and_fwd_flag", "Type": "string" }, { "Name": "ratecodeid", "Type": "string" }, { "Name": "pulocationid", "Type": "string" }, { "Name": "dolocationid", "Type": "string" }, { "Name": "passenger_count", "Type": "string" }, { "Name": "trip_distance", "Type": "string" }, { "Name": "fare_amount", "Type": "string" }, { "Name": "extra", "Type": "string" }, { "Name": "mta_tax", "Type": "string" }, { "Name": "tip_amount", "Type": "string" }, { "Name": "tolls_amount", "Type": "string" }, { "Name": "ehail_fee", "Type": "string" }, { "Name": "improvement_surcharge", "Type": "string" }, { "Name": "total_amount", "Type": "string" }, { "Name": "payment_type", "Type": "string" } ]
    10. 업로드를 선택합니다. 스키마를 업로드한 후 테이블 스키마는 다음 스크린샷과 같아야 합니다.

      Table schema with 18 columns showing column names and data types, all set to string.
    11. 제출을 선택합니다.

  3. 다음으로 데이터베이스 수준에서 LF-태그를 첨부합니다.

    1. 데이터베이스 페이지에서 tag_database를 찾아서 선택합니다.

    2. 작업 메뉴에서 LF-태그 편집을 선택합니다.

    3. 새 LF 태그 할당을 선택합니다.

    4. 할당된 키의 경우 이전에 만든 Confidential LF-태그를 선택합니다.

    5. 에서 True를 선택합니다.

    6. 저장(Save)을 선택합니다.

    이로써 tag_database 데이터베이스에 대한 LF-태그 할당이 완료됩니다.

열 수준 액세스를 위한 데이터베이스 및 테이블 생성

다음 단계를 반복하여 col_tag_database 데이터베이스와 테이블을 생성하고 열 수준에서 source_data_col_lvl LF-태그를 첨부합니다.

  1. 데이터베이스 페이지에서 데이터베이스 생성을 선택합니다.

  2. 이름col_tag_database을 입력합니다.

  3. 위치에는 AWS CloudFormation 템플릿으로 생성한 Amazon S3 위치를 입력합니다(s3://lf-tagbased-demo-Account-ID/col_tag_database/).

  4. 이 데이터베이스의 새 테이블에 대한 IAM 액세스 제어만 사용을 선택 취소하십시오.

  5. 데이터베이스 생성를 선택합니다.

  6. 데이터베이스 페이지에서 새 데이터베이스(col_tag_database)를 선택합니다.

  7. 테이블 보기를 선택하고 테이블 만들기를 클릭합니다.

  8. 이름source_data_col_lvl을 입력합니다.

  9. 데이터베이스에서 새 데이터베이스(col_tag_database)를 선택합니다.

  10. 표 형식의 경우 표준 AWS Glue 표를 선택합니다.

  11. 데이터 위치에서 내 계정 내의 지정된 경로를 선택합니다.

  12. col_tag_database (s3://lf-tagbased-demo-Account-ID/col_tag_database/)에 대해 Amazon S3 경로를 입력합니다.

  13. 데이터 형식에서 CSV를 선택합니다.

  14. 에서 Upload schema JSON 다음 스키마를 입력합니다.

    [ { "Name": "vendorid", "Type": "string" }, { "Name": "lpep_pickup_datetime", "Type": "string" }, { "Name": "lpep_dropoff_datetime", "Type": "string" }, { "Name": "store_and_fwd_flag", "Type": "string" }, { "Name": "ratecodeid", "Type": "string" }, { "Name": "pulocationid", "Type": "string" }, { "Name": "dolocationid", "Type": "string" }, { "Name": "passenger_count", "Type": "string" }, { "Name": "trip_distance", "Type": "string" }, { "Name": "fare_amount", "Type": "string" }, { "Name": "extra", "Type": "string" }, { "Name": "mta_tax", "Type": "string" }, { "Name": "tip_amount", "Type": "string" }, { "Name": "tolls_amount", "Type": "string" }, { "Name": "ehail_fee", "Type": "string" }, { "Name": "improvement_surcharge", "Type": "string" }, { "Name": "total_amount", "Type": "string" }, { "Name": "payment_type", "Type": "string" } ]
  15. Upload를 선택합니다. 스키마를 업로드한 후 테이블 스키마는 다음 스크린샷과 같아야 합니다.

    Table schema with 18 columns showing column names and data types, all set to string.
  16. 제출을 선택하여 테이블 생성을 완료합니다.

  17. 이제 Sensitive=True LF-태그를 열과 vendorid 연결합니다. fare_amount

    1. 테이블 페이지에서 생성한 테이블(source_data_col_lvl)을 선택합니다.

    2. 작업 메뉴에서 스키마를 선택합니다.

    3. 열을 vendorid 선택하고 LF-Tags 편집을 선택합니다.

    4. 할당된 키에 대해 Sensitive를 선택합니다.

    5. 으로 True를 선택합니다.

    6. 저장(Save)을 선택합니다.

  18. 다음으로 Confidential=False LF-태그를 에 연결합니다. col_tag_database 이것은 로그인한 col_tag_database 상태에서 데이터베이스를 설명할 수 있으려면 필요합니다. lf-data-analyst Amazon Athena

    1. 데이터베이스 페이지에서 col_tag_database를 찾아서 선택합니다.

    2. 작업 메뉴에서 LF-Tag 편집을 선택합니다.

    3. 새 LF 태그 할당을 선택합니다.

    4. 할당된 키의 경우 이전에 만든 Confidential LF-태그를 선택합니다.

    5. 에서 False를 선택합니다.

    6. 저장(Save)을 선택합니다.

4단계: 테이블 권한 부여

LF 태그 ConfidentialSensitive를 사용하여 데이터 분석가에게 데이터베이스 tag_database 및 테이블 col_tag_database 사용 권한을 부여합니다.

  1. 다음 단계에 따라 LF-Tag와 관련된 객체 Confidential=True (Database:tag_database) 에 대한 권한을 lf-data-analyst 사용자에게 부여하여 데이터베이스를 보유할 수 있는 권한과 테이블에 대한 권한을 부여하십시오. Describe Select

    1. https://console.aws.amazon.com/lakeformation/as로 Lake Formation 콘솔에 lf-data-engineer 로그인합니다.

    2. 권한에서 데이터 레이크 권한을 선택합니다.

    3. 권한 부여를 선택합니다.

    4. 보안 주체에서 IAM 사용자 역할을 선택합니다.

    5. IAM사용자 및 역할의 경우 선택합니다. lf-data-analyst

    6. LF-태그 또는 카탈로그 리소스에서 LF-태그와 일치하는 리소스를 선택합니다.

    7. LF 태그 추가를 선택합니다.

    8. Confidential를 선택합니다.

    9. 에서 True를 선택합니다.

    10. 데이터베이스 권한에서 Describe을 선택합니다.

    11. 테이블 권한에서 선택설명을 선택합니다.

    12. 권한 부여를 선택합니다.

  2. 그런 다음 단계를 반복하여 데이터 분석가에게 LF-태그 표현에 대한 권한을 부여합니다. Confidential=FalseLF 태그는 Amazon Athena에서 lf-data-analyst로 로그인했을 때 col_tag_databasesource_data_col_lvl 테이블을 설명하는 데 사용됩니다.

    1. https://console.aws.amazon.com/lakeformation/as로 Lake Formation 콘솔에 lf-data-engineer 로그인합니다.

    2. 데이터베이스 페이지에서 col_tag_database 데이터베이스를 선택합니다.

    3. 작업권한 부여를 선택합니다.

    4. [보안 관리자] 에서 IAM 사용자 및 역할을 선택합니다.

    5. IAM사용자 및 역할의 경우 선택합니다. lf-data-analyst

    6. LF-태그와 일치하는 리소스를 선택합니다.

    7. LF 태그 추가를 선택합니다.

    8. Confidential를 선택합니다.

    9. 에서 False를 선택합니다.

    10. 데이터베이스 권한에서 Describe을 선택합니다.

    11. 테이블 권한에서는 아무 것도 선택하지 않습니다.

    12. 권한 부여를 선택합니다.

  3. 그런 다음 단계를 반복하여 데이터 분석가에게 및 에 대한 LF-태그 표현식에 대한 권한을 부여합니다. Confidential=False Sensitive=True 이 LF 태그는 Amazon Athena에서 lf-data-analyst로 로그인했을 때 col_tag_databasesource_data_col_lvl(열 수준) 테이블을 설명하는 데 사용됩니다.

    1. https://console.aws.amazon.com/lakeformation/as에서 Lake Formation 콘솔에 lf-data-engineer 로그인하십시오.

    2. 데이터베이스 페이지에서 데이터베이스 col_tag_database를 선택합니다.

    3. 작업권한 부여를 선택합니다.

    4. [보안 관리자] 에서 IAM 사용자 및 역할을 선택합니다.

    5. IAM사용자 및 역할의 경우 선택합니다. lf-data-analyst

    6. LF-태그와 일치하는 리소스를 선택합니다.

    7. LF 태그 추가를 선택합니다.

    8. Confidential를 선택합니다.

    9. 에서 False를 선택합니다.

    10. LF 태그 추가를 선택합니다.

    11. Sensitive를 선택합니다.

    12. 에서 True를 선택합니다.

    13. 데이터베이스 권한에서 Describe을 선택합니다.

    14. 테이블 권한에서 SelectDescribe을 선택합니다.

    15. 권한 부여를 선택합니다.

5단계: Amazon Athena에서 쿼리를 실행하여 권한 확인

이 단계에서는 Amazon Athena를 사용하여 두 테이블(source_data and source_data_col_lvl)에 대해 SELECT 쿼리를 실행합니다. Amazon S3 경로를 쿼리 결과 위치(s3://lf-tagbased-demo-Account-ID/athena-results/)로 사용합니다.

  1. Athena 콘솔에 as로 로그인합니다. https://console.aws.amazon.com/athena/lf-data-analyst

  2. Athena 쿼리 편집기의 왼쪽 패널에서 tag_database를 선택합니다.

  3. source_data 옆에 있는 추가 메뉴 옵션 아이콘(세로 점 3개)을 선택하고 테이블 미리 보기를 선택합니다.

  4. 쿼리 실행을 선택합니다.

    쿼리 실행에는 몇 분 정도 걸립니다. LF 태그는 데이터베이스 수준에서 연결되어 있고 source_data 테이블은 데이터베이스 tag_database에서 LF-tag를 자동으로 상속했기 때문에 이 쿼리는 출력의 모든 열을 표시합니다.

  5. col_tag_databasesource_data_col_lvl을 사용하여 다른 쿼리를 실행합니다.

    두 번째 쿼리는 Non-ConfidentialSensitive로 태그 지정된 두 열을 반환합니다.

  6. 정책 부여가 없는 열에 대한 Lake Formation 태그 기반 액세스 정책 동작을 확인할 수도 있습니다. 테이블 source_data_col_lvl에서 태그가 지정되지 않은 열을 선택하면 Athena가 오류를 반환합니다. 예를 들어 다음 쿼리를 실행하여 태그가 지정되지 않은 열 geolocationid를 선택할 수 있습니다.

    SELECT geolocationid FROM "col_tag_database"."source_data_col_lvl" limit 10;

6단계: 리소스 정리 AWS

원치 않는 요금이 청구되는 것을 방지하려면 이 자습서에서 사용한 AWS 리소스를 삭제하면 됩니다. AWS 계정

  1. Lake Formation 콘솔에 lf-data-engineer로 로그인하고 데이터베이스 tag_databasecol_tag_database를 삭제합니다.

  2. 다음으로, lf-data-steward로 로그인하고 위에서 lf-data-engineerlf-data-analyst.에게 부여된 LF 태그 권한, 데이터 권한데이터 위치 권한을 모두 정리합니다.

  3. AWS CloudFormation 스택을 배포하는 데 사용한 IAM 자격 증명을 사용하여 계정 소유자로 Amazon S3 콘솔에 로그인합니다.

  4. 다음 버킷을 삭제합니다.

    • lf-tagbased-demo-accesslogs-acct-id

    • lf-tagbased-demo-acct-id

  5. https://console.aws.amazon.com/cloudformation에서 AWS CloudFormation 콘솔에 로그인하고 생성한 스택을 삭제합니다. 스택 상태가 DELETE_COMPLETE로 변경될 때까지 기다립니다.