审核 AWS Glue Studio 用户需要 IAM 权限 - AWS Glue

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

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

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

AWS Glue 服务权限

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

重要

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

为 AWS Glue Studio 创建自定义 IAM policy

您可以为 AWS Glue Studio 创建一个包含较小权限集的自定义策略。该策略可以为对象或操作子集授予权限。创建自定义策略时,请使用以下信息。

要使用 AWS Glue Studio API,请在 IAM 权限的操作策略中包括 glue:UseGlueStudio。使用 glue:UseGlueStudio 将允许您访问所有 AWS Glue Studio,即使随着时间的推移向 API 中添加了更多操作。

有向非循环图 (DAG) 操作

  • CreateDag

  • UpdateDag

  • GetDag

  • DeleteDag

任务操作

  • SaveJob

  • GetJob

  • CreateJob

  • DeleteJob

  • GetJobs

  • UpdateJob

任务运行操作

  • StartJobRun

  • GetJobRuns

  • BatchStopJobRun

  • GetJobRun

  • QueryJobRuns

  • QueryJobs

  • *QueryJobRunsAggregated

架构操作

  • GetSchema

  • *GetInferredSchema

数据库操作

  • GetDatabases

计划操作

  • GetPlan

表操作

  • SearchTables

  • GetTables

  • GetTable

连接操作

  • CreateConnection

  • DeleteConnection

  • UpdateConnection

  • GetConnections

  • GetConnection

映射操作

  • GetMapping

S3 代理操作

  • ListBuckets

  • ListObjectsV2

  • GetBucketLocation

安全配置操作

  • GetSecurityConfigurations

脚本操作

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

访问 AWS Glue Studio API

要访问 AWS Glue Studio,请在 IAM 权限的操作策略列表中添加 glue:UseGlueStudio

在以下示例中,glue:UseGlueStudio 已包括在操作策略中,但 AWS Glue Studio API 不是单独识别的。这是因为当您包括 glue:UseGlueStudio 时,系统将会向您自动授予访问内部 API 的权限,而无需在 IAM 权限中指定单个 AWS Glue Studio API。

在该示例中,列出的其他操作策略(例如,glue:SearchTables)并非 AWS Glue Studio API,因此,需要根据需要将它们包含在 IAM 权限中。此外,您可能还希望包括 Amazon S3 代理操作,以指定要授予的 Amazon S3 访问权限级别。以下示例策略提供对开放 AWS Glue Studio、创建可视化任务及保存/运行任务(如果选定 IAM 角色具有足够权限)的访问权限。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor0", "Effect": "Allow", "Action": [ "glue:UseGlueStudio", "iam:ListRoles", "iam:ListUsers", "iam:ListGroups", "iam:ListRolePolicies", "iam:GetRole", "iam:GetRolePolicy", "glue:SearchTables", "glue:GetConnections", "glue:GetJobs", "glue:GetTables", "glue:BatchStopJobRun", "glue:GetSecurityConfigurations", "glue:DeleteJob", "glue:GetDatabases", "glue:CreateConnection", "glue:GetSchema", "glue:GetTable", "glue:GetMapping", "glue:CreateJob", "glue:DeleteConnection", "glue:CreateScript", "glue:UpdateConnection", "glue:GetConnection", "glue:StartJobRun", "glue:GetJobRun", "glue:UpdateJob", "glue:GetPlan", "glue:GetJobRuns", "glue:GetTags", "glue:GetJob", "glue:QueryJobRuns", "glue:QueryJobs", "glue:QueryJobRunsAggregated" ], "Resource": "*" }, { "Action": [ "iam:PassRole" ], "Effect": "Allow", "Resource": "arn:aws:iam::*:role/AWSGlueServiceRole*", "Condition": { "StringLike": { "iam:PassedToService": [ "glue.amazonaws.com" ] } } } ] }

笔记本和数据预览权限

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

要确保数据预览和笔记本命令正常工作,请使用名称开头为字符串 AWSGlueServiceRole 的角色。如果选择为角色使用其他名称,则必须在 IAM 中为角色添加 iam:passrole 权限并配置策略。有关更多信息,请参阅 为未命名为“AWSGlueServiceRole*”的角色创建 IAM policy

警告

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

如果您想拒绝 IAM 身份创建数据预览会话,请参阅以下示例 拒绝某个身份创建数据预览会话

Amazon CloudWatch 权限

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

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

  • AdministratorAccess 策略

  • CloudWatchFullAccess 策略

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

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

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

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

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