

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 產生資料欄統計資料的先決條件
<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"
       }
     ]
   }
   ```

------