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

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

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

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

Console

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

  • 委托人-要授予权限的IAM用户、角色、Ident IAM ity Center SAML 用户和群组、用户和群组、 AWS 账户、组织或组织单位。

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

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

注意

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

  1. 打开授予数据湖权限页面。

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

    请执行以下操作之一:

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

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

    注意

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

  2. 接下来,在主体部分中,选择主体类型,然后指定要授予权限的主体。

    “主体”部分包含以下文本中命名的四个磁贴。每个磁贴包含一个选项按钮和文本。选中 IAM Identity Center 用户和群组图块,用户和群组下拉列表位于以下文本下方。
    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 个额外的小写字母或数字。

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

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

  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 权限后,请确保还向主体授予对该位置的数据位置权限。有关更多信息,请参阅 授予数据位置权限