

# 审核 AWS Glue Studio 用户需要 IAM 权限
<a name="getting-started-min-privs"></a>

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

## AWS Glue 服务权限
<a name="getting-started-min-privs-glue"></a>

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

**重要**  
根据安全性最佳实践，建议通过收紧策略来限制访问，从而进一步限制对 Amazon S3 存储桶和 Amazon CloudWatch 日志组的访问。有关示例 Amazon S3 策略，请参阅[编写 IAM policy：如何授予对 Amazon S3 存储桶的访问权限](https://aws.amazon.com/blogs/security/writing-iam-policies-how-to-grant-access-to-an-amazon-s3-bucket/)。

## 为 AWS Glue Studio 创建自定义 IAM policy
<a name="getting-started-all-gs-privs"></a>

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

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

 有关 AWS Glue 定义的操作的更多信息，请参阅 [ Actions defined by AWS Glue](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsglue.html)。

 **数据准备创作操作** 
+ SendRecipeAction
+ GetRecipeAction

 **有向非循环图 (DAG) 操作** 
+ CreateDag
+ UpdateDag
+ GetDag
+ DeleteDag

 **任务操作** 
+ SaveJob
+ GetJob
+ CreateJob
+ DeleteJob
+ GetJobs
+ UpdateJob

 **任务运行操作** 
+ StartJobRun
+ GetJobRuns
+ BatchStopJobRun
+ GetJobRun
+ QueryJobRuns
+ QueryJobs
+ \$1QueryJobRunsAggregated

 **架构操作** 
+ GetSchema
+ \$1GetInferredSchema

 **数据库操作** 
+ GetDatabases

 **计划操作** 
+ GetPlan

 **表操作** 
+ SearchTables
+ GetTables
+ GetTable

 **连接操作** 
+ CreateConnection
+ DeleteConnection
+ UpdateConnection
+ GetConnections
+ GetConnection

 **映射操作** 
+ GetMapping

 **S3 代理操作**
+ ListBuckets
+ ListObjectsV2
+ GetBucketLocation

**安全配置操作**
+ GetSecurityConfigurations 

**脚本操作**
+ CreateScript（不同于 AWS Glue 中的同名 API）

## 访问 AWS Glue Studio API
<a name="getting-started-glue-studio-apis"></a>

 要访问 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 角色具有足够权限）的访问权限。

## 笔记本和数据预览权限
<a name="getting-started-data-preview-perms"></a>

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

要确保数据预览和笔记本命令正常工作，请使用名称开头为字符串 `AWSGlueServiceRole` 的角色。如果选择为角色使用其他名称，则必须在 IAM 中为角色添加 `iam:passrole` 权限并配置策略。有关更多信息，请参阅 [为未命名为“AWSGlueServiceRole\$1”的角色创建 IAM policy](getting-started-iam-permissions.md#create-iam-policy)。

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

如果您想拒绝 IAM 身份创建数据预览会话，请参阅以下示例 [拒绝某个身份创建数据预览会话](security_iam_id-based-policy-examples.md#deny-data-preview-sessions-per-identity)。

## Amazon CloudWatch 权限
<a name="getting-started-min-privs-cloudwatch"></a>

您可以使用 Amazon CloudWatch 来监控 AWS Glue Studio 任务，此工具可从 AWS Glue 收集原始数据，并将数据处理为可读的近实时指标。默认情况下，AWS Glue 指标数据自动发送到 CloudWatch。有关更多信息，请参阅《Amazon CloudWatch 用户指南》**中的[什么是 Amazon CloudWatch？](https://docs.aws.amazon.com/AmazonCloudWatch/latest/DeveloperGuide/WhatIsCloudWatch.html)和《AWS Glue 开发人员指南》**中的 [AWS Glue 指标](https://docs.aws.amazon.com/glue/latest/dg/monitoring-awsglue-with-cloudwatch-metrics.html#awsglue-metrics)。

要访问 CloudWatch 控制面板，则访问 AWS Glue Studio 的用户需要以下内容之一：
+ `AdministratorAccess` 策略
+ `CloudWatchFullAccess` 策略
+ 包含以下一个或多个特定权限的自定义策略：
  + `cloudwatch:GetDashboard` 和 `cloudwatch:ListDashboards`，以查看控制面板
  + `cloudwatch:PutDashboard`，以创建或修改控制面板
  + `cloudwatch:DeleteDashboards`，以删除控制面板

有关使用策略更改 IAM 用户权限的更多信息，请参阅《IAM 用户指南》**中的[更改 IAM 用户的权限](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users_change-permissions.html)。