Managing Access Permissions for AWS Glue Resources - AWS Glue
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

如果我们为英文版本指南提供翻译,那么如果存在任何冲突,将以英文版本指南为准。在提供翻译时使用机器翻译。

Managing Access Permissions for AWS Glue Resources

您可以使用有效的凭证来对自己的请求进行身份验证,但您还必须拥有适当的权限才能创建或访问 AWS Glue 资源,如 AWS Glue 数据目录 中的表。

每个 AWS 资源都归某个 AWS 账户所有,创建和访问资源的权限由权限策略进行管理。账户管理员可以向 IAM 身份 (即:用户、组和角色) 挂载权限策略。有些服务(例如 AWS Glue 和 Amazon S3)还支持向资源附加权限策略。

注意

一个 account administrator (或管理员用户)是具有管理权限的用户。有关更多信息,请参阅 IAM 用户指南 中的 IAM 最佳实践

在授予权限时,您要决定谁获得权限,获得对哪些资源的权限,以及您允许对这些资源执行的具体操作。

注意

您可以使用 AWS Glue 方法或使用 AWS Lake Formation 授予。TheThethe AWS Glue 方法使用 AWS Identity and Access Management (IAM)实现细粒度访问控制的策略。 Lake Formation 使用更简单的 GRANT/REVOKE 权限模型类似于 GRANT/REVOKE 关系数据库系统中的命令。

本节介绍使用 AWS Glue 方法。有关使用 Lake Formation 资助,参见 授予LakeFormation权限AWS Lake Formation 开发人员指南.

Using Permissions Policies to Manage Access to Resources

A permissions policy 由JSON对象定义,其中描述了哪些人可以访问什么。JSON 对象的语法主要由 AWS Identity and Access Management (IAM) 定义。有关详细信息,请参阅 IAMJSON政策参考IAM 用户指南.

注意

本节讨论如何在 AWS Glue 的上下文中使用 IAM,但不提供有关 IAM 服务的详细信息。有关详细信息,请参阅 什么是IAM?IAM 用户指南.

有关显示所有 AWS Glue API 操作及其适用的资源的,请参阅 AWS Glue API 权限:操作和资源参考

了解更多有关 IAM 策略语法和描述,请参阅 IAMJSON政策参考IAM 用户指南.

AWS Glue 支持两种策略:

通过同时支持基于身份的策略和资源策略,AWS Glue 可让您精细地控制谁可以访问哪些元数据。

有关更多示例,请参阅 AWS Glue 基于资源的访问控制策略示例

AWS Glue Resources and Operations

AWS Glue 提供一组操作用来处理 AWS Glue 资源。有关可用操作的列表,请参阅 AWS Glue API

Understanding Resource Ownership

AWS 账户对在该账户下创建的资源具有所有权,而无论创建资源的人员是谁。具体而言,资源拥有者是对资源创建请求进行身份验证的委托人实体(即 AWS 账户根用户、IAM 用户或 IAM 角色)的 AWS 账户。以下示例说明了它的工作原理:

  • If you use the AWS account root user credentials of your AWS account to create a table, your AWS account is the owner of the resource (in AWS Glue, the resource is a table).

  • If you create an IAM user in your AWS account and grant permissions to create a table to that user, the user can create a table. However, your AWS account, which the user belongs to, owns the table resource.

  • If you create an IAM role in your AWS account with permissions to create a table, anyone who can assume the role can create a table. Your AWS account, to which the user belongs, owns the table resource.

Managing Access to Resources

A permissions policy 描述谁可以访问。下一节介绍创建权限策略时的可用选项。

注意

本节介绍如何在 AWS Glue 范围内使用 IAM。它不提供有关 IAM 服务的详细信息。完成 IAM 文档,请参阅 什么是IAM?IAM 用户指南。有关 IAM 策略语法和描述,请参阅 IAMJSON政策参考IAM 用户指南.

附加到 IAM 标识称为 identity-based 政策(IAM政策)。附加到资源的策略称为 resource-based 政策。

Identity-Based Policies (IAM Policies)

您可以向 IAM 身份挂载策略。例如,您可以执行以下操作:

  • Attach a permissions policy to a user or a group in your account – To grant a user permissions to create an AWS Glue resource, such as a table, you can attach a permissions policy to a user or group that the user belongs to.

  • Attach a permissions policy to a role (grant cross-account permissions) – You can attach an identity-based permissions policy to an IAM role to grant cross-account permissions. For example, the administrator in account A can create a role to grant cross-account permissions to another AWS account (for example, account B) or an AWS service as follows:

    1. Account A administrator creates an IAM role and attaches a permissions policy to the role that grants permissions on resources in account A.

    2. Account A administrator attaches a trust policy to the role identifying account B as the principal who can assume the role.

    3. Account B administrator can then delegate permissions to assume the role to any users in account B. Doing this allows users in account B to create or access resources in account A. The principal in the trust policy can also be an AWS service principal if you want to grant an AWS service permissions to assume the role.

    For more information about using IAM to delegate permissions, see Access Management in the IAM 用户指南.

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

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

有关对 AWS Glue使用基于身份的策略的更多信息,请参阅Identity-Based Policies (IAM Policies) for Access Control。有关用户、组、角色和权限的更多信息,请参阅 中的身份(用户、组和角色)。

Resource-Based Policies

其他服务(如 Amazon S3)也支持基于资源的权限策略。例如,您可以将策略附加到 S3 存储桶以管理对该存储桶的访问权限。

Specifying Policy Elements: Actions, Effects, and Principals

对于每种 AWS Glue 资源,该服务都定义了一组 API 操作。为了授予执行这些 API 操作的权限,AWS Glue 定义了一组您可以在策略中指定的操作。某些 API 操作可能需要多个操作的权限才能执行 API 操作。有关资源和 API 操作的更多信息,请参阅 AWS Glue Resources and Operations和 AWS Glue AWS Glue API

以下是最基本的策略元素:

  • Resource – You use an Amazon Resource Name (ARN) to identify the resource that the policy applies to. For more information, see AWS Glue Resources and Operations.

  • Action – You use action keywords to identify resource operations that you want to allow or deny. For example, you can use create to allow users to create a table.

  • Effect – You specify the effect, either allow or deny, when the user requests the specific action. If you don't explicitly grant access to (allow) a resource, access is implicitly denied. You can also explicitly deny access to a resource, which you might do to make sure that a user cannot access it, even if a different policy grants access.

  • Principal – In identity-based policies (IAM policies), the user that the policy is attached to is the implicit principal. For resource-based policies, you specify the user, account, service, or other entity that you want to receive permissions (applies to resource-based policies only). AWS Glue doesn't support resource-based policies.

了解更多有关 IAM 策略语法和描述,请参阅 IAMJSON政策参考IAM 用户指南.

有关显示所有 AWS Glue API 操作及其适用的资源的,请参阅 AWS Glue API 权限:操作和资源参考

Specifying Conditions in a Policy

当您授予权限时,可使用访问策略语言来指定规定策略何时生效的条件。例如,您可能希望策略仅在特定日期后应用。有关指定策略语言条件的详细信息,请参阅 条件IAM 用户指南.

要表示条件,您可以使用预定义的条件键。有 AWS 范围内的条件键和 AWS Glue– 特定键,您可以根据需要使用。有关 AWS 范围内的键的完整列表,请参阅 中的条件的可用键。