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

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

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

对于访问另一个AWS资源(例如在 Amazon S3 中访问您的对象),AWS Glue需要代表您访问资源的权限。您通过使用 AWS Identity and Access Management (IAM) 提供这些权限。

注意

如果您使用了AWS管理的策略AWSG 网络管理器.

在此步骤中,您将创建一个类似于 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:*:*:/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", "s3:PutBucketPublicAccessBlock"

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

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

    命名约定:使用名为的 Amazon S3 文件夹-胶水-.

    使用AWS Glue以创建阻止公有访问的存储桶。

    "s3:GetObject", "s3:PutObject", "s3:DeleteObject"

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

    允许在存储 ETL 脚本和笔记本位置等对象时在您的账户中获取、放置和删除 Amazon S3 对象。

    命名约定:向名称以以前缀的 Amazon S3 存储桶或文件夹授予权限。-胶水-.

    "s3:GetObject"

    "arn:aws:s3:::crawler-public*", "arn:aws:s3:::aws-glue-*"

    允许从爬网程序和任务获取示例和教程所使用的 Amazon S3 对象。

    命名约定:Amazon S3 存储桶名称以开头爬网程序-胶水-.

    "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标记 Amazon EC2 网络接口、安全组和实例。AWS 胶水服务资源.

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