步骤 1:为 AWS Glue 服务创建 IAM 策略 - AWS Glue
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

如果我们为英文版本指南提供翻译,那么如果存在任何冲突,将以英文版本指南为准。在提供翻译时使用机器翻译。

步骤 1:为 AWS Glue 服务创建 IAM 策略

对于访问其他 AWS 资源上的数据的任何操作(例如访问您在 Amazon S3 中的对象),AWS Glue 需要代表您访问该资源的权限。您可使用 AWS Identity and Access Management (IAM) 提供这些权限。

注意

如果您使用了 AWS 托管策略 AWSGlueServiceRole,则可跳过此步骤。

在此步骤中,您将创建一个类似于 AWSGlueServiceRole 的策略。您可以在 IAM 控制台中找到最新版本的 AWSGlueServiceRole

为 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 管理控制台 并通过以下网址打开 IAM 控制台 https://console.amazonaws.cn/iam/

  2. 在左侧导航窗格中,选择 Policies

  3. 选择 Create Policy

  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" ], "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:*:*:/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/*" ] } ] }

    下表描述了此策略授予的权限。

    操作 资源 描述

    "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"

    "arn:aws:s3:::aws-glue-*"

    允许从任务和笔记本服务器在您的账户中创建 Amazon S3 存储桶。

    命名约定:使用名为 aws-glue- 的 Amazon S3 文件夹。

    "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 对象。

    命名约定:Amazon S3 存储桶名称以 crawler-publicaws-glue- 开头。

    "logs:CreateLogGroup", "logs:CreateLogStream", "logs:PutLogEvents"

    "arn:aws:logs:*:*:/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 使用 aws-glue-service-resource 标记 Amazon EC2 网络接口、安全组和实例。

  5. Review Policy (查看策略) 屏幕上,输入您的 Policy Name (策略名称),例如 GlueServiceRolePolicy。输入可选描述,然后在您对该策略满意时选择 Create policy (创建策略)