授予对与您的账户共享的数据库或表的权限 - AWS Lake Formation

授予对与您的账户共享的数据库或表的权限

将属于另一个 AWS 账户的数据目录资源与您的 AWS 账户共享后,作为数据湖管理员,您可以向账户中的其他主体授予对共享资源的权限。但是,您不能向其他 AWS 账户或组织授予对该资源的权限。

您可以使用 AWS Lake Formation 控制台、API 或 AWS Command Line Interface (AWS CLI) 授予权限。

授予对共享数据库的权限(命名资源方法、控制台)
  • 按照使用命名资源方法授予数据库权限中的说明进行操作。在 LF 标签或目录资源下的数据库列表中,确保选择的是外部账户中的数据库,而不是数据库的资源链接。

    如果您在数据库列表中看不到该数据库,请确保您已接受关于该数据库的 AWS Resource Access Manager (AWS RAM) 资源共享邀请。有关更多信息,请参阅 接受来自 AWS RAM 的资源共享邀请

    另外,对于 CREATE_TABLEALTER 权限,请按照授予数据位置权限(同一账户)中的说明进行操作,并确保在注册账户位置字段中输入所有者账户 ID。

授予对共享表的权限(命名资源方法、控制台)
授予对共享资源的权限(LF-TBAC 方法、控制台)
  • 按照授予数据目录权限 中的说明进行操作。在 LF 标签或目录资源部分,授予外部账户向您的账户授予的精确 LF 标签表达式或该表达式的子集。

    例如,如果外部账户使用授权选项向您的账户授予了 LF 标签表达式 module=customers AND environment=production,则作为数据湖管理员,您可以向您账户中的主体授予相同的表达式,即 module=customersenvironment=production。您只能授予通过 LF 标签表达式授予的对资源的相同或部分 Lake Formation 权限(例如 SELECTALTER 等)。

授予对共享表的权限(命名资源方法、AWS CLI)
  • 输入类似以下的命令。在本示例中:

    • 您的 AWS 账户 ID 为 1111-2222-3333。

    • 拥有该表并将其授予您的账户的账户是 1234-5678-9012。

    • 正在向用户 datalake_user1 授予对共享表 pageviewsSELECT 权限。该用户是您账户中的主体。

    • pageviews 表位于 analytics 数据库中,该数据库归账户 1234-5678-9012 所有。

    aws lakeformation grant-permissions --principal DataLakePrincipalIdentifier=arn:aws:iam::111122223333:user/datalake_user1 --permissions "SELECT" --resource '{ "Table": {"CatalogId":"123456789012", "DatabaseName":"analytics", "Name":"pageviews"}}'

    请注意,必须在 resource 参数的 CatalogId 属性中指定所有者账户。