本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
使用命名资源方法授予数据库权限
以下步骤说明如何使用命名资源方法授予数据库权限。
- Console
-
使用 Lake Formation 控制台上的授予数据湖权限页面。该页面分为以下几个部分:
-
委托人-要授予权限的IAM用户、角色、Ident IAM ity Center SAML 用户和群组、用户和群组、 AWS 账户、组织或组织单位。
-
LF 标签或目录资源 – 要对其授予权限的数据库、表、视图或资源链接。
-
权限 – 要授予的 Lake Formation 权限。
注意
要授予对数据库资源链接的权限,请参阅授予资源链接权限。
打开授予数据湖权限页面。
在打开 AWS Lake Formation 控制台 https://console.aws.amazon.com/lakeformation/
,然后以数据湖管理员、数据库创建者或对数据库拥有 Grantable 权限的IAM用户身份登录。 请执行以下操作之一:
-
在导航窗格的权限下,选择数据湖权限。然后选择授予。
-
在导航窗格的数据目录下,选择数据库。然后在数据库页面上选择一个数据库,并在操作菜单的权限下选择授予。
注意
您可以通过数据库的资源链接授予对数据库的权限。为此,在数据库页面上选择一个资源链接,然后在操作菜单上选择对目标的授权。有关更多信息,请参阅 资源链接在 Lake Formation 中的工作原理。
-
-
接下来,在主体部分中,选择主体类型,然后指定要授予权限的主体。
- IAM用户和角色
-
从用户和角色列表中选择一个或多个IAM用户或角色。
- IAM身份中心
-
从用户和组列表中选择一个或多个用户或组。选择添加以添加更多用户或组。
- SAML 用户和组
-
对于SAML和 Amazon QuickSight 用户和群组,请为通过联合身份的用户或群组SAML,或者为亚马逊用户或群组输入一个或ARNs多个亚马逊 QuickSight 资源名称 (ARNs)。每次之后按 Enter 键ARN。
有关如何构造的信息ARNs,请参见Lake Formation 授予和撤销命令 AWS CLI。
注意
只有亚马逊 QuickSight 企业版支持 Lake Format QuickSight ion 与亚马逊的集成。
- 外部账户
-
对于AWS 账户、 AWS 组织或IAM委托人,请输入一个或多个有效的 AWS 帐户IDsIDs、组织IDs、组织单位或IAM用户或角色。ARN在每个 ID 后按 Enter。
组织 ID 由“o-”后跟 10 到 32 个小写字母或数字组成。
单位 ID 以“ou-”开头,后跟 4 到 32 个小写字母或数字(包含 OU 的根的 ID)。该字符串后跟第二个“-”短横线和 8 到 32 个额外的小写字母或数字。
-
在 LF 标签或目录资源部分下,选择已命名数据目录资源。
-
从数据库列表中选择一个或多个数据库。您还可以选择一个或多个表和/或数据筛选条件。
-
在权限部分中,选择权限和可授予的权限。在数据库权限下,选择一项或多项要授予的权限。
注意
在授予对具有指向注册位置的位置属性的数据库的
Create Table
或Alter
权限后,请确保还向主体授予对该位置的数据位置权限。有关更多信息,请参阅 授予数据位置权限。 -
(可选)在可授予的权限下,选择授予接收人可以向其 AWS 账户中的其他主体授予的权限。当您从外部账户向IAM委托人授予权限时,不支持此选项。
-
选择授权。
-
- AWS CLI
-
您可以使用命名资源方法和 AWS Command Line Interface (AWS CLI) 来授予数据库权限。
要授予数据库权限,请使用 AWS CLI
-
运行
grant-permissions
命令,并根据所授予的权限将数据库或数据目录指定为资源。在以下示例中,替换
<account-id>
使用有效的 AWS 账户 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"}}'例 — 使用 “授权” 选项向外部 AWS 账户授权
下一个示例使用授予选项向外部账户 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
权限后,请确保还向主体授予对该位置的数据位置权限。有关更多信息,请参阅 授予数据位置权限。 -