使用这两者来管理跨账户权限Amazon GlueLake Format - Amazon Lake Formation
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

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

使用这两者来管理跨账户权限Amazon GlueLake Format

您可以使用以下任一方法来授予对数据目录资源和底层数据的跨账户访问权限Amazon Glue要么Amazon Lake Formation.

InAmazon Glue您可以通过创建或更新数据目录资源策略来授予跨账户权限。在 Lake Formation 中,你可以使用Lake Formation 授予跨账户权限GRANT/REVOKE权限模型和GrantPermissionsAPI 操作。

提示

我们建议仅依靠 Lake Formation 权限来保护您的数据湖。

你可以使用 Lake Formation 控制台查看 Lake Formation 跨账户授予;对于使用命名资源方法发放的授予,你可以使用Amazon Resource Access Manager(Amazon RAM) 控制台。但是,这些控制台页面不显示由Amazon GlueData Catalog 资源策略。同样,您可以使用 “数据目录” 资源策略查看跨账户授权设置的 “” 页面Amazon Glue控制台,但该页面不显示使用 Lake Formation 授予的跨账户权限。

为确保您在查看和管理跨账户权限时不会错过任何授权,Lake Formation 和Amazon Glue要求你执行以下操作,以表明你知道并允许 Lake Formation 和Amazon Glue.

使用Amazon Glue数据目录资源策略

如果您的账户没有使用 named resources 方法进行跨账户授权、哪个用s Amazon RAM要共享资源,您可以像往常一样将数据目录资源策略保存在Amazon Glue. 但是,如果补助金涉及Amazon RAM已创建资源共享,您必须执行以下操作之一,以确保成功保存资源策略:

  • 当您将资源策略保存在设置的 “” 页面Amazon Glue控制台时,控制台会发出提示,指明策略中的权限不属于使用这Lake Formation控制台. 你必须选择继续以保存策略。

  • 当您使用保存资源策略时glue:PutResourcePolicyAPI 操作时,您必须设置EnableHybrid的成员PutResourcePolicyRequest结构改为 'TRUE'(类型 = 字符串)。以下代码示例演示了如何在 Python 中执行此操作。

    import boto3 import json REGION = 'us-east-2' PRODUCER_ACCOUNT_ID = '123456789012' CONSUMER_ACCOUNT_IDs = ['111122223333'] glue = glue_client = boto3.client('glue') policy = { "Version": "2012-10-17", "Statement": [ { "Sid": "AllowConsumerFullCatalogAccess", "Effect": "Allow", "Action": [ "glue:*" ], "Principal": { "AWS": CONSUMER_ACCOUNT_IDs }, "Resource": [ f"arn:aws:glue:{REGION}:{PRODUCER_ACCOUNT_ID}:catalog", f"arn:aws:glue:{REGION}:{PRODUCER_ACCOUNT_ID}:database/*", f"arn:aws:glue:{REGION}:{PRODUCER_ACCOUNT_ID}:table/*/*" ] } ] } policy_str = json.dumps(policy) glue.put_resource_policy(PolicyInJson=policy_str, EnableHybrid='TRUE')

    有关更多信息,请参阅 。PutResourcePolicy 操作(Python:put_pout_pout_policy)中的Amazon Glue开发人员指南.

使用这Lake Formation命名资源方法

如果你的账户中没有数据目录资源策略,Lake Formation 跨账户授予你照常进行的授权。但是,如果 Data Catalog 资源策略存在,则必须向其中添加以下语句以允许跨账户授权才能成功如果它们是用命名的资源方法创建的. Replace<region>使用有效的区域名称和<account-id>使用您的Amazon账户 ID。

{ "Effect": "Allow", "Action": [ "glue:ShareResource" ], "Principal": {"Service": [ "ram.amazonaws.com" ]}, "Resource": [ "arn:aws:glue:<region>:<account-id>:table/*/*", "arn:aws:glue:<region>:<account-id>:database/*", "arn:aws:glue:<region>:<account-id>:catalog" ] }

如果没有此附加声明,Lake Formation 补助金将成功,但会被封锁Amazon RAM,并且收件人账户无法访问授予的资源。

重要

如果您还使用基于 Lake Formation 标记的访问控制 (LF-TBAC) 方法进行跨账户授权,则必须具有至少具有中指定的权限的数据目录资源策略Lake Formation 基于标签的访问控制跨账户先决条件.

另请参见: