本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
先决条件
您的Amazon账户必须满足以下先决条件,然后才能与其他账户或其他账户的委托人共享 Data Catalog 资源(数据库和表),以及访问与您的账户共享的资源。
一般的跨账户数据共享要求
-
在授予数据目录资源的跨账户权限之前,您必须撤消该
IAMAllowedPrincipals
群组对该资源的所有 Lake Formation 权限。如果调用委托人具有访问资源的跨账户权限,并且该权限存在于该IAMAllowedPrincipals
资源上,则 Lake Formation 会抛出AccessDeniedException
。 -
对于包含要共享的表的数据库,必须防止新表的默认权
Super
限为IAMAllowedPrincipals
。在 Lake Formation 控制台上,编辑数据库并关闭对该数据库中的新表仅使用 IAM 访问控制,或者输入以下Amazon CLI命令,database
替换为数据库的名称。aws glue update-database --name
>database
--database-input '{"Name":"database
","CreateTableDefaultPermissions":[]}' 要授予跨账户权限,授予者必须具有Amazon Glue和Amazon RAM服务所需的Amazon Identity and Access Management (IAM) 权限。Amazon托管策略
AWSLakeFormationCrossAccountManager
授予所需的权限。使用接收资源共享的账户中的数据湖管理员Amazon RAM必须具有以下附加政策。它允许管理员接受Amazon RAM资源共享邀请。它还允许管理员启用与组织的资源共享。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ram:AcceptResourceShareInvitation", "ram:RejectResourceShareInvitation", "ec2:DescribeAvailabilityZones", "ram:EnableSharingWithAwsOrganization" ], "Resource": "*" } ] }
-
如果要与Amazon Organizations或组织单位共享数据目录资源,则必须在中启用与组织共享Amazon RAM。
有关如何启用与组织共享的信息,请参阅Amazon RAM用户指南中的启用与Amazon组织共享。
您必须具有权
ram:EnableSharingWithAwsOrganization
限才能启用与组织共享。 -
要直接与其他账户中的 IAM 委托人共享资源,您需要将跨账户版本设置更新到版本 3。此设置在数据目录设置页面上可用。如果您使用的是版本 1,请参阅更新设置的说明更新跨账户数据共享版本设置。
-
您无法与其他账户共享使用Amazon Glue服务管理密钥加密的数据目录资源。您只能共享使用客户加密密钥加密的数据目录资源,并且接收资源共享的账户必须具有数据目录加密密钥的权限才能解密对象。
使用 LF-TBAC 要求进行跨账户数据共享
-
要Amazon Organizations与组织单位 (OU) 共享数据目录资源,您需要将跨账户版本设置更新到版本 3。
要使用跨账户版本设置的版本 3 共享数据目录资源,授予者需要在您的账户的Amazon托管策略
AWSLakeFormationCrossAccountManager
中定义 IAM 权限。-
如果您使用的是跨账户版本设置的版本 1 或版本 2,则必须具有启用 LF-TBAC 的数据目录资源策略 (
)。有关更多信息,请参阅同时使用两者Amazon Glue和 Lake Formation 管理跨账户权限:glue:PutResourcePolicy
-
如果您当前正在使用Amazon Glue数据目录资源策略共享资源,并且想要使用跨账户版本设置的版本 3 授予跨账户权限,则必须使用一同时使用两者Amazon Glue和 Lake Formation 管理跨账户权限节中所示的
glue:PutResourcePolicy
API 操作在数据目录设置中添加权限。glue:ShareResource
如果您的账户没有使用Amazon Glue Data Catalog 资源策略(版本 1 和版本 2 的使用glue:PutResourcePolicy
权限)进行跨账户授予跨账户授予跨账户访问权限,则无需使用此策略。{ "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" ] }
-
如果您的账户已使用Amazon Glue Data Catalog 资源策略进行跨账户共享,并且您当前正在使用命名资源方法或带有跨账户设置版本 3 的 LF-TBACAmazon RAM 来共享资源(用于共享资源),则在调用
glue:PutResourcePolicy
API 操作'true'
时必须将EnableHybrid
参数设置为。有关更多信息,请参阅同时使用两者Amazon Glue和 Lake Formation 管理跨账户权限:
需要在访问共享资源的每个账户中进行设置
如果您与共享资源Amazon Web Services 账户,则消费者账户中必须至少有一个用户是数据湖管理员才能查看共享资源。有关如何创建数据湖管理员的信息,请参阅创建数据湖管理员。
数据湖管理员可以向账户中的其他主体授予 Lake Formation 对共享资源的权限。在数据湖管理员向其他委托人授予资源权限之前,他们无法访问共享资源。
-
诸如 Athena 和 Redshift Spectrum 之类的集成服务需要资源链接才能在查询中包含共享资源。校长需要在其数据目录中创建指向另一个共享资源的资源链接Amazon Web Services 账户。有关资源链接的更多信息,请参阅资源链接在 Lake Formation 中的工作原理。
-
直接与 IAM 委托人共享资源时,要使用 Athena 查询表,委托人需要创建资源链接。要创建资源链接,委托人需要 Lake Formati
CREATE_DATABASE
onCREATE_TABLE
或权限以及glue:CreateTable
或glue:CreateDatabase
IAM 权限。如果生产者账户在同一个数据库下与相同或另一个委托人共享不同的表,则该委托人可以立即查询该表。
注意
对于数据湖管理员和数据湖管理员已授予权限的主人,共享资源在数据目录中显示为本地(自有)资源。提取、转换和加载(ETL)任务可以访问共享资源的底层数据。
对于共享资源,Lake Formation 控制台上的表和数据库页面显示所有者的账户 ID。
访问共享资源的基础数据时, CloudTrail 日志事件将在共享资源接收者的账户和资源所有者的账户中生成。 CloudTrail 事件可以包含访问数据的委托人的 ARN,但前提是收件人账户选择在日志中包含委托人 ARN。有关更多信息,请参阅跨账户 CloudTrail 日志: