AWS CloudTrail 소스에서 데이터 레이크 생성 - AWS Lake Formation

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

AWS CloudTrail 소스에서 데이터 레이크 생성

이 자습서는 Lake Formation 콘솔에서 AWS CloudTrail 소스에서 첫 번째 데이터 레이크를 생성하고 로드하기 위해 수행할 작업을 안내합니다.

데이터 레이크 생성을 위한 개략적인 단계
  1. Amazon Simple Storage Service(S3) 경로를 데이터 레이크로 등록합니다.

  2. 데이터 카탈로그 및 데이터 레이크의 Amazon S3 위치에 쓸 수 있는 권한을 Lake Formation에 부여합니다.

  3. 데이터 카탈로그에서 메타데이터 테이블을 구성하기 위해 데이터베이스를 생성합니다.

  4. 청사진을 사용하여 워크플로를 생성합니다. 워크플로를 실행하여 데이터 소스에서 데이터를 수집합니다.

  5. 다른 사람이 데이터 카탈로그 및 데이터 레이크의 데이터를 관리할 수 있도록 Lake Formation 권한을 설정합니다.

  6. Amazon S3 데이터 레이크로 가져온 데이터를 쿼리하도록 Amazon Athena를 설정합니다.

  7. 일부 데이터 스토어 유형의 경우, Amazon S3 데이터 레이크로 가져온 데이터를 쿼리하도록 Amazon Redshift Spectrum을 설정합니다.

수강 대상

다음 테이블에는 이 자습서에서 데이터 레이크를 생성하는 데 사용되는 역할이 나열되어 있습니다.

수강 대상
역할 설명
IAM관리자 AWS 관리형 정책 보유:AdministratorAccess. IAM역할 및 Amazon S3 버킷을 생성할 수 있습니다.
데이터 레이크 관리자 데이터 카탈로그에 액세스하고, 데이터베이스를 생성하고, Lake Formation 권한을 다른 사용자에게 부여할 수 있는 사용자입니다. IAM관리자보다 IAM 권한이 적지만 데이터 레이크를 관리할 수 있는 권한은 충분합니다.
데이터 분석가 데이터 레이크에 대해 쿼리를 실행할 수 있는 사용자입니다. 쿼리를 실행할 수 있는 권한만 있습니다.
워크플로 역할 워크플로를 실행하는 데 필요한 IAM 정책이 포함된 역할 자세한 내용은 (선택 사항) 워크플로를 위한 IAM 역할 생성 단원을 참조하십시오.

사전 조건

시작하기 전:

  • 설정 AWS Lake Formation의 작업을 완료했는지 확인합니다.

  • CloudTrail 로그의 위치를 알아두세요.

  • Athena는 데이터 분석가 페르소나가 Athena를 사용하기 전에 쿼리 결과를 저장할 Amazon S3 버킷을 생성하도록 요구합니다.

AWS Identity and Access Management (IAM) 에 익숙하다고 가정합니다. 에 대한 IAM 자세한 내용은 IAM사용 설명서를 참조하십시오.

1단계: 데이터 분석가 사용자 생성

이 사용자는 데이터 레이크를 쿼리할 수 있는 최소 권한 세트를 보유합니다.

  1. IAM에서 https://console.aws.amazon.com/iam 콘솔을 엽니다. 에서 생성한 관리자 사용자 관리자 액세스 권한이 있는 사용자 생성 또는 AdministratorAccess AWS 관리형 정책을 사용하는 사용자로 로그인합니다.

  2. 다음 설정을 사용하여 datalake_user라는 사용자를 생성합니다.

    • AWS Management Console 액세스를 활성화합니다.

    • 암호를 설정합니다. 암호 재설정은 필요하지 않습니다.

    • AmazonAthenaFullAccess AWS 관리형 정책을 연결합니다.

    • 다음 인라인 정책을 연결합니다. 정책 이름을 DatalakeUserBasic로 지정합니다.

      { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "lakeformation:GetDataAccess", "glue:GetTable", "glue:GetTables", "glue:SearchTables", "glue:GetDatabase", "glue:GetDatabases", "glue:GetPartitions", "lakeformation:GetResourceLFTags", "lakeformation:ListLFTags", "lakeformation:GetLFTag", "lakeformation:SearchTablesByLFTags", "lakeformation:SearchDatabasesByLFTags" ], "Resource": "*" } ] }

2단계: 워크플로우 역할에 AWS CloudTrail 로그를 읽을 수 있는 권한 추가

  1. 다음 인라인 정책을 LakeFormationWorkflowRole 역할에 연결합니다. 정책은 AWS CloudTrail 로그를 읽을 권한을 부여합니다. 정책 이름을 DatalakeGetCloudTrail로 지정합니다.

    LakeFormationWorkflowRole 역할을 생성하려면 (선택 사항) 워크플로를 위한 IAM 역할 생성 단원을 참조하십시오.

    중요

    Replace <your-s3-cloudtrail-bucket> Amazon S3 위치의 CloudTrail 데이터를 사용합니다.

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "s3:GetObject", "Resource": ["arn:aws:s3:::<your-s3-cloudtrail-bucket>/*"] } ] }
  2. 세 개의 정책이 역할에 연결되어 있는지 확인합니다.

3단계: 데이터 레이크에 대한 Amazon S3 버킷 생성

데이터 레이크의 루트 위치가 될 Amazon S3 버킷을 생성합니다.

  1. 에서 https://console.aws.amazon.com/s3/Amazon S3 콘솔을 열고 생성한 관리자 사용자로 관리자 액세스 권한이 있는 사용자 생성 로그인합니다.

  2. Create bucket (버킷 생성) 을 선택하고 마법사를 통해 이름이 지정된 <yourName>-datalake-cloudtrail 버킷을 생성합니다.<yourName> 첫 번째 이니셜이자 성입니다. 예: jdoe-datalake-cloudtrail.

    Amazon S3 버킷 생성에 대한 자세한 지침은 버킷 생성을 참조하세요.

4단계: Amazon S3 경로 등록

Amazon S3 경로를 데이터 레이크의 루트 위치로 등록합니다.

  1. 에서 Lake Formation 콘솔을 엽니다 https://console.aws.amazon.com/lakeformation/. 데이터 레이크 관리자로 로그인합니다.

  2. 탐색 창의 등록 및 수집에서 데이터 레이크 위치를 선택합니다.

  3. 위치 등록을 선택한 다음 찾아보기를 선택합니다.

  4. 이전에 생성한 <yourName>-datalake-cloudtrail 버킷을 선택하고 기본 IAM 역할을 AWSServiceRoleForLakeFormationDataAccess 수락한 다음 [Register location] 을 선택합니다.

    위치 등록에 대한 자세한 내용은 데이터 레이크에 Amazon S3 위치 추가 섹션을 참조하세요.

5단계: 데이터 위치 권한 부여

보안 주체는 데이터 레이크 위치에 대한 데이터 위치 권한이 있어야 해당 위치를 가리키는 데이터 카탈로그 테이블 또는 데이터베이스를 생성할 수 있습니다. 워크플로가 데이터 통합 대상에 쓸 수 있도록 워크플로의 IAM 역할에 데이터 위치 권한을 부여해야 합니다.

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

  2. 권한 부여를 선택하고 권한 부여 대화 상자에서 다음과 같이 선택합니다.

    1. IAM사용자 및 역할의 경우 선택하십시오. LakeFormationWorkflowRole

    2. 스토리지 위치에 대해 <yourName>-datalake-cloudtrail 버킷을 선택합니다.

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

데이터 위치 권한에 대한 자세한 내용은 Underlying data access control 섹션을 참조하세요.

6단계: 데이터 카탈로그에서 데이터베이스 생성

Lake Formation 데이터 카탈로그의 메타데이터 테이블은 데이터베이스 내에 저장됩니다.

  1. 탐색 창의 데이터 카탈로그에서 데이터베이스를 선택합니다.

  2. 데이터베이스 생성을 선택하고 데이터베이스 세부 정보에서 이름 lakeformation_cloudtrail을 입력합니다.

  3. 다른 필드는 비워 두고 데이터베이스 생성을 선택합니다.

7단계: 데이터 권한 부여

데이터 카탈로그에서 메타데이터 테이블을 생성하려면 권한을 부여해야 합니다. 워크플로는 LakeFormationWorkflowRole 역할로 실행되므로 해당 역할에 이러한 권한을 부여해야 합니다.

  1. Lake Formation 콘솔 탐색 창의 데이터 카탈로그에서 데이터베이스를 선택합니다.

  2. lakeformation_cloudtrail 데이터베이스를 선택한 다음 작업 드롭다운 목록의 권한 머리글 아래에서 권한 부여를 선택합니다.

  3. 데이터 권한 부여 대화 상자에서 다음과 같이 선택합니다.

    1. [주체] 에서 [IAM사용자 및 역할] 을 선택합니다. LakeFormationWorkflowRole

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

    3. 데이터베이스의 경우 lakeformation_cloudtrail 데이터베이스가 이미 추가된 것을 확인할 수 있습니다.

    4. 데이터베이스 권한에서 테이블 생성, 변경삭제를 선택하고 슈퍼 옵션이 선택되어 있으면 선택을 취소합니다.

    이제 데이터 권한 부여 대화 상자가 이 스크린샷처럼 보일 것입니다.

    데이터 권한 부여 대화 상자에는 텍스트에 설명된 선택 항목이 표시됩니다. 대화 상자는 보안 주체, LF 태그 또는 카탈로그 리소스, 데이터베이스 권한의 세로로 배열된 3개의 섹션으로 나뉩니다.
  4. 권한 부여를 선택합니다.

Lake Formation 권한 부여에 대한 자세한 내용은 Lake Formation 권한 관리 섹션을 참조하세요.

8단계: 청사진을사용하여 워크플로 생성

CloudTrail 로그를 읽고, 구조를 이해하고, 데이터 카탈로그에 적절한 테이블을 만들려면 AWS Glue 크롤러, 작업, 트리거 및 워크플로로 구성된 워크플로를 설정해야 합니다. Lake Formation의 청사진은 이 프로세스를 단순화합니다.

워크플로는 작업, 크롤러 및 데이터를 검색하고 데이터 레이크로 데이터를 수집하는 트리거를 생성합니다. 사전 정의된 Lake Formation 청사진 중 하나를 기반으로 워크플로를 생성합니다.

  1. Lake Formation 콘솔의 탐색 창에서 청사진을 선택한 다음 청사진 사용을 선택합니다.

  2. 블루프린트 사용 페이지의 블루프린트 유형에서 선택하세요. AWS CloudTrail

  3. 소스 임포트에서 CloudTrail 소스와 시작 날짜를 선택합니다.

  4. 대상 가져오기에서 다음 파라미터를 지정합니다.

    대상 데이터베이스 lakeformation_cloudtrail
    대상 스토리지 위치 s3://<yourName>-datalake-cloudtrail
    데이터 형식 PARQUET
  5. 가져오기 빈도에 대해서는 온디맨드 실행을 선택합니다.

  6. 가져오기 옵션에서 다음 파라미터를 지정합니다.

    워크플로 이름 lakeformationcloudtrailtest
    IAM역할 LakeFormationWorkflowRole
    테이블 접두사 cloudtrailtest
    참고

    소문자여야 합니다.

  7. 생성을 선택하고 콘솔에서 워크플로가 성공적으로 생성되었음을 보고할 때까지 기다립니다.

    작은 정보

    다음과 같은 오류 메시지가 표시되나요?

    User: arn:aws:iam::<account-id>:user/<datalake_administrator_user> is not authorized to perform: iam:PassRole on resource:arn:aws:iam::<account-id>:role/LakeFormationWorkflowRole...

    그렇다면 교체했는지 확인하세요.<account-id> 유효한 AWS 계정 번호가 있는 데이터 레이크 관리자 사용자에 대한 인라인 정책에서

9단계: 워크플로 실행

워크플로를 로 지정했으므로 워크플로를 수동으로 시작해야 합니다. run-on-demand

  • 청사진 페이지에서 lakeformationcloudtrailtest 워크플로를 선택하고 작업 메뉴에서 시작을 선택합니다.

    워크플로가 실행되면 마지막 실행 상태 열에서 진행 상황을 볼 수 있습니다. 가끔 새로 고침 버튼을 선택합니다.

    상태는 에서 검색 중 RUNNING, 가져오기, 로 이동합니다. COMPLETED

    워크플로가 완료되면:

    • 데이터 카탈로그에 새 메타데이터 테이블이 포함됩니다.

    • CloudTrail 로그는 데이터 레이크에 인제스트됩니다.

    워크플로가 실패하면 다음을 수행합니다.

    1. 워크플로를 선택하고 작업 메뉴에서 그래프 보기를 선택합니다.

      워크플로가 AWS Glue 콘솔에서 열립니다.

    2. 워크플로가 선택되어 있는지 확인하고 [기록(History)] 탭을 선택합니다.

    3. 기록에서 가장 최근 실행을 선택하고 실행 세부 정보 보기를 선택합니다.

    4. 동적(런타임) 그래프에서 실패한 작업이나 크롤러를 선택하고 오류 메시지를 검토합니다. 장애가 발생한 노드는 빨간색 또는 노란색입니다.

10단계: SELECT 테이블에 권한 부여

데이터 분석가가 테이블이 가리키는 데이터를 쿼리할 수 있도록 새 데이터 카탈로그 테이블에 대한 SELECT 권한을 부여해야 합니다.

참고

워크플로는 워크플로에서 생성된 테이블에 대한 SELECT 권한을 해당 워크플로를 실행한 사용자에게 자동으로 부여합니다. 데이터 레이크 관리자가 이 워크플로를 실행했으므로 데이터 분석가에게 SELECT 권한을 부여해야 합니다.

  1. Lake Formation 콘솔 탐색 창의 데이터 카탈로그에서 데이터베이스를 선택합니다.

  2. lakeformation_cloudtrail 데이터베이스를 선택한 다음 작업 드롭다운 목록의 권한 머리글 아래에서 권한 부여를 선택합니다.

  3. 데이터 권한 부여 대화 상자에서 다음과 같이 선택합니다.

    1. [주체] 에서 IAM사용자 및 역할을 선택합니다. datalake_user

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

    3. 데이터베이스의 경우 lakeformation_cloudtrail 데이터베이스가 이미 선택되어 있어야 합니다.

    4. 테이블에 대해 cloudtrailtest-cloudtrail을 선택합니다.

    5. 테이블 및 열 권한에서 선택을 선택합니다.

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

다음 단계는 데이터 분석가로서 수행됩니다.

11단계: Amazon Athena를 사용하여 데이터 레이크 쿼리

Amazon Athena 콘솔을 사용하여 데이터 레이크의 CloudTrail 데이터를 쿼리할 수 있습니다.

  1. 에서 https://console.aws.amazon.com/athena/Athena 콘솔을 열고 데이터 분석가인 사용자로 로그인합니다. datalake_user

  2. 필요한 경우 시작하기를 선택하여 Athena 쿼리 편집기로 계속 진행합니다.

  3. Data source(데이터 원본)AwsDataCatalog을 선택합니다.

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

    테이블 목록이 채워집니다.

  5. cloudtrailtest-cloudtrail 테이블 옆에 있는 오버플로 메뉴(3개의 점이 가로로 정렬됨)에서 테이블 미리 보기를 선택한 다음 실행을 선택합니다.

    쿼리가 실행되고 10개의 데이터 행이 표시됩니다.

    이전에 Athena를 사용해 본 적이 없다면 먼저 Athena 콘솔에서 쿼리 결과를 저장할 Amazon S3 위치를 구성해야 합니다. datalake_user는 선택한 Amazon S3 버킷에 액세스하는 데 필요한 권한을 가지고 있어야 합니다.

참고

자습서를 완료했으므로 이제 조직의 보안 주체에게 데이터 권한 및 데이터 위치 권한을 부여하세요.