本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
跨账户数据共享最佳实践和注意事项
Lake Formation 跨账户功能允许用户安全地跨多个 AWS 组织共享分布式数据湖 AWS 账户,或者直接与其他账户中的IAM委托人共享分布式数据湖,从而提供对数据目录元数据和底层数据的精细访问权限。
使用 Lake Formation 跨账户数据共享时,请考虑以下最佳实践:
-
您可以向自己 AWS 账户中的委托人授予的 Lake Formation 权限数量没有限制。但是,Lake For AWS Resource Access Manager mation 使用 (AWS RAM) 容量进行跨账户授权,您的账户可以使用指定的资源方法进行跨账户授权。要最大限度地提高 AWS RAM 容量,请遵循指定资源方法的以下最佳实践:
-
使用新的跨账户授予模式(跨账户版本设置下的版本 3 及更高版本)与外部 AWS 账户用户共享资源。有关更多信息,请参阅 更新跨账户数据共享版本设置。
-
将 AWS 账户整理到组织中,并向组织或组织单位授予权限。每向组织或组织单位进行一次授权都计为一次授权。
授予组织或组织单位还无需接受 AWS Resource Access Manager (AWS RAM) 资源共享邀请即可获得授权。有关更多信息,请参阅 访问和查看共享数据目录表和数据库。
-
可以使用特殊的所有表 通配符来授予对数据库中所有表的权限,而不必授予对数据库中许多单独表的权限。每针对所有表授予一次权限都计为一次授权。有关更多信息,请参阅 授予和撤销对数据目录资源的权限。
注意
有关请求提高资源共享数量限制的更多信息 AWS RAM,请参阅中的AWS 服务配额AWS 一般参考。
-
-
您必须创建指向共享数据库的资源链接,该数据库才能出现在 Amazon Athena 和 Amazon Redshift Spectrum 查询编辑器中。同样,为了能够使用 Athena 和 Redshift Spectrum 查询共享表,您必须创建指向这些表的资源链接。之后,资源链接便会出现在查询编辑器的表列表中。
您可以使用所有表通配符来授予对数据库中所有表的权限,而不必为许多要查询的单独表创建资源链接。然后,当您为该数据库创建资源链接并在查询编辑器中选择该数据库资源链接时,您将可以访问该数据库中的所有表进行查询。有关更多信息,请参阅 创建资源链接。
-
当您直接与其他账户中的委托人共享资源时,收款人账户中的IAM委托人可能无权创建资源链接,无法使用 Athena 和 Amazon Redshift Spectrum 查询共享表。数据湖管理员可以创建占位符数据库并向
ALLIAMPrincipal
组授予CREATE_TABLE
权限,而不必为每个共享的表创建资源链接。然后,收件人IAM账户中的所有委托人可以在占位符数据库中创建资源链接并开始查询共享表。请参阅向中授予权限
ALLIAMPrincipals
的示例CLI命令使用命名资源方法授予数据库权限。 -
Athena 和 Redshift Spectrum 支持列级别访问控制,但仅限于包含,不支持排除。作业中不支持列级访问控制。AWS Glue ETL
-
当资源与您的 AWS 账户共享时,您只能向账户中的用户授予该资源的权限。您不能向其他 AWS 账户、组织(甚至不是您自己的组织)或
IAMAllowedPrincipals
群组授予该资源的权限。 -
您不能向外部账户授予对数据库的
DROP
或Super
权限。 -
在删除数据库或表之前,请撤销跨账户权限。否则,您必须删除中的孤立资源共享。 AWS Resource Access Manager
另请参阅
-
有关跨账户访问的更多规则和限制,请参阅Lake Formation 权限参考中的CREATE_TABLE。