对 Amazon Glue Studio 进行设置 - Amazon Glue Studio
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

对 Amazon Glue Studio 进行设置

如果您首次使用 Amazon Glue Studio,请完成本部分中的任务:

完成初始 Amazon 配置任务

要使用 Amazon Glue Studio,必须首先完成以下任务:

注册Amazon

如果您还没有 Amazon Web Services 账户,请完成以下步骤创建一个。

注册 Amazon Web Services 账户

  1. 打开 https://portal.aws.amazon.com/billing/signup

  2. 按照屏幕上的说明进行操作。

    在注册时,您将接到一通电话,要求您使用电话键盘输入一个验证码。

创建 IAM 管理员用户

如果您的账户中已包含具有完整Amazon管理权限的 IAM 用户,则可以跳过此部分。

自行创建管理员用户并将该用户添加到管理员组 (控制台)

  1. 选择根用户并输入您的 Amazon Web Services 账户 电子邮件地址,以账户拥有者身份登录 IAM 控制台。在下一页上,输入您的密码。

    注意

    强烈建议您遵守以下使用 Administrator IAM 用户的最佳实践,妥善保存根用户凭证。只在执行少数账户和服务管理任务时才作为根用户登录。

  2. 在导航窗格中,选择用户,然后选择添加用户

  3. 对于用户名,输入 Administrator

  4. 选中 Amazon Web Services Management Console 访问旁边的复选框。然后选择自定义密码,并在文本框中输入新密码。

  5. (可选)预设情况下,Amazon 要求新用户在首次登录时创建新密码。您可以清除用户必须在下次登录时创建新密码旁边的复选框以允许新用户在登录后重置其密码。

  6. 选择下一步: 权限

  7. 设置权限下,选择将用户添加到组

  8. 选择创建组

  9. 创建组对话框中,对于组名称,输入 Administrators

  10. 选择筛选策略,然后选择 Amazon 托管的工作职能以筛选表内容。

  11. 在策略列表中,选中 AdministratorAccess 的复选框。然后选择创建组

    注意

    您必须先激活 IAM 用户和角色对账单的访问权限,然后才能使用 AdministratorAccess 权限访问 Amazon Billing and Cost Management 控制台。为此,请按照“向账单控制台委派访问权限”教程第 1 步中的说明进行操作。

  12. 返回到组列表中,选中您的新组所对应的复选框。如有必要,选择刷新以在列表中查看该组。

  13. 选择下一步: 标签

  14. (可选) 通过以键值对的形式附加标签来向用户添加元数据。有关在 IAM 中使用标签的更多信息,请参阅 IAM 用户指南中的标记 IAM 实体

  15. 选择下一步:审核以查看要添加到新用户的组成员资格的列表。如果您已准备好继续,请选择创建用户

您可使用这一相同的流程创建更多组和用户,并允许您的用户访问 Amazon Web Services 账户 资源。要了解有关使用策略限制用户对特定 Amazon 资源的权限的信息,请参阅访问管理示例策略

作为 IAM 用户登录

通过选择 IAM user (IAM 用户) 并输入您的Amazon Web Services 账户 ID 或账户别名来登录 IAM 控制台。在下一页上,输入您的 IAM 用户名和密码。

注意

为方便起见,Amazon登录页面使用浏览器 Cookie 记住您的 IAM 用户名和账户信息。如果您之前以其他用户身份登录过,请选择此按钮下面的登录链接,返回登录主页。在此处,您可以输入要重新导向到您账户 IAM 用户登录页面的 Amazon Web Services 账户 ID 或账户别名。

审核 Amazon Glue Studio 用户需要 IAM 权限

要使用 Amazon Glue Studio,用户必须有权访问各种 Amazon 资源。用户必须能够查看和选择 Amazon S3 存储桶、IAM 策略和角色,以及 Amazon Glue Data Catalog 对象。

Amazon Glue 服务权限

Amazon Glue Studio 使用 Amazon Glue 服务的操作和资源。您的用户需要这些操作和资源的权限,从而有效使用 Amazon Glue Studio。您可以授予 Amazon Glue Studio 用户 AWSGlueConsoleFullAccess 托管式策略,或创建具有较小权限集的自定义策略。

重要

根据安全性最佳实践,建议通过收紧策略来限制访问,从而进一步限制对 Amazon S3 存储桶和 Amazon CloudWatch 日志组的访问。有关示例 Amazon S3 策略,请参阅编写 IAM 策略:如何授予对 Amazon S3 存储桶的访问权限

为 Amazon Glue Studio 创建自定义 IAM 策略

您可以为 Amazon Glue Studio 创建一个包含较小权限集的自定义策略。该策略可以为对象或操作子集授予权限。创建自定义策略时,请使用以下信息。带有星号 (*) 的任务表示仅适用于 Amazon Glue Studio 且在 Amazon Glue 中不存在的 API。

任务操作

  • GetJob

  • CreateJob

  • DeleteJob

  • GetJobs

  • UpdateJob

  • *QueryJobs

  • *SaveJob

有向非循环图 (DAG) 操作

  • *CreateDag

  • *UpdateDag

  • *GetDag

  • *DeleteDag

数据库操作

  • GetDatabases

计划操作

  • GetPlan

任务运行操作

  • StartJobRun

  • GetJobRuns

  • BatchStopJobRun

  • GetJobRun

  • *QueryJobRuns

  • *QueryJobRunsAggregated

架构操作

  • *GetSchema

  • *GetInferredSchema

表操作

  • SearchTables

  • GetTables

  • GetTable

连接操作

  • 添加注释 -CreateConnections

  • DeleteConnection

  • UpdateConnection

  • GetConnections

  • GetConnection

文件操作

  • GetFile

映射操作

  • GetMapping

添加注释任务计划操作

  • *GetNextScheduledJobs

存储库操作

  • *ListRepositories

分支操作

  • *ListBranches

  • *GetBranches

提交操作

  • *CreateCommit

  • *GetCommit

S3 代理操作

  • *ListBuckets

  • *ListObjectsV2

  • *GetBucketLocation

添加注释计划操作

  • *CreateSchedule

  • *GetSchedule

  • *DeleteSchedule

安全配置操作

  • GetSecurityConfigurations

脚本操作

  • CreateScript(不同于 Amazon Glue 中的同名 API)

笔记本和数据预览权限

数据预览和笔记本允许您在任务的任何阶段(读取、转换、写入)查看数据样本,而无需运行任务。您可以为 Amazon Glue Studio 指定访问数据时要使用的 Amazon Identity and Access Management (IAM) 角色。IAM 角色可代入,没有关联的标准长期凭证(如密码或访问密钥)。相反,当 Amazon Glue Studio 代入角色时,IAM 会为其提供临时安全凭证。

要确保数据预览和笔记本命令正常工作,请使用名称开头为字符串 AWSGlueServiceRole 的角色。如果选择为角色使用其他名称,则必须在 IAM 中为角色添加 iam:passrole 权限并配置角色信任策略。将 Amazon Glue 服务作为主体添加到此信任策略中,如 为未命名为“AWSGlueServiceRole*”的角色创建信任策略 中所述。

警告

如果角色为笔记本授予 iam:passrole 权限,并且您实施了角色链接,则用户可能会无意中获得访问笔记本的权限。目前没有实施审计,因此不允许您监控哪些用户已被授予访问笔记本的权限。

Amazon CloudWatch 权限

您可以使用 Amazon CloudWatch 来监控 Amazon Glue Studio 任务,此工具可从 Amazon Glue 收集原始数据,并将数据处理为可读的近实时指标。默认情况下,Amazon Glue 指标数据自动发送到 CloudWatch。有关更多信息,请参阅《Amazon CloudWatch 用户指南》中的什么是 Amazon CloudWatch?和《Amazon Glue 开发人员指南》中的 Amazon Glue 指标

要访问 CloudWatch 控制面板,则访问 Amazon Glue Studio 的用户需要以下内容之一:

  • AdministratorAccess 策略

  • CloudWatchFullAccess 策略

  • 包含以下一个或多个特定权限的自定义策略:

    • cloudwatch:GetDashboardcloudwatch:ListDashboards,以查看控制面板

    • cloudwatch:PutDashboard,以创建或修改控制面板

    • cloudwatch:DeleteDashboards,以删除控制面板

有关使用策略更改 IAM 用户权限的更多信息,请参阅《IAM 用户指南》中的更改 IAM 用户的权限

审核 ETL 任务所需的 IAM 权限

当您使用 Amazon Glue Studio 创建任务时,该任务代入您在创建它时指定的 IAM 角色的权限。此 IAM 角色必须有权限从您的数据源中提取数据,将其写入您的目标,并访问 Amazon Glue 资源。

为任务创建的角色的名称必须以字符串 AWSGlueServiceRole 开头,以便其能够正确地被 Amazon Glue Studio 使用。例如,您可以将角色命名为 AWSGlueServiceRole-FlightDataJob

数据源和数据目标权限

Amazon Glue Studio 任务必须具有您在任务中使用的任何源、目标、脚本和临时目录等 Amazon S3 的访问权限。您可以创建策略,提供对特定 Amazon S3 资源的精细访问权限。

  • 数据源需要 s3:ListBuckets3:GetObject 权限。

  • 数据目标需要s3:ListBuckets3:PutObjects3:DeleteObject 权限。

如果选择 Amazon Redshift 作为数据源,那么您可以为集群权限提供角色。针对 Amazon Redshift 集群运行的任务会发出命令,使用临时凭证访问 Amazon S3 进行临时存储。如果您的任务运行超过一小时,这些凭证将会过期,导致任务失败。若要避免此问题,您可以将角色分配给 Amazon Redshift 集群本身,其授予使用临时凭证的任务所需的权限。有关更多信息,请参阅《Amazon Glue 开发人员指南》中的将数据移入和移出 Amazon Redshift

如果任务使用 Amazon S3 以外的数据源或目标,则您必须为任务使用的 IAM 角色附上所需的权限,从而访问这些数据源和目标。有关更多信息,请参阅《Amazon Glue 开发人员指南》中的设置环境以访问数据存储

如果要为数据存储使用连接器和连接,则您需要在使用连接器所需的权限中描述的其他权限。

删除任务所需的权限

在 Amazon Glue Studio 中,您可以在控制台选择多个任务删除。若要执行此操作,您必须具有 glue:BatchDeleteJob 权限。这不同于需要 glue:DeleteJob 权限来删除任务的 Amazon Glue 控制台。

Amazon Key Management Service 权限

如果您计划访问使用 Amazon Key Management Service(Amazon KMS)进行服务器端加密的 Amazon S3 源和目标,则需为任务使用的 Amazon Glue Studio 角色附上策略,从而使任务能够解密数据。任务角色需要 kms:ReEncryptkms:GenerateDataKeykms:DescribeKey 权限。此外,任务角色需要 kms:Decrypt 权限来上载或下载使用 Amazon KMS 客户主密钥(CMK)加密的 Amazon S3 对象。

使用 Amazon KMS CMK 需支付额外费用。有关更多信息,请参阅《Amazon Key Management Service 开发人员指南》中的 Amazon Key Management Service 概念 – 客户主密钥(CMK)Amazon Key Management Service 定价

使用连接器所需的权限

如果您使用 Amazon Glue 自定义连接器和连接来访问数据存储,则需要为用于运行 Amazon Glue ETL 任务的角色附上其他权限:

  • 亚马逊云科技托管式策略 AmazonEC2ContainerRegistryReadOnly,用于访问购买于 Amazon Web Services Marketplace 的连接器。

  • glue:GetJobglue:GetJobs 权限。

  • Amazon Secrets Manager 权限,用于访问与连接一起使用的密钥。请参阅 Amazon Secrets Manager 中的 IAM 密钥策略示例了解示例 IAM 策略。

如果您的 Amazon Glue ETL 任务在运行 Amazon VPC 的 VPC 中运行,则 VPC 必须按照为 ETL 任务配置 VPC中的描述进行配置。

为 Amazon Glue Studio 设置 IAM 权限

您可以通过使用 Amazon 管理员用户,创建角色并将策略分配给用户和任务角色。

您可以使用 AWSGlueConsoleFullAccess Amazon 托管式策略提供使用 Amazon Glue Studio 控制台所需的权限。

要创建您自己的策略,请按照《Amazon Glue 开发人员指南》中的为 Amazon Glue 服务创建 IAM 策略记录的步骤进行操作。包括前面在 审核 Amazon Glue Studio 用户需要 IAM 权限 中描述的 IAM 权限。

创建 IAM 角色

Amazon Glue Studio 需要权限才能代表您访问其他服务。您可以创建 IAM 角色并为该角色分配策略来提供这些权限。您可以在创建任务、使用笔记本编辑器或使用数据预览时指定此角色。Amazon Glue Studio 或者您的 ETL 任务将代入此角色,获得访问其他服务和数据位置的临时权限。

您需要向您的 IAM 角色授予在 Amazon Glue Studio 和 Amazon Glue 代表您调用其他服务时可使用的权限。这包括访问 Amazon S3 以存储脚本和临时文件,以及用于 Amazon Glue Studio 的任何其他源或目标的权限。

要为 ETL 任务创建角色

  1. 登录 Amazon Web Services Management Console,然后通过以下网址打开 IAM 控制台:https://console.aws.amazon.com/iam/

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

  3. 选择 Create role (创建角色)

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

  5. Attach permissions policy(附加权限策略)页面上,选择包含所需权限的策略。例如,您可能选择 Amazon 托管式策略 AWSGlueServiceRole 作为常规的 Amazon Glue Studio 和 Amazon Glue 权限,选择 Amazon 托管式策略 AmazonS3FullAccess 作为访问 Amazon S3 资源的权限。

  6. 根据需要为其他数据存储或服务添加其他策略。

  7. 请选择下一步:审核

  8. 对于 Role name (角色名称),输入您角色的名称,例如 AWSGlueServiceRole-Studio。选择以字符串 AWSGlueServiceRole 开头的名称,可允许将角色从控制台用户传递到服务。

    如果为角色选择其他名称,则您必须添加一个为您的用户授予对 IAM 角色的 iam:PassRole 权限的策略,以匹配您的命名约定。

    选择 Create role(创建角色)完成角色的创建。

将策略附加至 Amazon Glue Studio 用户

登录 Amazon Glue Studio 控制台的任何 Amazon 用户都必须具有访问特定资源的权限。您可使用向用户分配 IAM 策略来提供这些权限。

向用户附加 AWSGlueConsoleFullAccess 托管策略

  1. 登录 Amazon Web Services Management Console,然后通过以下网址打开 IAM 控制台:https://console.aws.amazon.com/iam/

  2. 在导航窗格中,选择 Policies (策略)

  3. 在策略列表中,选中 AWSGlueConsoleFullAccess 旁边的复选框。您可以使用 Filter 菜单和搜索框来筛选策略列表。

  4. 选择 Policy actions(策略操作),然后选择 Attach(附加)

  5. 选择要将策略附加到的用户。您可以使用 Filter(筛选条件)菜单和搜索框来筛选委托人实体列表。在选择要将策略附加到的用户后,选择 Attach policy (附加策略)。

  6. 根据需要,重复前面的步骤向用户附上其他策略。

为未命名为“AWSGlueServiceRole*”的角色创建信任策略

要为 Amazon Glue Studio 所使用的角色配置角色信任策略

  1. 登录 Amazon Web Services Management Console,然后通过以下网址打开 IAM 控制台:https://console.aws.amazon.com/iam/

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

  3. 找到用于数据预览或 ETL 任务的角色,然后选择角色名称。

  4. 选择 Trust Relationships (信任关系) 选项卡,然后选择 Edit trust relationship (编辑信任关系) 按钮。

  5. 将以下数据块复制并粘贴到“Statement”(语句)阵列下面的策略中。

    { "Action": ["iam:PassRole"], "Effect": "Allow", "Resource": "arn:aws:iam::*:role/AWSGlueServiceRole*", "Condition": { "StringLike": { "iam:PassedToService": ["glue.amazonaws.com"] } } }, { "Effect": "Allow", "Principal": { "Service": ["glue.amazonaws.com"] }, "Action": "sts:AssumeRole" }

    以下是策略中包含的版本和语句阵列的完整示例

    { "Version": "2012-10-17", "Statement": [ { "Action": ["iam:PassRole"], "Effect": "Allow", "Resource": "arn:aws:iam::*:role/AWSGlueServiceRole*", "Condition": { "StringLike": { "iam:PassedToService": ["glue.amazonaws.com"] } } }, { "Effect": "Allow", "Principal": { "Service": ["glue.amazonaws.com"] }, "Action": "sts:AssumeRole" } ] }
    • 选择 Update Trust Policy(更新信任策略)以完成配置。

为 ETL 任务配置 VPC

您可以使用 Amazon Virtual Private Cloud (Amazon VPC) 在 Amazon 云内您自己的逻辑隔离区域中定义虚拟网络,我们称之为 Virtual Private Cloud (VPC)。可在 VPC 中启动实例等 Amazon 资源。您的 VPC 与您可能在自己的数据中心中运行的传统网络极为相似,同时享有使用来自 Amazon 的可扩展基础设施的优势。您可以配置您的 VPC;您可以选择它的 IP 地址范围、创建子网并配置路由表、网关和安全设置。您可以将您的 VPC 中的实例连接到网络。您可以将您的 VPC 连接到公司的数据中心,并将 Amazon 云作为数据中心的延伸。要保护各个子网中的资源,您可以利用多种安全层,包括安全组和网络访问控制列表。有关更多信息,请参阅《Amazon VPC 用户指南》

使用连接器时,您可以配置您的 Amazon Glue ETL 任务,使其在 VPC 内运行。您必须根据需要为以下内容配置 VPC:

  • 不在 Amazon 中的数据存储的公有网络访问。必须能够从 VPC 子网使用任务访问的所有数据存储。

  • 如果您的任务既要访问 VPC 资源又要访问公有 Internet,VPC 内部必须具有网络地址转换(NAT)网关。

    有关更多信息,请参阅《Amazon Glue 开发人员指南》中的设置环境以访问数据存储

填充 Amazon Glue 数据目录

Amazon Glue Studio 可以使用 中定义的数据集。Amazon Glue Data Catalog这些数据集用作 Amazon Glue Studio 中 ETL 工作流的源和目标。如果为数据源或目标选择数据目录,则在创建任务之前,必须存在与数据源或数据目标相关的数据目录表。

当从数据源读取或写入数据源时,ETL 任务需要了解数据的架构。ETL 任务可以从 Amazon Glue Data Catalog 的表中获取信息。您可以使用爬网程序、Amazon Glue 控制台、Amazon CLI,或 Amazon CloudFormation 模板文件将数据库和表添加到数据目录中。有关填充数据目录的更多信息,请参阅《Amazon Glue Glue 开发人员指南》中的数据目录

如果使用连接器,您可以在配置 Amazon Glue Studio 中 ETL 任务的数据源节点时,使用架构生成器输入架构信息。有关更多信息,请参阅 使用自定义连接器编写任务

对于某些数据源,Amazon Glue Studio 可以自动推断其从指定位置的文件中读取的数据架构。