使用命名资源方法授予表权限
您可以使用 Lake Formation 控制台或 AWS CLI 授予对数据目录表的 Lake Formation 权限。您可以授予对单个表的权限,也可以通过一次授予操作来授予对数据库中所有表的权限。
如果您授予对数据库中所有表的权限,则将隐式授予对数据库的 DESCRIBE
权限。然后,数据库将显示在控制台的数据库页面上,由 GetDatabases
API 操作返回。
当您选择 SELECT
作为要授予的权限时,可以选择应用列筛选条件、行筛选条件或单元格筛选条件。
- Console
-
以下步骤说明如何使用命名资源方法和 Lake Formation 控制台上的授予数据湖权限页面来授予表权限。该页面分为以下几个部分:
-
主体 – 要向其授予权限的用户、角色、AWS 账户、组织或组织单位。
-
LF 标签或目录资源 – 要对其授予权限的数据库、表或资源链接。
-
权限 – 要授予的 Lake Formation 权限。
注意
要授予对表资源链接的权限,请参阅授予资源链接权限。
打开“授予数据湖权限”页面。
通过 https://console.aws.amazon.com/lakeformation/
打开 AWS Lake Formation 控制台,然后以数据湖管理员、表创建者或已通过授予选项获得对表的权限的用户身份登录。 请执行以下操作之一:
-
在导航窗格的权限下,选择数据湖权限。然后选择授予。
-
在导航窗格中,选择表。然后在表页面上选择一个表,并在操作菜单的权限下选择授予。
注意
您可以通过表的资源链接授予对表的权限。为此,在表页面上选择一个资源链接,然后在操作菜单上选择对目标的授权。有关更多信息,请参阅 资源链接在 Lake Formation 中的工作原理。
-
-
接下来,在主体部分中,选择主体类型,然后指定要向其授予权限的主体。
- IAM 用户和角色
-
从 IAM 用户和角色列表中选择一个或多个用户或角色。
- IAM Identity Center
-
从用户和组列表中选择一个或多个用户或组。
- SAML 用户和组
-
对于 SAML 和 Amazon QuickSight 用户和组,为通过 SAML 联合的用户或组输入一个或多个 Amazon 资源名称 (ARN),或者为 Amazon QuickSight 用户或组输入 ARN。在每个 ARN 后按 Enter。
有关如何构建 ARN 的信息,请参阅 Lake Formation 授予和撤销 AWS CLI 命令。
注意
只有 Amazon QuickSight 企业版支持 Lake Formation 与 Amazon QuickSight 的集成。
- 外部账户
-
对于 AWS 账户、AWS Organizations 或 IAM 主体,为 IAM 用户或角色输入一个或多个有效的 AWS 账户 ID、组织 ID、组织单位 ID 或 ARN。在每个 ID 后按 Enter。
组织 ID 由“o-”后跟 10 到 32 个小写字母或数字组成。
单位 ID 以“ou-”开头,后跟 4 到 32 个小写字母或数字(包含 OU 的根的 ID)。该字符串后跟第二个“-”字符和 8 到 32 个额外的小写字母或数字。
-
在 LF 标签或目录资源部分中,选择一个数据库。然后选择一个或多个表或所有表。
-
指定权限(无数据筛选)
在权限部分中,选择要授予的表权限,也可以选择可授予的权限。
如果授予 Select 权限,则数据权限部分将显示在表和列权限部分下方,其中所有数据访问选项默认处于选中状态。接受默认设置。
-
选择授予。
-
通过数据筛选指定 Select 权限
选择 Select 权限。不要选择任何其他权限。
数据权限部分将显示在表和列权限部分下方。
-
请执行以下操作之一:
-
仅应用简单列筛选。
-
选择基于列的简单访问。
-
选择是包括还是排除列,然后选择要包括或排除的列。
向外部 AWS 账户或组织授予权限时,仅支持包括列表。
-
(可选)在可授予的权限下,开启“Select”权限的授予选项。
如果包括授予选项,则授予接收人只能授予对您授予给他们的列的权限。
注意
您也可以通过创建指定列筛选条件并将所有行指定为行筛选条件的数据筛选条件来应用列筛选。但是,这需要更多的步骤。
-
-
应用列、行或单元格筛选。
-
选择高级单元格级筛选条件。
-
(可选)展开查看现有权限。
-
(可选)选择创建新筛选条件。
-
(可选)要查看列出的筛选条件的详细信息,或者要创建新筛选条件或删除现有筛选条件,请选择管理筛选条件。
此时将在新的浏览器窗口中打开数据筛选条件页面。
完成数据筛选条件页面上完成操作后,返回到授予权限页面,如有必要,请刷新该页面以查看创建的任何新的数据筛选条件。
-
选择一个或多个要应用于授予的数据筛选条件。
注意
如果列表中没有数据筛选条件,则表示未为所选表创建任何数据筛选条件。
-
-
-
选择授权。
-
- AWS CLI
-
您可以使用命名资源方法和 AWS Command Line Interface (AWS CLI) 来授予表权限。
使用 AWS CLI 授予表权限
-
运行
grant-permissions
命令并指定表作为资源。
例 – 对单个表授予权限 - 无筛选
以下示例向 AWS 账户 1111-2222-3333 中的用户
datalake_user1
授予对数据库retail
中表inventory
的SELECT
和ALTER
权限。aws lakeformation grant-permissions --principal DataLakePrincipalIdentifier=arn:aws:iam::111122223333:user/datalake_user1 --permissions "SELECT" "ALTER" --resource '{ "Table": {"DatabaseName":"retail", "Name":"inventory"}}'
注意
如果您授予对其基础数据位于注册位置的表的
ALTER
权限,请确保还向主体授予对该位置的数据位置权限。有关更多信息,请参阅 授予数据位置权限。例 – 使用“授予”选项对所有表授予权限 - 无筛选
下一个示例使用授予选项授予对数据库
retail
中所有表的SELECT
权限。aws lakeformation grant-permissions --principal DataLakePrincipalIdentifier=arn:aws:iam::111122223333:user/datalake_user1 --permissions "SELECT" --permissions-with-grant-option "SELECT" --resource '{ "Table": { "DatabaseName": "retail", "TableWildcard": {} } }'
例 – 通过简单列筛选授予权限
下一个示例授予对表
persons
中一部分列的SELECT
权限。它使用简单列筛选。aws lakeformation grant-permissions --principal DataLakePrincipalIdentifier=arn:aws:iam::111122223333:user/datalake_user1 --permissions "SELECT" --resource '{ "TableWithColumns": {"DatabaseName":"hr", "Name":"persons", "ColumnNames":["family_name", "given_name", "gender"]}}'
例 – 使用数据筛选条件授予权限
此示例授予对
orders
表的SELECT
权限并应用restrict-pharma
数据筛选条件。aws lakeformation grant-permissions --cli-input-json file://grant-params.json
以下是
grant-params.json
文件的内容。{ "Principal": {"DataLakePrincipalIdentifier": "arn:aws:iam::111122223333:user/datalake_user1"}, "Resource": { "DataCellsFilter": { "TableCatalogId": "111122223333", "DatabaseName": "sales", "TableName": "orders", "Name": "restrict-pharma" } }, "Permissions": ["SELECT"], "PermissionsWithGrantOption": ["SELECT"] }
-