使用命名资源方法授予数据库权限 - AWS Lake Formation

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

使用命名资源方法授予数据库权限

以下步骤说明如何使用命名资源方法授予数据库权限。

Console

使用 Lake Formation 控制台上的 “授予权限” 页面。该页面分为以下几个部分:

  • 委托人类型委托人部分包括要授予权限的 IAM 用户、角色、IAM Identity Center 用户和群组、SAML 用户和群组、 AWS 账户、组织或组织单位。在按属性划分的委托人部分,您可以为附加到 IAM 角色的属性指定密钥和值。

  • LF 标签或目录资源 – 要对其授予权限的数据库、表、视图或资源链接。

  • 权限 – 要授予的 Lake Formation 权限。

注意

要授予对数据库资源链接的权限,请参阅授予资源链接权限

  1. 打开 “授予权限” 页面。

    在打开 AWS Lake Formation 控制台 https://console.aws.amazon.com/lakeformation/,然后以数据湖管理员、数据库创建者或对数据库拥有可授予权限的 IAM 用户身份登录。

    请执行以下操作之一:

    • 在导航窗格的权限下,选择数据权限。然后选择授予

    • 在导航窗格的数据目录下,选择数据库。然后在数据库页面上选择一个数据库,并在操作菜单的权限下选择授予

    注意

    您可以通过数据库的资源链接授予对数据库的权限。为此,在数据库页面上选择一个资源链接,然后在操作菜单上选择对目标的授权。有关更多信息,请参阅 资源链接在 Lake Formation 中的工作原理

  2. 委托人类型部分,使用属性指定委托人或向委托人授予权限。

    校长部分包含四个方块。每个磁贴包含一个选项按钮和文本。
    IAM 用户和角色

    IAM 用户和角色列表中选择一个或多个用户或角色。

    IAM Identity Center

    用户和组列表中选择一个或多个用户或组。选择添加以添加更多用户或组。

    SAML 用户和组

    对于 SAML 和 Quick Suite 用户和群组,请为通过 SAML 联合的用户或群组,或者为 Amazon Quick Suite 用户或群组输入一个或多个 ARNs 亚马逊资源名称 (ARNs)。在每个 ARN 之后按 Enter

    有关如何构造的信息 ARNs,请参见Lake Formation 授予和撤销命令 AWS CLI

    注意

    只有 Quick Suite 企业版支持 Lake Formation 与 Quick Suite 集成。

    外部账户

    对于AWS 账户 AWS 组织IAM 委托人,请为 IAM 用户或角色输入一个或多个有效的 AWS 账户 IDs IDs IDs、组织、组织单位或 ARN。在每个 ID 后按 Enter

    组织 ID 由“o-”后跟 10 到 32 个小写字母或数字组成。

    单位 ID 以“ou-”开头,后跟 4 到 32 个小写字母或数字(包含 OU 的根的 ID)。该字符串后跟第二个“-”短横线和 8 到 32 个额外的小写字母或数字。

    按属性划分的校长

    指定属性键和值。如果您选择多个值,则将使用 OR 运算符创建属性表达式。这意味着,如果分配给 IAM 角色或用户的任何属性标签值匹配,则该角色或用户将 role/user 获得对资源的访问权限。

    要选择权限范围,请指定您是向同一账户中属性匹配的委托人授予权限还是其他账户中的委托人授予权限。

  3. LF 标签或目录资源部分下,选择已命名数据目录资源

    “LF 标签或目录资源”部分包含两个水平排列的磁贴,其中每个磁贴包含一个选项按钮和描述性文本。选项包括通过 LF 标签匹配的资源和命名数据目录资源。磁贴下方是两个下拉列表:“数据库”和“表”。“数据库”下拉列表下方有一个磁贴,其中包含所选数据库名称。
  4. 数据库列表中选择一个或多个数据库。您也可以选择一个或多个表 and/or 数据过滤器

  5. 权限部分中,选择权限和可授予的权限。在数据库权限下,选择一项或多项要授予的权限。

    “权限”部分包含两个水平排列的磁贴。每个磁贴包含一个选项按钮和文本。“数据库权限”磁贴处于选中状态。另一个磁贴“基于列的权限”处于禁用状态,因为它与表权限相关。磁贴下方是一组要授予的数据库权限对应的复选框。这些复选框包括 Create Table、Alter、Drop、Describe 和 Super。该组下方是另一组相同的复选框,代表可授予的权限。
    注意

    在授予对具有指向注册位置的位置属性的数据库的 Create TableAlter 权限后,请确保还向主体授予对该位置的数据位置权限。有关更多信息,请参阅 授予数据位置权限

  6. (可选)在可授予的权限下,选择授予接收人可以向其 AWS 账户中的其他主体授予的权限。当您从外部账户向 IAM 主体授予权限时,不支持此选项。

  7. 选择授予

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 授予对数据库 retailCREATE_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 授予对数据库 retailCREATE_TABLE 权限。

    aws lakeformation grant-permissions --principal DataLakePrincipalIdentifier=111122223333 --permissions "CREATE_TABLE" --permissions-with-grant-option "CREATE_TABLE" --resource '{ "Database": {"Name":"retail"}}'
    例 – 向组织授予权限

    下一个示例使用授予选项向组织 o-abcdefghijkl 授予对数据库 issuesALTER 权限。

    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 授予权限

    下一个示例向同一账户中的所有主体授予对数据库 retailCREATE_TABLE 权限。选择此选项后,账户中的每个主体即可在数据库中创建表并创建表资源链接,从而允许集成查询引擎访问共享数据库和表。当主体获得跨账户授权但无权创建资源链接时,此选项尤为有用。在这种情况下,数据湖管理员可以创建占位符数据库并向 ALLIAMPrincipal 组授予 CREATE_TABLE 权限,从而使账户中的每个 IAM 主体都能在占位符数据库中创建资源链接。

    aws lakeformation grant-permissions --principal DataLakePrincipalIdentifier=111122223333:IAMPrincipals --permissions "CREATE_TABLE" --resource '{ "Database": {"Name":"temp","CatalogId":"111122223333"}}'
    例 - 向外部账户中的 ALLIAMPrincipals 授予权限

    下一个示例向外部账户中的所有主体授予对数据库 retailCREATE_TABLE 权限。选择此选项后,账户中的每个主体即可在数据库中创建表。

    aws lakeformation grant-permissions --principal DataLakePrincipalIdentifier=111122223333:IAMPrincipals --permissions "CREATE_TABLE" --resource '{ "Database": {"Name":"retail","CatalogId":"123456789012"}}'
注意

在授予对具有指向注册位置的位置属性的数据库的 CREATE_TABLEALTER 权限后,请确保还向主体授予对该位置的数据位置权限。有关更多信息,请参阅 授予数据位置权限