步骤 2:为 AWS Glue 创建 IAM 角色 - AWS Glue

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

步骤 2:为 AWS Glue 创建 IAM 角色

您需要向您的 IAM 角色授予在 AWS Glue 代表您调用其他服务时可使用的权限。这包括对 Amazon S3 的访问权限,针对用于 AWS Glue 的任何源、目标、脚本和临时目录。爬网程序、任务和开发终端节点需要权限。

您通过使用 AWS Identity and Access Management(IAM)提供这些权限。请向您传递到 AWS Glue 的 IAM 角色添加一个策略。

为 AWS Glue 创建 IAM 角色
  1. 登录 AWS Management Console,然后通过以下网址打开 IAM 控制台:https://console.aws.amazon.com/iam/

  2. 在左侧导航窗格中,选择 Roles (角色)

  3. 选择创建角色

  4. 对于角色类型,选择 AWS Service (亚马逊云科技服务),找到并选择 Glue,然后选择 Next: Permissions (下一步: 权限)

  5. Attach permissions policy (附加权限策略) 页面上,选择包含所需权限的策略;例如,适用于一般 AWS Glue 权限的 AWS 托管式策略 AWSGlueServiceRole 和适用于对 Amazon S3 资源的访问权限的 AWS 托管式策略 AmazonS3FullAccess。然后选择 Next: Review

    注意

    请确保此角色中的策略之一授予针对您的 Amazon S3 源和目标的权限。您可能想要提供您自己的策略来访问特定 Amazon S3 资源。数据源需要 s3:ListBuckets3:GetObject 权限。数据目标需要s3:ListBuckets3:PutObjects3:DeleteObject 权限。有关为您的资源创建 Amazon S3 策略的更多信息,请参阅在策略中指定资源。有关示例 Amazon S3 策略,请参阅编写 IAM policy:如何授予对 Amazon S3 存储桶的访问权限

    如果您计划访问使用 SSE-KMS 加密的 Amazon S3 资源和目标,请附加一个允许 AWS Glue 爬网程序、任务和开发终端节点解密数据的策略。有关更多信息,请参阅使用具有 AWS KMS 托管式密钥的服务器端加密(SSE-KMS)保护数据

    以下是示例。

    { "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Action":[ "kms:Decrypt" ], "Resource":[ "arn:aws:kms:*:account-id-without-hyphens:key/key-id" ] } ] }
  6. 对于 Role name (角色名称),输入您角色的名称,例如 AWSGlueServiceRoleDefault。使用以字符串 AWSGlueServiceRole 为前缀的名称创建角色,以允许角色从控制台用户传递到服务。AWS Glue 提供了要求 IAM 服务角色以 AWSGlueServiceRole 开头的策略。否则,您必须添加一个为您的用户授予对 IAM 角色的 iam:PassRole 权限的策略,以匹配您的命名约定。请选择 Create Role(创建角色)。

    注意

    当您创建具有角色的笔记本时,该角色将传递至交互式会话,以便同一角色可以在两个位置使用。因此,iam:PassRole 权限需要成为角色策略的一部分。

    使用以下示例为您的角色创建新策略。将账号替换为您的账号,并将角色名称替换为您的角色名称。

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "iam:PassRole", "Resource": "arn:aws:iam::090000000210:role/<role_name>" } ] }