Lake Formation 세분화된 액세스 제어를 사용하여 데이터 레이크 공유 - AWS Lake Formation

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

Lake Formation 세분화된 액세스 제어를 사용하여 데이터 레이크 공유

이 자습서에서는 를 사용하여 여러 을 관리할 때 Lake Formation을 사용하여 데이터 세트를 빠르고 쉽게 공유할 수 AWS 계정 있는 방법에 대한 step-by-step 지침을 제공합니다 AWS Organizations. 세분화된 권한을 정의하여 민감한 데이터에 대한 액세스를 제어합니다.

또한 다음 절차는 계정 A의 데이터 레이크 관리자가 계정 B에 세분화된 액세스 권한을 제공하는 방법과 데이터 관리자 역할을 하는 계정 B의 사용자가 해당 계정의 다른 사용자에게 공유 테이블에 대한 세분화된 액세스 권한을 부여하는 방법도 보여줍니다. 각 계정 내의 데이터 관리자는 각 팀 또는 사업부(LOB)에 자율성을 부여하여 자신의 사용자에게 액세스를 독립적으로 위임할 수 있습니다.

사용 사례에서는 를 사용하여 AWS Organizations 를 관리하고 있다고 가정합니다 AWS 계정. 한 조직 단위(OU1)의 계정 A 사용자는 의 계정 B 사용자에게 액세스 권한을 부여합니다OU2. Organizations를 사용하지 않는 경우(예를 들어 소수의 계정만 있는 경우)에도 동일한 접근 방식을 사용할 수 있습니다. 다음 다이어그램은 데이터 레이크의 데이터 세트에 대한 세분화된 액세스 제어를 보여줍니다. 데이터 레이크는 계정 A에서 사용할 수 있습니다. 계정 A의 데이터 레이크 관리자는 계정 B에 대한 세분화된 액세스를 제공합니다. 또한 이 다이어그램은 계정 B의 사용자가 계정 B의 다른 사용자에게 계정 A 데이터 레이크 테이블에 대한 열 수준 액세스를 제공하는 것도 보여줍니다.

AWS Organization structure with two OUs, showing data lake access and user permissions across accounts.

수강 대상

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

역할 설명
IAM 관리자 AWS 관리형 정책 AdministratorAccess가 있는 사용자.
데이터 레이크 관리자

AWS 관리형 정책이 있는 사용자: 역할에 AWSLakeFormationDataAdmin 연결됨.

데이터 분석가 AWS 관리형 정책이 있는 사용자: AmazonAthenaFullAccess 연결됨.

사전 조건

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

자습서에서는 사용자가 에 익숙하다고 가정합니다IAM. 에 대한 자세한 내용은 IAM 사용 설명서 섹션을 IAM참조하세요.

이 자습서에는 다음 리소스가 필요합니다.
  • 두 개의 조직 단위:

    • OU1 – 계정 A 포함

    • OU2 – 계정 B 포함

  • 계정 A의 Amazon S3 데이터 레이크 위치(버킷)

  • 계정 A의 데이터 레이크 관리자 사용자. Lake Formation 콘솔(https://console.aws.amazon.com/lakeformation/) 또는 Lake Formation 의 PutDataLakeSettings 작업을 사용하여 데이터 레이크 관리자를 생성할 수 있습니다API.

  • 계정 A에 구성된 Lake Formation 및 계정 A의 Lake Formation에 등록된 Amazon S3 데이터 레이크 위치.

  • 다음과 같은 IAM 관리형 정책이 있는 계정 B의 사용자 2명:

    • testuser1 - AWS 관리형 정책이 AWSLakeFormationDataAdmin 연결되어 있습니다.

    • testuser2 - AWS 관리형 정책이 AmazonAthenaFullAccess 연결되어 있습니다.

  • 계정 B의 Lake Formation 데이터베이스에 있는 데이터베이스 testdb

1단계: 다른 계정에 대한 세분화된 액세스 제공

계정 A의 데이터 레이크 관리자가 어떻게 계정 B에 대한 세분화된 액세스를 제공하는지 알아봅니다.

다른 계정에 대한 세분화된 액세스 권한 부여
  1. 데이터 레이크 관리자로 계정 A AWS Management Console https://console.aws.amazon.com/connect/에서 에 로그인합니다.

  2. Lake Formation 콘솔(https://console.aws.amazon.com/lakeformation/)을 열고 시작하기를 선택합니다.

  3. 탐색 창에서 데이터베이스 를 선택합니다.

  4. 데이터베이스 생성을 선택합니다.

  5. 데이터베이스 세부 정보 섹션에서 데이터베이스를 선택합니다.

  6. 이름에 이름을 입력합니다(이 자습서에서는 sampledb01 사용).

  7. 이 데이터베이스의 새 테이블에 대한 IAM 액세스 제어만 사용을 선택하지 않았는지 확인합니다. 이 옵션을 선택하지 않으면 Lake Formation에서 액세스를 제어할 수 있습니다.

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

  9. 데이터베이스 페이지에서 데이터베이스 sampledb01을 선택합니다.

  10. 작업 메뉴에서 권한 부여를 선택합니다.

  11. 권한 부여 섹션에서 외부 계정을 선택합니다.

  12. AWS 계정 ID 또는 AWS 조직 ID에 에 계정 B의 계정 ID를 입력합니다OU2.

  13. 테이블의 경우 계정 B에서 액세스할 테이블을 선택합니다(여기에서는 테이블 acc_a_area 사용). 필요에 따라 테이블 내 열에 대한 액세스 권한을 부여할 수 있습니다(이 게시물의 경우 이 작업을 수행함).

  14. 열 포함에서 계정 B에서 액세스할 열을 선택합니다(이 게시물의 경우 유형, 이름, 식별자에 대한 권한 부여).

  15. 의 경우 열 포함을 선택합니다.

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

  17. 부여 가능한 권한에서 선택을 선택합니다. 계정 B의 관리자 사용자가 계정 B의 다른 사용자에게 권한을 부여하려면 부여 가능한 권한이 필요합니다.

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

  19. 탐색 창에서 테이블을 선택합니다.

  20. 액세스 권한이 있는 AWS 계정 및 AWS 조직에서 하나의 활성 연결을 볼 수 있습니다.

리소스 링크 생성

Amazon Athena와 같은 통합 서비스는 여러 계정의 데이터베이스 또는 테이블에 직접 액세스할 수 없습니다. Athena가 설정된 리소스 링크를 통해 다른 계정의 데이터베이스와 테이블에 액세스할 수 있도록 계정에 리소스 링크를 생성해야 합니다. 계정 B 사용자가 Athena로 해당 데이터를 쿼리할 수 있도록 테이블(acc_a_area)에 대한 리소스 링크를 생성합니다.

  1. 계정 B의 https://console.aws.amazon.com/connect/에서 AWS 콘솔에 로 로그인합니다testuser1.

  2. Lake Formation 콘솔(https://console.aws.amazon.com/lakeformation/)의 탐색 창에서 테이블 을 선택합니다. 계정 A가 액세스 권한을 제공한 테이블이 표시되어야 합니다.

  3. acc_a_area 테이블을 선택합니다.

  4. 작업 메뉴에서 리소스 링크 생성을 선택합니다.

  5. 리소스 링크 이름에 이름(이 자습서에서는 acc_a_area_rl)을 입력합니다.

  6. 데이터베이스에서 데이터베이스(testdb)를 선택합니다.

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

  8. 탐색 창에서 테이블을 선택합니다.

  9. acc_b_area_rl 테이블을 선택합니다.

  10. 작업 메뉴에서 데이터 보기를 선택합니다.

    데이터베이스와 테이블을 볼 수 있는 Athena 콘솔로 리디렉션됩니다.

    이제 테이블에서 쿼리를 실행하여 계정 B에서 testuser1에 액세스 권한이 제공된 열 값을 확인할 수 있습니다.

2단계: 동일한 계정의 사용자에 대한 세분화된 액세스 제공

이 섹션에서는 데이터 관리자 역할을 하는 계정 B의 사용자(testuser1)가 동일한 계정의 다른 사용자(testuser2)에게 공유 테이블 aac_b_area_rl의 열 이름에 대한 세분화된 액세스를 제공하는 방법을 보여줍니다.

동일한 계정의 사용자에게 세분화된 액세스 권한 부여
  1. 계정 B의 https://console.aws.amazon.com/connect/에서 AWS 콘솔에 로 로그인합니다testuser1.

  2. Lake Formation 콘솔 탐색 창에서 테이블을 선택합니다.

    리소스 링크를 통해 테이블에 대한 권한을 부여할 수 있습니다. 이렇게 하려면 테이블 페이지에서 리소스 링크 acc_b_area_rl을 선택하고 작업 메뉴에서 대상에 부여를 선택합니다.

  3. 권한 부여 섹션에서 내 계정을 선택합니다.

  4. IAM 사용자 및 역할의 경우 사용자 를 선택합니다testuser2.

  5. 에서 열 이름을 선택합니다.

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

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

    리소스 링크가 생성되면 리소스 링크를 보고 액세스할 수 있습니다. 계정의 다른 사용자가 리소스 링크에 액세스할 수 있도록 허용하려면 리소스 링크 자체에 대한 권한을 부여해야 합니다. DESCRIBE 또는 DROP 권한을 부여해야 합니다. 테이블 페이지에서 테이블을 다시 선택하고 작업 메뉴에서 권한 부여를 선택합니다.

  8. 권한 부여 섹션에서 내 계정을 선택합니다.

  9. IAM 사용자 및 역할 에서 사용자 를 선택합니다testuser2.

  10. 리소스 링크 권한의 경우 설명을 선택합니다.

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

  12. 계정 B의 AWS 콘솔에 로 로그인합니다testuser2.

    Athena 콘솔(https://console.aws.amazon.com/athena/)에는 데이터베이스와 테이블이 표시됩니다acc_b_area_rl. 이제 테이블에서 쿼리를 실행하여 testuser2가 액세스할 수 있는 열 값을 볼 수 있습니다.