

# 열 통계 생성을 위한 사전 요구 사항
<a name="column-stats-prereqs"></a>

열 통계를 생성하거나 업데이트하기 위해 통계 생성 작업은 사용자를 대신하여 AWS Identity and Access Management(IAM) 역할을 수임합니다. 역할에 부여된 권한에 따라 열 통계 생성 작업은 Amazon S3 데이터 스토어에서 데이터를 읽을 수 있습니다.

열 통계 생성 작업을 구성하면 AWS Glue에서 `AWSGlueServiceRole` AWS 관리형 정책과 지정된 데이터 소스에 대한 필수 인라인 정책을 포함하는 역할 생성을 허용합니다.

열 통계 생성에 대한 기존 역할을 지정하는 경우 `AWSGlueServiceRole` 정책 또는 이에 상응하는 것(또는 이 정책의 범위가 축소된 버전)과 필수 인라인 정책이 포함되어 있는지 확인합니다. 새 IAM 역할을 생성하려면 다음 단계를 수행합니다.

**참고**  
 Lake Formation에서 관리하는 테이블에 대한 통계를 생성하려면 통계 생성에 사용되는 IAM 역할에 전체 테이블 액세스 권한이 필요합니다.

열 통계 생성 작업을 구성하면 AWS Glue에서 `AWSGlueServiceRole` AWS 관리형 정책과 지정된 데이터 소스에 대한 필수 인라인 정책을 포함하는 역할 생성을 허용합니다. 역할을 생성하고 아래 정책에 나열된 권한에 연결한 후 열 통계 생성 작업에 추가할 수도 있습니다.

**열 통계 생성을 위한 IAM 역할을 생성하는 방법**

1. IAM 역할을 생성하려면 [AWS Glue의 IAM 역할 생성](https://docs.aws.amazon.com/glue/latest/dg/create-an-iam-role.html)을 참조하십시오.

1. 기존 역할을 업데이트하려면 IAM 콘솔에서 열 통계 생성 프로세스에 사용되는 IAM 역할로 이동합니다.

1. **권한 추가** 탭에서 **정책 연결**을 선택합니다. 새로 열린 브라우저 창에서 `AWSGlueServiceRole` AWS 관리형 정책을 선택합니다.

1. Amazon S3 데이터 위치에서 데이터를 읽을 수 있는 권한도 포함해야 합니다.

   **권한 추가** 섹션에서 **정책 생성**을 선택합니다. 새로 열린 브라우저 창에서 역할에 사용할 새 정책을 생성합니다.

1. **정책 생성** 페이지에서 **JSON** 탭을 선택합니다. 다음 `JSON` 코드를 정책 편집기 필드에 복사합니다.
**참고**  
다음 정책에서는 계정 ID를 유효한 AWS 계정로 바꾸고, `region`을 테이블의 리전으로, `bucket-name`을 Amazon S3 버킷 이름으로 바꿉니다.

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

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Sid": "S3BucketAccess",
               "Effect": "Allow",
               "Action": [
                   "s3:ListBucket",
                   "s3:GetObject"
               ],
               "Resource": [
               	"arn:aws:s3:::amzn-s3-demo-bucket/*",
   							"arn:aws:s3:::amzn-s3-demo-bucket"
               ]
           }
        ]
   }
   ```

------

1. (선택 사항) Lake Formation 권한을 사용하여 데이터에 대한 액세스를 제공하는 경우 IAM 역할에 `lakeformation:GetDataAccess` 권한이 필요합니다.

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

****  

   ```
   {
     "Version":"2012-10-17",		 	 	 
     "Statement": [
       {
         "Sid": "LakeFormationDataAccess",
         "Effect": "Allow",
         "Action": "lakeformation:GetDataAccess",
         "Resource": [
           "*"
         ]
       }
     ]
   }
   ```

------

    Amazon S3 데이터 위치가 Lake Formation에 등록되어 있고 열 통계 생성 작업이 맡는 IAM 역할에 테이블에 대한 `IAM_ALLOWED_PRINCIPALS` 그룹 권한이 부여되지 않은 경우, 이 역할에는 Lake Formation `ALTER`와 테이블에 대한 `DESCRIBE` 권한이 필요합니다. Amazon S3 버킷을 등록하는 데 사용되는 역할에는 테이블에 대한 Lake Formation `INSERT` 및 `DELETE` 권한이 필요합니다.

   Amazon S3 데이터 위치가 Lake Formation에 등록되지 않았고 IAM 역할에 테이블에 대한 `IAM_ALLOWED_PRINCIPALS` 그룹 권한이 부여되지 않은 경우, 해당 역할에는 테이블에 대한 Lake Formation `ALTER`, `DESCRIBE`, `INSERT`, `DELETE` 권한이 필요합니다.

1. 카탈로그 수준 `Automatic statistics generation` 옵션을 활성화한 경우 IAM 역할에는 기본 Data Catalog에 대한 `glue:UpdateCatalog` 권한 또는 Lake Formation `ALTER CATALOG` 권한이 있어야 합니다. `GetCatalog` 작업을 사용하여 카탈로그 속성을 확인할 수 있습니다.

1. (선택 사항) 암호화된 Amazon CloudWatch Logs을 기록하는 열 통계 생성 작업에는 키 정책 내 다음 권한이 있어야 합니다.

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

****  

   ```
   {
     "Version":"2012-10-17",		 	 	 
     "Statement": [
       {
         "Sid": "CWLogsKmsPermissions",
         "Effect": "Allow",
         "Action": [
           "logs:CreateLogGroup",
           "logs:CreateLogStream",
           "logs:PutLogEvents",
           "logs:AssociateKmsKey"
         ],
         "Resource": [
           "arn:aws:logs:us-east-1:111122223333:log-group:/aws-glue:*"
         ]
       },
       {
         "Sid": "KmsPermissions",
         "Effect": "Allow",
         "Action": [
           "kms:GenerateDataKey",
           "kms:Decrypt",
           "kms:Encrypt"
         ],
         "Resource": [
           "arn:aws:kms:us-east-1:111122223333:key/arn of key used for ETL cloudwatch encryption"
         ],
         "Condition": {
           "StringEquals": {
             "kms:ViaService": [
               "glue.us-east-1.amazonaws.com"
             ]
           }
         }
       }
     ]
   }
   ```

------

1. 열 통계를 실행하는 데 사용하는 역할에는 해당 역할에 대한 `iam:PassRole` 권한이 있어야 합니다.

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

****  

   ```
   {
     "Version":"2012-10-17",		 	 	 
     "Statement": [
       {
         "Effect": "Allow",
         "Action": [
           "iam:PassRole"
         ],
         "Resource": [
           "arn:aws:iam::111122223333:role/columnstats-role-name"
         ]
       }
     ]
   }
   ```

------

1. 열 통계 생성을 위한 IAM 역할을 생성할 때 해당 역할에는 서비스가 역할을 수임할 수 있도록 하는 다음과 같은 신뢰 정책도 포함되어야 합니다.

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

****  

   ```
   {
     "Version":"2012-10-17",		 	 	 
     "Statement": [
       {
         "Sid": "TrustPolicy",
         "Effect": "Allow",
         "Principal": {
           "Service": "glue.amazonaws.com"
         },
         "Action": "sts:AssumeRole"
       }
     ]
   }
   ```

------