步驟 1:建立適用於 AWS Glue 服務的 IAM 政策 - AWS Glue

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

步驟 1:建立適用於 AWS Glue 服務的 IAM 政策

對於存取其他 AWS 資源上的資料的任何操作,例如存取 Amazon S3 中的物件,AWS Glue 需要能代為存取資源的許可。您可用 AWS Identity and Access Management (IAM) 來提供這些許可。

注意

如果您使用 AWS 受管政策 AWSGlueServiceRole,可跳過此步驟。

在本步驟中,您將建立一個類似 AWSGlueServiceRole 的政策。最新版本的 AWSGlueServiceRole 可在 IAM 主控台找到。

建立適用於 AWS Glue 的 IAM 政策

此政策授予部分 Amazon S3 動作的許可,在 AWS Glue 擔任使用此政策的角色時可用於管理其所需的帳戶內資源。此政策指定的部分資源參照 AWS Glue 用於 Amazon S3 儲存貯體、Amazon S3 ETL 指令碼、CloudWatch Logs 和 Amazon EC2 資源的預設名稱。為了簡化,AWS Glue 寫入部分 Amazon S3 物件到您預設字首為 aws-glue-* 之帳戶的儲存貯體內。

  1. 登入 AWS Management Console,並開啟位於 https://console.aws.amazon.com/iam/ 的 IAM 主控台。

  2. 在左側導覽窗格中選擇 Policies (政策)。

  3. 選擇 建立政策

  4. 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-publicaws-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 標籤。

  5. Review Policy (檢閱政策) 畫面上,輸入 Policy Name (政策名稱),例如 GlueServiceRolePolicy。輸入選用的說明,當您對政策滿意時,即可選擇 Create policy (建立政策)