행 수준 액세스 제어를 통한 데이터 레이크 보호 - AWS Lake Formation

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

행 수준 액세스 제어를 통한 데이터 레이크 보호

AWS Lake Formation 행 수준 권한을 사용하면 데이터 규정 준수 및 거버넌스 정책에 따라 테이블의 특정 행에 대한 액세스를 제공할 수 있습니다. 수십억 개의 레코드가 저장된 대형 테이블이 있는 경우 다양한 사용자와 팀이 볼 수 있는 데이터에만 액세스할 수 있도록 하는 방법이 필요합니다. 행 수준 액세스 제어는 데이터를 보호하면서도 사용자에게 작업 수행에 필요한 데이터에 대한 액세스를 제공하는 간단하고 효과적인 방법입니다. Lake Formation은 어떤 보안 주체가 언제, 어떤 서비스를 통해 어떤 데이터에 액세스했는지 식별하여 중앙 집중식 감사 및 규정 준수 보고를 제공합니다.

이 자습서에서는 Lake Formation에서 행 수준 액세스 제어가 작동하는 방식과 설정 방법을 알아봅니다.

이 자습서에는 필요한 리소스를 빠르게 설정할 수 있는 AWS CloudFormation 템플릿이 포함되어 있습니다. 템플릿을 검토한 후 필요에 맞게 사용자 지정할 수 있습니다.

수강 대상

이 자습서는 데이터 관리자, 데이터 엔지니어 및 데이터 분석가를 대상으로 합니다. 다음 테이블에는 데이터 소유자와 데이터 소비자의 역할 및 책임이 나열되어 있습니다.

역할 설명
IAM관리자 사용자와 역할, Amazon Simple Storage Service(S3) 버킷을 생성할 수 있는 사용자입니다. AdministratorAccess AWS 관리형 정책이 있습니다.
데이터 레이크 관리자 데이터 레이크 설정, 데이터 필터 생성 및 데이터 분석가에 대한 권한 부여를 담당하는 사용자입니다.
데이터 분석가 데이터 레이크에 대해 쿼리를 실행할 수 있는 사용자입니다. 다른 국가(당사 사용 사례에서는 미국과 일본)에 거주하는 데이터 분석가는 자국에 위치한 고객에 대한 제품 리뷰만 분석할 수 있으며 규정 준수상의 이유로 다른 국가에 있는 고객 데이터는 볼 수 없습니다.

사전 조건

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

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

Lake Formation 설정 변경
중요

AWS CloudFormation 템플릿을 실행하기 전에 아래 단계에 따라 Lake Formation에서 새 데이터베이스/테이블에 대한 IAM 액세스 제어만 사용 옵션을 비활성화하십시오.

  1. 미국 동부 (버지니아 북부) 지역 또는 미국 서부 (오레곤) 지역에서 Lake Formation 콘솔에 로그인합니다. https://console.aws.amazon.com/lakeformation/

  2. 데이터 카탈로그에서 설정을 선택합니다.

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

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

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

이 자습서에는 빠른 설정을 위한 AWS CloudFormation 템플릿이 포함되어 있습니다. 템플릿을 검토한 후 필요에 맞게 사용자 지정할 수 있습니다. AWS CloudFormation 템플릿은 다음과 같은 리소스를 생성합니다.

  • 다음에 대한 사용자 및 정책:

    • DataLakeAdmin

    • DataAnalyst미국

    • DataAnalystJP

  • Lake Formation 데이터 레이크 설정 및 권한

  • 공개 Amazon S3 버킷에서 Amazon S3 버킷으로 샘플 데이터 파일을 복사하는 데 사용되는 AWS CloudFormation Lambda 함수 (Lambda 지원 사용자 지정 리소스용)

  • 데이터 레이크 역할을 하는 Amazon S3 버킷

  • 데이터베이스 AWS Glue Data Catalog , 테이블, 파티션

리소스 생성

AWS CloudFormation 템플릿을 사용하여 리소스를 생성하려면 다음 단계를 따르세요.

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

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

  3. 스택 생성 화면에서 다음을 선택합니다.

  4. 스택 이름을 입력합니다.

  5. DatalakeAdminUserNameDatalakeAdminUserPassword에 대해 데이터 레이크 IAM 관리자 사용자의 사용자 이름과 암호를 입력합니다.

  6. DataAnalystUsUserNameDataAnalystUsUserPassword에는 미국 마켓플레이스를 담당하는 데이터 분석가 사용자에게 제공할 사용자 이름 및 암호에 대한 사용자 이름과 암호를 입력합니다.

  7. DataAnalystJpUserNameDataAnalystJpUserPassword의 경우 일본 마켓플레이스를 담당하는 데이터 분석가 사용자에 대해 원하는 사용자 이름 및 암호에 대한 사용자 이름과 암호를 입력합니다.

  8. DataLakeBucketName에 데이터 버킷 이름을 입력합니다.

  9. For DatabaseName, 를 기본값으로 사용하고 TableName그대로 둡니다.

  10. 다음을 선택합니다.

  11. 다음 페이지에서 다음을 선택합니다.

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

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

    스택 생성을 완료하는 데 1분이 걸릴 수 있습니다.

2단계: 데이터 필터 없이 쿼리

환경을 설정한 후 제품 리뷰 테이블을 쿼리할 수 있습니다. 먼저 행 수준 액세스 제어 없이 테이블을 쿼리하여 데이터를 볼 수 있는지 확인합니다. Amazon Athena에서 처음으로 쿼리를 실행하는 경우 쿼리 결과 위치를 구성해야 합니다.

행 수준 액세스 제어 없이 테이블 쿼리
  1. Athena콘솔에 https://console.aws.amazon.com/athena/사용자로 DatalakeAdmin 로그인하고 다음 쿼리를 실행합니다.

    SELECT * FROM lakeformation_tutorial_row_security.amazon_reviews LIMIT 10

    다음 스크릿샷은 쿼리 결과를 보여줍니다. 이 테이블에는 하나의 파티션(product_category=Video)만 있으므로 각 레코드는 비디오 제품에 대한 리뷰 댓글입니다.

    Query results showing 10 rows of Amazon product reviews for VHS tapes with various ratings.
  2. 다음으로, 집계 쿼리를 실행하여 marketplace당 총 레코드 수를 검색합니다.

    SELECT marketplace, count(*) as total_count FROM lakeformation_tutorial_row_security.amazon_reviews GROUP BY marketplace

    다음 스크릿샷은 쿼리 결과를 보여줍니다. marketplace 열에는 5개의 서로 다른 값이 있습니다. 다음 단계에서는 marketplace 열을 사용하여 행 기반 필터를 설정합니다.

    Query results showing marketplace data with total counts for FR, UK, JP, DE, and US.

3단계: 데이터 필터 설정 및 권한 부여

이 자습서에서는 두 명의 데이터 분석가를 사용합니다. 한 명은 미국 Marketplace를 담당하고 다른 한 명은 일본 Marketplace를 담당합니다. 각 분석가는 Athena를 사용하여 특정 Marketplace에 대한 고객 리뷰만 분석합니다. 두 개의 데이터 필터를 생성합니다. 하나는 미국 Marketplace 담당 분석가를 위한 것이고 다른 하나는 일본 Marketplace 담당 분석가를 위한 것입니다. 그런 다음 분석가에게 각각의 권한을 부여합니다.

데이터 필터 생성 및 권한 부여
  1. US marketplace 데이터에 대한 액세스를 제한하는 필터를 생성합니다.

    1. 미국 동부 (버지니아 북부) 지역의 Lake Formation https://console.aws.amazon.com/lakeformation/콘솔에 DatalakeAdmin 사용자로 로그인합니다.

    2. 데이터 필터를 선택합니다.

    3. 새 필터 생성을 선택합니다.

    4. 데이터 필터 이름으로 amazon_reviews_US를 입력합니다.

    5. 대상 데이터베이스에 대해 lakeformation_tutorial_row_security 데이터베이스를 선택합니다.

    6. 대상 테이블에 대해 amazon_reviews 테이블을 선택합니다.

    7. 열 수준 액세스는 기본값으로 둡니다.

    8. 행 필터 표현식에는 marketplace='US'를 입력합니다.

    9. Create filter(필터 생성)를 선택합니다.

  2. 일본 marketplace 데이터에 대한 액세스를 제한하는 필터를 생성합니다.

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

    2. 데이터 필터 이름으로 amazon_reviews_JP를 입력합니다.

    3. 대상 데이터베이스에 대해 lakeformation_tutorial_row_security 데이터베이스를 선택합니다.

    4. 대상 테이블에 대해 table amazon_reviews를 선택합니다.

    5. 열 수준 액세스는 기본값으로 둡니다.

    6. 행 필터 표현식에는 marketplace='JP'를 입력합니다.

    7. Create filter(필터 생성)를 선택합니다.

  3. 다음으로, 이러한 데이터 필터를 사용하는 데이터 분석가에게 권한을 부여합니다. 다음 단계에 따라 미국 데이터 분석가(DataAnalystUS)에게 권한을 부여합니다.

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

    2. 데이터 권한에서 권한 부여를 선택합니다.

    3. 주도자의 경우 IAM사용자 및 역할을 선택하고 역할을 선택합니다. DataAnalystUS

    4. LF 태그 또는 카탈로그 리소스에 대해 명명된 데이터 카탈로그 리소스를 선택합니다.

    5. Database(데이터베이스)에서 lakeformation_tutorial_row_security를 선택합니다.

    6. 테이블 - 선택 사항에 대해 amazon_reviews를 선택합니다.

    7. 데이터 필터 - 선택 사항에 대해 amazon_reviews_US를 선택합니다.

    8. 데이터 필터 권한에 대해 선택을 선택합니다.

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

  4. 다음 단계에 따라 일본 데이터 분석가(DataAnalystJP)에게 권한을 부여합니다.

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

    2. 데이터 권한에서 권한 부여를 선택합니다.

    3. 주도자의 경우 IAM사용자 및 역할을 선택하고 역할을 선택합니다. DataAnalystJP

    4. LF 태그 또는 카탈로그 리소스에 대해 명명된 데이터 카탈로그 리소스를 선택합니다.

    5. Database(데이터베이스)에서 lakeformation_tutorial_row_security를 선택합니다.

    6. 테이블 - 선택 사항에 대해 amazon_reviews를 선택합니다.

    7. 데이터 필터 - 선택 사항에 대해 amazon_reviews_JP를 선택합니다.

    8. 데이터 필터 권한에 대해 선택을 선택합니다.

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

4단계: 데이터 필터를 사용하여 쿼리

제품 리뷰 테이블에 데이터 필터를 연결한 상태에서 몇 가지 쿼리를 실행하고 Lake Formation에서 권한이 어떻게 적용되는지 확인합니다.

  1. Athena 콘솔에 https://console.aws.amazon.com/athena/사용자로 로그인합니다. DataAnalystUS

  2. 다음 쿼리를 실행하여 몇 개의 레코드를 검색합니다. 레코드는 정의된 행 수준 권한에 따라 필터링됩니다.

    SELECT * FROM lakeformation_tutorial_row_security.amazon_reviews LIMIT 10

    다음 스크릿샷은 쿼리 결과를 보여줍니다.

    Query results showing 10 rows of Amazon product reviews data, including marketplace, ratings, and product titles.
  3. 마찬가지로 쿼리를 실행하여 Marketplace당 총 레코드 수를 계산합니다.

    SELECT marketplace , count ( * ) as total_count FROM lakeformation_tutorial_row_security .amazon_reviews GROUP BY marketplace

    쿼리 결과에는 marketplace US만 표시됩니다. 사용자는 marketplace 열 값이 US인 행만 볼 수 있기 때문입니다.

  4. DataAnalystJP 사용자로 전환하여 동일한 쿼리를 실행합니다.

    SELECT * FROM lakeformation_tutorial_row_security.amazon_reviews LIMIT 10

    쿼리 결과에는 JP marketplace에 속한 레코드만 표시됩니다.

  5. 쿼리를 실행하여 marketplace당 총 레코드 수를 계산합니다.

    SELECT marketplace, count(*) as total_count FROM lakeformation_tutorial_row_security.amazon_reviews GROUP BY marketplace

    쿼리 결과에는 JP marketplace에 속한 행만 표시됩니다.

5단계: 리소스 정리 AWS

리소스 정리

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