產生資料欄統計資料的先決條件 - AWS Glue

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

產生資料欄統計資料的先決條件

若要產生或更新資料欄統計資料,統計資料產生任務會代表您擔任 AWS Identity and Access Management (IAM) 角色。根據授與角色的權限,資料欄統計資料產生任務可以從 Amazon S3 資料存放區讀取資料。

注意

若要針對由 Lake Formation 管理的資料表產生統計資料,則用於產生統計資料的 IAM 角色需要取得完整資料表存取權。

當您設定欄統計資料產生工作時, AWS Glue 可讓您建立包含AWSGlueServiceRole AWS 受管理原則的角色,以及指定資料來源所需的內嵌原則。您也可以建立角色並附加下列原則中列出的權限,並將該角色新增至資料行統計資料產生工作。

建立產生資料欄統計資料的 IAM 角色
  1. 若要建立 IAM 角色,請參閱建立 AWS Glue IAM 角色

  2. 若要更新現有角色,請在 IAM 主控台中,前往產生資料欄統計資料程序正在使用的 IAM 角色。

  3. 新增權限區段,選擇連接政策。在新開啟的瀏覽器視窗中,選擇AWSGlueServiceRole AWS 受管理的策略。

  4. 您也需要納入從 Amazon S3 資料位置讀取資料的權限。

    新增權限區段中,選擇建立政策。在新開啟的瀏覽器視窗中,建立要搭配您角色使用的新政策。

  5. 建立政策頁面中,選擇 JSON 索引標籤。將下列 JSON 程式碼複製到政策編輯器欄位。

    注意

    在下列政策中,請將帳戶 ID 取代為有效的帳戶 ID AWS 帳戶,並以表格的區域和 bucket-name Amazon S3 儲存貯體名稱取region代。

    { "Version": "2012-10-17", "Statement": [ { "Sid": "S3BucketAccess", "Effect": "Allow", "Action": [ "s3:ListBucket", "s3:GetObject" ], "Resource": [ "arn:aws:s3:::<bucket-name>/*", "arn:aws:s3:::<bucket-name>" ] } ] }
  6. (選用) 如果您正在使用 Lake Formation 權限向資料提供存取權,則 IAM 角色需要 lakeformation:GetDataAccess 權限。

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

    如果 Amazon S3 資料位置已向 Lake Formation 註冊,且資料欄統計資料產生任務擔任的 IAM 角色沒有授予資料表的 IAM_ALLOWED_PRINCIPALS 群組權限,則該角色需要資料表中的 Lake Formation ALTERDESCRIBE 權限。用於註冊 Amazon S3 儲存貯體的角色需要資料表中的 Lake Formation INSERTDELETE 權限。

    如果 Amazon S3 資料位置已向 Lake Formation 註冊,且 IAM 角色沒有授予資料表的 IAM_ALLOWED_PRINCIPALS 群組權限,則該角色需要資料表中的 Lake Formation ALTERDESCRIBEINSERTDELETE 權限。

  7. (選用) 寫入加密 Amazon CloudWatch Logs 的資料欄統計資料產生任務,需要金鑰政策中的下列權限。

    { "Version": "2012-10-17", "Statement": [{ "Sid": "CWLogsKmsPermissions", "Effect": "Allow", "Action": [ "logs:CreateLogGroup", "logs:CreateLogStream", "logs:PutLogEvents", "logs:AssociateKmsKey" ], "Resource": [ "arn:aws:logs:<region>:111122223333:log-group:/aws-glue:*" ] }, { "Sid": "KmsPermissions", "Effect": "Allow", "Action": [ "kms:GenerateDataKey", "kms:Decrypt", "kms:Encrypt" ], "Resource": [ "arn:aws:kms:<region>:111122223333:key/"arn of key used for ETL cloudwatch encryption" ], "Condition": { "StringEquals": { "kms:ViaService": ["glue.<region>.amazonaws.com"] } } } ] }
  8. 您用來執行資料行統計資料的角色必須具有角色的iam:PassRole權限。

    { "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": [ "iam:PassRole" ], "Resource": [ "arn:aws:iam::111122223333:role/<columnstats-role-name>" ] }] }
  9. 建立用於產生資料欄統計資料的 IAM 角色時,該角色也必須具有下列信任政策,使服務可以擔任該角色。

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