本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
對於存取其他 AWS 資源上資料的任何操作,例如在 Amazon S3 中存取物件, AWS Glue都需要代表您存取資源的許可。您可以使用 AWS Identity and Access Management (IAM) 提供這些許可。
注意
如果您使用 AWS 受管政策 ,則可以略過此步驟AWSGlueServiceRole
。
在本步驟中,您將建立一個類似 AWSGlueServiceRole
的政策。最新版本的 AWSGlueServiceRole
可在 IAM 主控台找到。
為 建立 IAM 政策 AWS Glue
此政策授予部分 Amazon S3 動作的許可,在 AWS Glue 擔任使用此政策的角色時可用於管理其所需的帳戶內資源。此政策指定的部分資源參照 AWS Glue 用於 Amazon S3 儲存貯體、Amazon S3 ETL 指令碼、CloudWatch Logs 和 Amazon EC2 資源的預設名稱。為了簡化,AWS Glue 寫入部分 Amazon S3 物件到您預設字首為 aws-glue-*
之帳戶的儲存貯體內。
登入 AWS Management Console ,並在 https://https://console.aws.amazon.com/iam/
開啟 IAM 主控台。 -
在左側導覽窗格中選擇 Policies (政策)。
-
選擇 Create Policy (建立政策)。
-
在 Create Policy (建立政策) 畫面上導覽至索引標籤,以編輯 JSON。使用下列 JSON 陳述式建立政策文件,然後選擇 Review policy (檢閱政策)。
注意
新增 Amazon S3 資源所需的任何許可。您可能希望將存取政策的資源部分範圍限縮在需要的資源。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "glue:*", "s3:GetBucketLocation", "s3:ListBucket", "s3:ListAllMyBuckets", "s3:GetBucketAcl", "ec2:DescribeVpcEndpoints", "ec2:DescribeRouteTables", "ec2:CreateNetworkInterface", "ec2:DeleteNetworkInterface", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcAttribute", "iam:ListRolePolicies", "iam:GetRole", "iam:GetRolePolicy", "cloudwatch:PutMetricData" ], "Resource": [ "*" ] }, { "Effect": "Allow", "Action": [ "s3:CreateBucket", "s3:PutBucketPublicAccessBlock" ], "Resource": [ "arn:aws:s3:::aws-glue-*" ] }, { "Effect": "Allow", "Action": [ "s3:GetObject", "s3:PutObject", "s3:DeleteObject" ], "Resource": [ "arn:aws:s3:::aws-glue-*/*", "arn:aws:s3:::*/*aws-glue-*/*" ] }, { "Effect": "Allow", "Action": [ "s3:GetObject" ], "Resource": [ "arn:aws:s3:::crawler-public*", "arn:aws:s3:::aws-glue-*" ] }, { "Effect": "Allow", "Action": [ "logs:CreateLogGroup", "logs:CreateLogStream", "logs:PutLogEvents", "logs:AssociateKmsKey" ], "Resource": [ "arn:aws:logs:*:*:log-group:/aws-glue/*" ] }, { "Effect": "Allow", "Action": [ "ec2:CreateTags", "ec2:DeleteTags" ], "Condition": { "ForAllValues:StringEquals": { "aws:TagKeys": [ "aws-glue-service-resource" ] } }, "Resource": [ "arn:aws:ec2:*:*:network-interface/*", "arn:aws:ec2:*:*:security-group/*", "arn:aws:ec2:*:*:instance/*" ] } ] }
下表說明此政策授予的許可。
Action Resource Description "glue:*"
"*"
授予執行所有 AWS Glue API 操作的許可。
"s3:GetBucketLocation", "s3:ListBucket", "s3:ListAllMyBuckets", "s3:GetBucketAcl",
"*"
允許列出爬蟲程式、任務、開發端點和筆記本伺服器的 Amazon S3 儲存貯體。
"ec2:DescribeVpcEndpoints", "ec2:DescribeRouteTables", "ec2:CreateNetworkInterface", "ec2:DeleteNetworkInterface", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcAttribute",
"*"
允許執行任務、爬蟲程式和開發端點時設定 Amazon EC2 網路項目,例如 Virtual Private Cloud (VPC)。
"iam:ListRolePolicies", "iam:GetRole", "iam:GetRolePolicy"
"*"
允許列出爬蟲程式、工作、開發端點和筆記本伺服器的 IAM 角色。
"cloudwatch:PutMetricData"
"*"
允許寫入任務的 CloudWatch 指標。
"s3:CreateBucket", "s3:PutBucketPublicAccessBlock"
"arn:aws:s3:::aws-glue-*"
允許從工作和筆記本伺服器在您的帳戶中建立 Amazon S3 儲存貯體。
命名慣例:使用名為 aws-glue- 的 Amazon S3 資料夾。
讓 AWS Glue 建立封鎖公開存取的儲存貯體。
"s3:GetObject", "s3:PutObject", "s3:DeleteObject"
"arn:aws:s3:::aws-glue-*/*", "arn:aws:s3:::*/*aws-glue-*/*"
允許存放 ETL 指令碼和筆記本伺服器位置等物件時在您的帳戶中取得、放入和刪除 Amazon S3 物件。
命名慣例:授予許可至名稱字首為 aws-glue- 的 Amazon S3 儲存貯體或資料夾。
"s3:GetObject"
"arn:aws:s3:::crawler-public*", "arn:aws:s3:::aws-glue-*"
允許從爬蟲程式和任務取得範例和教學所用的 Amazon S3 物件。
命名慣例:名稱開頭為 crawler-public 和 aws-glue- 的 Amazon S3 儲存貯體。
"logs:CreateLogGroup", "logs:CreateLogStream", "logs:PutLogEvents"
"arn:aws:logs:*:*:log-group:/aws-glue/*"
允許將日誌寫入至 CloudWatch Logs。
命名慣例:AWS Glue 寫入日誌到名稱開頭為 aws-glue 的日誌群組。
"ec2:CreateTags", "ec2:DeleteTags"
"arn:aws:ec2:*:*:network-interface/*", "arn:aws:ec2:*:*:security-group/*", "arn:aws:ec2:*:*:instance/*"
允許標記專為開發端點建立的 Amazon EC2 資源。
命名慣例:AWS Glue 會在 Amazon EC2 網路介面、安全群組和執行個體加上 aws-glue-service-resource 標籤。
-
在 Review Policy (檢閱政策) 畫面上,輸入 Policy Name (政策名稱),例如 GlueServiceRolePolicy。輸入選用的說明,當您對政策滿意時,即可選擇 Create policy (建立政策)。