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

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

使用两者来管理跨账户权限Amazon Glue和 Lake Formation

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

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

提示

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

您可以使用 Lake Formation 控制台查看 Lake Formation 跨账户资助,或者对于使用命名资源方法进行的授权,则可以查看 Lake FAmazon Resource Access Manager(Amazon RAM控制台。但是,这些控制台页面不显示由Amazon Glue数据目录资源策略。同样,您可以在数据目录资源策略中使用设置的页面Amazon Glue控制台,但该页面没有显示使用 Lake Formation 授予的跨账户权限。

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

使用授予跨账户权限时Amazon Glue数据目录资源策略

如果您的账户没有使用命名资源方法进行跨账户资助、哪个使用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_resource_policy)中的Amazon Glue开发人员指南.

使用授予跨账户权限时这Lake Formation命名资源方法

如果您的账户中没有数据目录资源策略,则 Lake Formation 跨账户资助将照常继续进行。但是,如果存在数据目录资源策略,您必须向其添加以下语句,以便允许您成功的跨账户授权如果它们是用命名的资源方法制作的. 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 标签的访问控制跨账户先决条件.

另请参见: