授予对与您的账户共享的数据库或表的权限
将属于另一个 AWS 账户的数据目录资源与您的 AWS 账户共享后,作为数据湖管理员,您可以向账户中的其他主体授予对共享资源的权限。但是,您不能向其他 AWS 账户或组织授予对该资源的权限。
您可以使用 AWS Lake Formation 控制台、API 或 AWS Command Line Interface (AWS CLI) 授予权限。
授予对共享数据库的权限(命名资源方法、控制台)
-
按照使用命名资源方法授予数据库权限中的说明进行操作。在 LF 标签或目录资源下的数据库列表中,确保选择的是外部账户中的数据库,而不是数据库的资源链接。
如果您在数据库列表中看不到该数据库,请确保您已接受关于该数据库的 AWS Resource Access Manager (AWS RAM) 资源共享邀请。有关更多信息,请参阅 接受来自 AWS RAM 的资源共享邀请。
另外,对于
CREATE_TABLE
和ALTER
权限,请按照授予数据位置权限(同一账户)中的说明进行操作,并确保在注册账户位置字段中输入所有者账户 ID。
授予对共享表的权限(命名资源方法、控制台)
-
按照使用命名资源方法授予表权限中的说明进行操作。在 LF 标签或目录资源下的数据库列表中,确保选择的是外部账户中的数据库,而不是数据库的资源链接。
如果您在表列表中看不到该表,请确保您已接受关于该表的 AWS RAM 资源共享邀请。有关更多信息,请参阅 接受来自 AWS RAM 的资源共享邀请。
另外,对于
ALTER
权限,请按照授予数据位置权限(同一账户)中的说明进行操作,并确保在注册账户位置字段中输入所有者账户 ID。
授予对共享资源的权限(LF-TBAC 方法、控制台)
-
按照授予数据目录权限 中的说明进行操作。在 LF 标签或目录资源部分,授予外部账户向您的账户授予的精确 LF 标签表达式或该表达式的子集。
例如,如果外部账户使用授权选项向您的账户授予了 LF 标签表达式
module=customers AND environment=production
,则作为数据湖管理员,您可以向您账户中的主体授予相同的表达式,即module=customers
或environment=production
。您只能授予通过 LF 标签表达式授予的对资源的相同或部分 Lake Formation 权限(例如SELECT
、ALTER
等)。
授予对共享表的权限(命名资源方法、AWS CLI)
-
输入类似以下的命令。在本示例中:
-
您的 AWS 账户 ID 为 1111-2222-3333。
-
拥有该表并将其授予您的账户的账户是 1234-5678-9012。
-
正在向用户
datalake_user1
授予对共享表pageviews
的SELECT
权限。该用户是您账户中的主体。 -
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
属性中指定所有者账户。 -