

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

# AWS CloudTrail 소스에서 데이터 레이크 생성
<a name="getting-started-cloudtrail-tutorial"></a>

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

**데이터 레이크 생성을 위한 개략적인 단계**

1. Amazon Simple Storage Service(S3) 경로를 데이터 레이크로 등록합니다.

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

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

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

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

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

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

**Topics**
+ [대상 독자](#cloudtrail-tut-personas)
+ [사전 조건](#cloudtrail-tut-prereqs)
+ [1단계: 데이터 분석가 사용자 생성](#cloudtrail-tut-create-lf-user)
+ [2단계: 워크플로 역할에 AWS CloudTrail 로그를 읽을 수 있는 권한 추가](#cloudtrail-tut-grant-cloudtrail)
+ [3단계: 데이터 레이크에 대한 Amazon S3 버킷 생성](#cloudtrail-tut-create-bucket)
+ [4단계: Amazon S3 경로 등록](#cloudtrail-tut-register)
+ [5단계: 데이터 위치 권한 부여](#cloudtrail-tut-data-location)
+ [6단계: 데이터 카탈로그에서 데이터베이스 생성](#cloudtrail-tut-create-db)
+ [7단계: 데이터 권한 부여](#cloudtrail-tut-data-permissions)
+ [8단계: 청사진을사용하여 워크플로 생성](#cloudtrail-tut-create-workflow)
+ [9단계: 워크플로 실행](#cloudtrail-tut-run-workflow)
+ [10단계: 테이블에 대한 SELECT 권한 부여](#cloudtrail-tut-grant-table)
+ [11단계:를 사용하여 데이터 레이크 쿼리 Amazon Athena](#cloudtrail-tut-query)

## 대상 독자
<a name="cloudtrail-tut-personas"></a>

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


**대상 독자**  

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

## 사전 조건
<a name="cloudtrail-tut-prereqs"></a>

시작하기 전:
+ [설정 AWS Lake Formation](initial-lf-config.md)의 작업을 완료했는지 확인합니다.
+ CloudTrail 로그의 위치를 파악합니다.
+ Athena는 데이터 분석가 페르소나가 Athena를 사용하기 전에 쿼리 결과를 저장할 Amazon S3 버킷을 생성하도록 요구합니다.

 AWS Identity and Access Management (IAM)에 대한 지식이 있다고 가정합니다. IAM에 대한 자세한 내용은 [IAM 사용 설명서](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction.html)를 참조하세요.

## 1단계: 데이터 분석가 사용자 생성
<a name="cloudtrail-tut-create-lf-user"></a>

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

1. [https://console.aws.amazon.com/iam](https://console.aws.amazon.com/iam)에서 IAM 콘솔을 엽니다. 에서 생성한 관리자 사용자 또는 `AdministratorAccess` AWS 관리형 정책을 사용하는 사용자[관리자 액세스 권한이 있는 사용자 생성](getting-started-setup.md#create-an-admin)로 로그인합니다.

1. 다음 설정을 사용하여 `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 로그를 읽을 수 있는 권한 추가
<a name="cloudtrail-tut-grant-cloudtrail"></a>

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

   `LakeFormationWorkflowRole` 역할을 생성하려면 [(선택 사항) 워크플로에 대한 IAM 역할 생성](initial-lf-config.md#iam-create-blueprint-role) 단원을 참조하십시오.
**중요**  
*<your-s3-cloudtrail-bucket>*을 CloudTrail 데이터의 Amazon S3 위치로 바꾸십시오.

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Action": "s3:GetObject",
               "Resource": ["arn:aws:s3:::<your-s3-cloudtrail-bucket>/*"]
           }
       ]
   }
   ```

------

1. 세 개의 정책이 역할에 연결되어 있는지 확인합니다.

## 3단계: 데이터 레이크에 대한 Amazon S3 버킷 생성
<a name="cloudtrail-tut-create-bucket"></a>

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

1. [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/)에서 Amazon S3 콘솔을 열고 [관리자 액세스 권한이 있는 사용자 생성](getting-started-setup.md#create-an-admin)에서 생성한 관리자 사용자로 로그인합니다.

1. **버킷 생성**을 선택하고 마법사를 통해 `<yourName>-datalake-cloudtrail`이라는 버킷을 생성합니다. 여기서 *<yourName>*은 이름의 첫 번째 이니셜과 성입니다. 예를 들어 `jdoe-datalake-cloudtrail`입니다.

   Amazon S3 버킷 생성에 대한 자세한 지침은 [버킷 생성](https://docs.aws.amazon.com/AmazonS3/latest/user-guide/create-bucket.html)을 참조하세요.

## 4단계: Amazon S3 경로 등록
<a name="cloudtrail-tut-register"></a>

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

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

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

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

1. 이전에 생성한 `<yourName>-datalake-cloudtrail` 버킷을 선택하고 기본 IAM 역할 `AWSServiceRoleForLakeFormationDataAccess`를 수락한 다음 **위치 등록**을 선택합니다.

   위치 등록에 대한 자세한 내용은 [데이터 레이크에 Amazon S3 위치 추가](register-data-lake.md) 섹션을 참조하세요.

## 5단계: 데이터 위치 권한 부여
<a name="cloudtrail-tut-data-location"></a>

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

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

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

   1. **IAM 사용자 및 역할**에 대해 `LakeFormationWorkflowRole`을 선택합니다.

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

1. **권한 부여**를 선택합니다.

데이터 위치 권한에 대한 자세한 내용은 [Underlying data access control](access-control-underlying-data.md#data-location-permissions) 섹션을 참조하세요.

## 6단계: 데이터 카탈로그에서 데이터베이스 생성
<a name="cloudtrail-tut-create-db"></a>

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

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

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

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

## 7단계: 데이터 권한 부여
<a name="cloudtrail-tut-data-permissions"></a>

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

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

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

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

   1. **보안 주체**에서 **IAM 사용자 및 역할**에 대해 `LakeFormationWorkflowRole`을 선택합니다.

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

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

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

1. **권한 부여**를 선택합니다.

Lake Formation 권한 부여에 대한 자세한 내용은 [Lake Formation 권한 관리](managing-permissions.md) 섹션을 참조하세요.

## 8단계: 청사진을사용하여 워크플로 생성
<a name="cloudtrail-tut-create-workflow"></a>

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

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

1. Lake Formation 콘솔의 탐색 창에 있는 **수집**에서 **블루프린트**를 선택한 다음 **블루프린트 사용**을 선택합니다.

1. **청사진 사용** 페이지의 **청사진 유형**에서 **AWS CloudTrail**을 선택합니다.

1. **소스 가져오기**에서 CloudTrail 소스 및 시작 날짜를 선택합니다.

1. **대상 가져오기**에서 다음 파라미터를 지정합니다.    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/lake-formation/latest/dg/getting-started-cloudtrail-tutorial.html)

1. 가져오기 빈도에 대해서는 **온디맨드 실행**을 선택합니다.

1. **가져오기 옵션**에서 다음 파라미터를 지정합니다.    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/lake-formation/latest/dg/getting-started-cloudtrail-tutorial.html)

1. **생성**을 선택하고 콘솔에서 워크플로가 성공적으로 생성되었음을 보고할 때까지 기다립니다.
**작은 정보**  
다음과 같은 오류 메시지가 표시되나요?  
`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단계: 워크플로 실행
<a name="cloudtrail-tut-run-workflow"></a>

워크플로가 온디맨드 실행되도록 지정했으므로 워크플로를 수동으로 시작해야 합니다.
+ **청사진** 페이지에서 `lakeformationcloudtrailtest` 워크플로를 선택하고 **작업** 메뉴에서 **시작**을 선택합니다.

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

  상태가 **실행 중**에서 **검색 중**, **가져오는 중**, **완료됨**으로 바뀝니다.

  워크플로가 완료되면:
  + 데이터 카탈로그에 새 메타데이터 테이블이 포함됩니다.
  + CloudTrail 로그가 데이터 레이크에 수집됩니다.

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

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

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

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

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

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

## 10단계: 테이블에 대한 SELECT 권한 부여
<a name="cloudtrail-tut-grant-table"></a>

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

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

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

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

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

   1. **보안 주체**에서 **IAM 사용자 및 역할**에 대해 `datalake_user`을 선택합니다.

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

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

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

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

1. **권한 부여**를 선택합니다.

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

## 11단계:를 사용하여 데이터 레이크 쿼리 Amazon Athena
<a name="cloudtrail-tut-query"></a>

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

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

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

1. **데이터 소스**에 대해 **AwsDataCatalog**를 선택합니다.

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

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

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

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

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

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