使用命名资源方法授予数据库权限
以下步骤说明如何使用命名资源方法授予数据库权限。
- Console
-
使用 Lake Formation 控制台上的授予权限页面。该页面分为以下几个部分:
-
主体类型:主体部分包括要授予权限的 IAM 用户、角色、IAM Identity Center 用户和组、SAML 用户和组、Amazon 账户、组织或组织单元。在按属性划分的主体部分,您可以为附加到 IAM 角色的属性指定键和值。
-
LF 标签或目录资源:要对其授予权限的数据库、表、视图或资源链接。
-
权限:要授予的 Lake Formation 权限。
注意
要授予对数据库资源链接的权限,请参阅授予资源链接权限。
打开授予权限页面。
通过 https://console.aws.amazon.com/lakeformation/ 打开 Amazon Lake Formation 控制台,然后以数据湖管理员、表创建者或对数据库具有可授予的权限的 IAM 用户身份登录。
请执行以下操作之一:
-
在导航窗格的权限下,选择数据权限。然后选择授予。
-
在导航窗格的数据目录下,选择数据库。然后在数据库页面上选择一个数据库,并在操作菜单的权限下选择授予。
注意
您可以通过数据库的资源链接授予对数据库的权限。为此,在数据库页面上选择一个资源链接,然后在操作菜单上选择对目标的授权。有关更多信息,请参阅资源链接在 Lake Formation 中的工作原理。
-
-
在主体类型部分,指定主体或使用属性向主体授予权限。
- IAM 用户和角色
-
从 IAM 用户和角色列表中选择一个或多个用户或角色。
- IAM Identity Center 验证
-
从用户和组列表中选择一个或多个用户或组。选择添加以添加更多用户或组。
- SAML 用户和组
-
对于 SAML 和 Quick Suite 用户和组,为通过 SAML 联合的用户或组输入一个或多个 Amazon 资源名称(ARN),或者为 Amazon Quick Suite 用户或组输入 ARN。在每个 ARN 后按 Enter。
有关如何构建 ARN 的信息,请参阅 Lake Formation 授予和撤销 Amazon CLI 命令。
注意
只有 Quick Suite 企业版支持 Lake Formation 与 Quick Suite 的集成。
- 外部账户
-
对于 Amazon Web Services 账户、Amazon Organizations 或 IAM 主体,为 IAM 用户或角色输入一个或多个有效的 Amazon 账户 ID、组织 ID、组织单元 ID 或 ARN。在每个 ID 后按 Enter。
组织 ID 由“o-”后跟 10 到 32 个小写字母或数字组成。
单位 ID 以“ou-”开头,后跟 4 到 32 个小写字母或数字(包含 OU 的根的 ID)。该字符串后跟第二个“-”短横线和 8 到 32 个额外的小写字母或数字。
- 按属性划分的主体
指定属性键和值。如果选择多个值,则将使用 OR 运算符来创建属性表达式。这意味着,如果分配给某个 IAM 角色或用户的任何属性标签值匹配,则该角色/用户将获得对资源的访问权限。
通过指定您是向同一账户中具有匹配属性的主体,还是向另一个账户中具有匹配属性的主体授予权限来选择权限范围。
-
在 LF 标签或目录资源部分下,选择已命名数据目录资源。
-
从数据库列表中选择一个或多个数据库。您还可以选择一个或多个表和/或数据筛选条件。
-
在权限部分中,选择权限和可授予的权限。在数据库权限下,选择一项或多项要授予的权限。
注意
在授予对具有指向注册位置的位置属性的数据库的
Create Table或Alter权限后,请确保还向主体授予对该位置的数据位置权限。有关更多信息,请参阅授予数据位置权限。 -
(可选)在可授予的权限下,选择授予接收人可以向其 Amazon 账户中的其他主体授予的权限。当您从外部账户向 IAM 主体授予权限时,不支持此选项。
-
选择授予。
-
- Amazon CLI
-
您可以使用命名资源方法和 Amazon Command Line Interface (Amazon CLI) 来授予数据库权限。
使用 Amazon CLI 授予数据库权限
-
运行
grant-permissions命令,并根据所授予的权限将数据库或数据目录指定为资源。将以下示例中的
<account-id>替换为有效的 Amazon 账户 ID。例 – 授予创建数据库的权限
此示例向用户
datalake_user1授予CREATE_DATABASE权限。由于被授予此权限的资源是数据目录,因此该命令会将空的CatalogResource结构指定为resource参数。aws lakeformation grant-permissions --principal DataLakePrincipalIdentifier=arn:aws:iam::<account-id>:user/datalake_user1 --permissions "CREATE_DATABASE" --resource '{ "Catalog": {}}'例 – 授予在指定数据库中创建表的权限
下一个示例向用户
datalake_user1授予对数据库retail的CREATE_TABLE权限。aws lakeformation grant-permissions --principal DataLakePrincipalIdentifier=arn:aws:iam::<account-id>:user/datalake_user1 --permissions "CREATE_TABLE" --resource '{ "Database": {"Name":"retail"}}'例 – 使用“授予”选项向外部 Amazon 账户授予权限
下一个示例使用授予选项向外部账户 1111-2222-3333 授予对数据库
retail的CREATE_TABLE权限。aws lakeformation grant-permissions --principal DataLakePrincipalIdentifier=111122223333 --permissions "CREATE_TABLE" --permissions-with-grant-option "CREATE_TABLE" --resource '{ "Database": {"Name":"retail"}}'例 – 向组织授予权限
下一个示例使用授予选项向组织
o-abcdefghijkl授予对数据库issues的ALTER权限。aws lakeformation grant-permissions --principal DataLakePrincipalIdentifier=arn:aws:organizations::111122223333:organization/o-abcdefghijkl --permissions "ALTER" --permissions-with-grant-option "ALTER" --resource '{ "Database": {"Name":"issues"}}'例 - 向同一账户中的
ALLIAMPrincipals授予权限下一个示例向同一账户中的所有主体授予对数据库
retail的CREATE_TABLE权限。选择此选项后,账户中的每个主体即可在数据库中创建表并创建表资源链接,从而允许集成查询引擎访问共享数据库和表。当主体获得跨账户授权但无权创建资源链接时,此选项尤为有用。在这种情况下,数据湖管理员可以创建占位符数据库并向ALLIAMPrincipal组授予CREATE_TABLE权限,从而使账户中的每个 IAM 主体都能在占位符数据库中创建资源链接。aws lakeformation grant-permissions --principal DataLakePrincipalIdentifier=111122223333:IAMPrincipals --permissions "CREATE_TABLE" --resource '{ "Database": {"Name":"temp","CatalogId":"111122223333"}}'例 - 向外部账户中的
ALLIAMPrincipals授予权限下一个示例向外部账户中的所有主体授予对数据库
retail的CREATE_TABLE权限。选择此选项后,账户中的每个主体即可在数据库中创建表。aws lakeformation grant-permissions --principal DataLakePrincipalIdentifier=111122223333:IAMPrincipals --permissions "CREATE_TABLE" --resource '{ "Database": {"Name":"retail","CatalogId":"123456789012"}}'
注意
在授予对具有指向注册位置的位置属性的数据库的
CREATE_TABLE或ALTER权限后,请确保还向主体授予对该位置的数据位置权限。有关更多信息,请参阅授予数据位置权限。 -