本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
若要產生或更新資料欄統計資料,統計資料產生任務會代表您擔任 AWS Identity and Access Management (IAM) 角色。根據授與角色的權限,資料欄統計資料產生任務可以從 Amazon S3 資料存放區讀取資料。
當您設定資料欄統計資料產生任務時, AWS Glue 可讓您建立包含AWSGlueServiceRole
AWS 受管政策以及指定資料來源所需內嵌政策的角色。
如果您指定現有的角色來產生資料欄統計資料,請確定它包含AWSGlueServiceRole
政策或同等 (或此政策的縮小範圍版本),以及所需的內嵌政策。請依照下列步驟建立新的IAM角色:
注意
若要為 Lake Formation 管理的資料表產生統計資料,用於產生統計資料IAM的角色需要完整資料表存取權。
當您設定資料欄統計資料產生任務時, AWS Glue 可讓您建立包含AWSGlueServiceRole
AWS 受管政策以及指定資料來源所需內嵌政策的角色。您也可以建立角色並連接下列政策中列出的許可,然後將該角色新增至資料欄統計資料產生任務。
建立用於產生資料欄統計資料IAM的角色
-
若要建立IAM角色,請參閱為 建立IAM角色 AWS Glue。
-
若要更新現有角色,請在 IAM主控台中,前往產生資料欄統計資料程序正在使用IAM的角色。
-
在新增權限區段,選擇連接政策。在新開啟的瀏覽器視窗中,選擇
AWSGlueServiceRole
AWS 受管政策。 -
您也需要納入從 Amazon S3 資料位置讀取資料的權限。
在新增權限區段中,選擇建立政策。在新開啟的瀏覽器視窗中,建立要搭配您角色使用的新政策。
-
在建立政策頁面中,選擇 JSON 索引標籤。將下列
JSON
程式碼複製到政策編輯器欄位。注意
在下列政策中,將帳戶 ID 取代為有效 AWS 帳戶,並將 取代
region
為資料表的區域,並將bucket-name
取代為 Amazon S3 儲存貯體名稱。{ "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>
" ] } ] } (選用) 如果您使用 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 FormationALTER
和資料表上的DESCRIBE
許可。用於註冊 Amazon S3 儲存貯體的角色需要資料表中的 Lake FormationINSERT
和DELETE
權限。如果 Amazon S3 資料位置未向 Lake Formation 註冊,且IAM角色沒有在資料表上授予的
IAM_ALLOWED_PRINCIPALS
群組許可,則角色需要資料表上的 Lake FormationALTER
、DESCRIBE
INSERT
和DELETE
許可。-
如果您已啟用目錄層級
Automatic statistics generation
選項,IAM角色必須具有預設 Data Catalog 上的glue:UpdateCatalog
許可或 Lake FormationALTER CATALOG
許可。您可以使用GetCatalog
操作來驗證目錄屬性。 -
(選用) 寫入加密 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"] } } } ] } -
您用來執行資料欄統計資料的角色必須具有角色的
iam:PassRole
許可。{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": [ "iam:PassRole" ], "Resource": [ "arn:aws:iam::
111122223333
:role/<columnstats-role-name>
" ] }] } -
當您建立用於產生資料欄統計資料IAM的角色時,該角色也必須具有下列信任政策,讓服務能夠擔任該角色。
{ "Version": "2012-10-17", "Statement": [ { "Sid": "TrustPolicy", "Effect": "Allow", "Principal": { "Service": "glue.amazonaws.com" }, "Action": "sts:AssumeRole", } ] }