用于访问控制的基于身份的策略(IAM 策略) - Amazon连接词
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

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

用于访问控制的基于身份的策略(IAM 策略)

基于身份的策略会附加到 IAM 身份(用户、组、角色或服务)。此类策略为 IAM 身份授予对指定资源的访问权限。

AmazonGlue 支持所有基于身份的策略(IAM 策略)AmazonGlue 操作。通过将策略附加到账户中的用户或组,可向其授予创建、访问或修改AmazonGlue 资源,例如AmazonGlue 数据目录。

通过将策略附加到 IAM 角色,您可以向其他Amazon账户。有关更多信息,请参阅授予跨账户访问权限

下面是一个基于身份的示例策略,用于授予AmazonGlue 动作 (glue:GetTableGetTablesGetDatabase, 和GetDatabases)。通配符 (*) 中的Resource值表示,您正在对这些操作授予权限,以获取数据目录中的所有表和数据库的名称和详细信息。如果根据资源策略用户还可以访问其他目录,则该用户也会获得对这些资源的访问权限。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "GetTables", "Effect": "Allow", "Action": [ "glue:GetTable", "glue:GetTables", "glue:GetDatabase", "glue:GetDataBases" ], "Resource": "*" } ] }

以下是另一个示例,将us-west-2区域并使用占位符作为特定Amazon账号。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "GetTablesActionOnBooks", "Effect": "Allow", "Action": [ "glue:GetTable", "glue:GetTables" ], "Resource": [ "arn:aws:glue:us-west-2:123456789012:catalog", "arn:aws:glue:us-west-2:123456789012:database/db1", "arn:aws:glue:us-west-2:123456789012:table/db1/books" ] } ] }

此策略授予对名为 db1 的数据库中的名为 books 的表的只读权限。请注意,要授予Get权限,同时需要对目录和数据库资源的这一权限。

要拒绝对表的访问权限,需要您创建一个策略,拒绝用户访问该表或其父数据库或目录。这样您可以轻松地拒绝对特定资源的访问权限,通过后续的允许权限无法规避这些拒绝权限。例如,如果您拒绝对数据库 db1 中的表 books 的访问权限,那么如果您授予对数据库 db1 的访问权限,但仍会拒绝对表 books 的访问权限。下面是一个基于身份的示例策略,用于拒绝AmazonGlue 动作 (glue:GetTablesGetTable) 到数据库db1以及其中的所有表格。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "DenyGetTablesToDb1", "Effect": "Deny", "Action": [ "glue:GetTables", "glue:GetTable" ], "Resource": [ "arn:aws:glue:us-west-2:123456789012:database/db1" ] } ] }

有关更多策略示例,请参阅基于身份的策略示例

带标签的基于身份的策略(IAM 策略)

您还可以控制对特定类型的Amazon使用 Glue 资源Amazon标签。有关标签的更多信息AmazonGlue,请参阅Amazon 标签

您可以在 IAM 用户策略中使用 Condition 元素与 glue:resourceTag 上下文键,根据与爬网程序、作业、触发器和开发终端节点关联的键来允许或拒绝访问。例如:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "glue:*", "Resource": "*", "Condition": { "StringEquals": { "glue:resourceTag/Name": "Tom" } } } ] }
重要

条件上下文键仅应用于Amazon针对爬网程序、任务、触发器和开发终端节点的 Glue 合 API 操作。有关受影响的 API 的更多信息,请参阅AmazonGlue API 权限:操作和资源参考

有关如何使用标签控制访问的信息,请参阅Amazon带标签的基于身份的 (IAM) 访问控制策略示例

资源级权限仅应用于特定AmazonGlue 对象

您只能定义中特定对象的精细控制。AmazonGlue 因此,您必须编写客户端的 IAM 策略,以便允许 Resource 语句的 Amazon 资源名称 (ARN) 的 API 操作与不允许使用 API 的操作不混合。例如,以下 IAM 策略允许 GetClassifierGetJobRun 的 API 操作。它定义Resource作为*由于AmazonGLue 不允许分类符和作业运行的 ARN。由于允许将 ARN 用于 GetDatabaseGetTable 等特定 API 操作,因此,可以在策略的第二部分中指定 ARN。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "glue:GetClassifier*", "glue:GetJobRun*" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "glue:Get*" ], "Resource": [ "arn:aws:glue:us-east-1:123456789012:catalog", "arn:aws:glue:us-east-1:123456789012:database/default", "arn:aws:glue:us-east-1:123456789012:table/default/e*1*", "arn:aws:glue:us-east-1:123456789012:connection/connection2" ] } ] }

有关列表Amazon允许 ARN 的 Glue 合对象,请参阅资源 ARN

使用所需的权限AmazonGlue 控制台

对于用户使用AmazonGlue 控制台中,该用户必须拥有一组最低权限,以允许其使用Amazon为他们的 Glue 资源Amazonaccount. 除了这些AmazonGlue 权限,控制台需要来自以下服务的权限:

  • 用于显示 Amazon CloudWatch Logs 日志的权限。

  • Amazon Identity and Access Management(IAM) 用于列出并传递角色的权限。

  • 用于处理堆栈的 Amazon CloudFormation 权限。

  • 用于列出 VPC、子网、安全组、实例和其他对象的 Amazon Elastic Compute Cloud (Amazon EC2) 权限。

  • Amazon Simple Storage Service (Amazon S3) 权限,用于列出存储桶和对象以及检索和保存脚本。

  • 用于处理集群的 Amazon Redshift 权限。

  • Amazon Relational Database Service (Amazon RDS) 列出实例的权限。

有关用户查看和使用所需的权限的更多信息,AmazonGlue 控制台,请参阅第 3 步:将策略附加到访问的 IAM 用户Amazon Glue

如果创建比必需的最低权限更为严格的 IAM 策略,对于附加了该 IAM 策略的用户,控制台将无法按预期正常运行。为确保这些用户仍可使用AmazonGlue 控制台,还附加AWSGlueConsoleFullAccess托管策略传递给用户,如Amazon适用于 的 托管(预定义)策略Amazon连接词

对于只需要调用的用户,无需为其提供最低控制台权限。Amazon CLI或AmazonGlue API。

Amazon适用于 的 托管(预定义)策略Amazon连接词

Amazon通过提供由创建和管理的独立 IAM 策略来满足许多常用案例的要求。Amazon。这些Amazon托管策略可授予常用案例的必要权限,使您免去调查所需权限的工作。有关更多信息,请参阅 。Amazon管理的策略中的IAM 用户指南

以下Amazon托管策略(您可以将它们附加到自己账户中的用户)是特定于的AmazonGlue 和按用例场景分组:

  • AWSG 独立访问权限— 授予对的完全访问权限Amazon使用时 Glue 资源Amazon Web Services Management Console。如果遵循此策略中指定的资源的命名约定,则用户具有完全控制台功能。此策略通常附加到AmazonGlue 控制台。

  • AWSG 网络管理器— 授予对各种资源的访问权限AmazonGlue 合工艺需要代表您运行。这些资源包括AmazonGlue、Amazon S3、IAM、CloudWatch Logs 和 Amazon EC2。如果您遵循此策略中指定的资源的命名约定,则AmazonGlue 工艺具有所需的权限。此策略通常附加到在定义爬网程序、作业和开发终端节点时指定的角色。

  • AWSS 网络服务器手册角色— 授予对创建笔记本服务器时所需资源的访问权限。这些资源包括AmazonGlue、Amazon S3 和 Amazon EC2。如果您遵循此策略中指定的资源的命名约定,则AmazonGlue 工艺具有所需的权限。此策略通常附加到在开发终端节点上创建笔记本服务器时指定的角色。

  • AWSGlueConsoleSageMakerNotebookFullAccess— 授予对的完全访问权限Amazon使用 Glue 和 SageMaker 资源时使用Amazon Web Services Management Console。如果遵循此策略中指定的资源的命名约定,则用户具有完全控制台功能。此策略通常附加到Amazon管理 SageMaker 笔记本电脑的 Glue 控制台。

  • AWSG 注册完全访问— 授予对的完全访问权限AmazonGlue 合架构注册表资源时使用Amazon Web Services Management Console或者Amazon CLI。如果遵循此策略中指定的资源的命名约定,则用户具有完全控制台功能。此策略通常附加到AmazonGlue 控制台或Amazon CLI管理架构注册表的人员。

  • AWSG 注册表只读访问— 授予对的只读访问权限AmazonGlue 合架构注册表资源时使用Amazon Web Services Management Console或者Amazon CLI。如果遵循此策略中指定的资源的命名约定,则用户具有完全控制台功能。此策略通常附加到AmazonGlue 控制台或Amazon CLI谁使用模式注册表。

注意

您可以通过登录到 IAM 控制台并在该控制台中搜索特定策略来查看这些权限策略。

此外,您还可以创建自定义 IAM 策略,以授予AmazonGlue 行动和资源。您可以将这些自定义策略附加到需要这些权限的 IAM 用户或组。

Amazon对 Glue 更新Amazon管理的策略

查看有关更新的详细信息Amazon适用于 的 托管策略AmazonGlue,因为这项服务开始跟踪这些变化。如需有关这些更新的自动警报,您可以订阅 RSS 源,在Amazon连接词文档历史记录页.

变更 描述 日期

AWSG 独立访问 — 更新到现有策略

已删除冗余资源 ARN (arn:aws:s3:::aws-glue-*/*),该操作授予对 Amazon S3 存储桶的读/写权限AmazonGlue 用于存储脚本和临时文件。 待定

AmazonGlue 开始跟踪变化

AmazonGlue 开始跟踪其变化Amazon托管策略。

2021 年 6 月 10 日