使用授予、撤消和列出 LF-Tag 权限 Amazon CLI - Amazon Lake Formation
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

使用授予、撤消和列出 LF-Tag 权限 Amazon CLI

您可以使用 Amazon Command Line Interface (Amazon CLI) 授予、撤销和列出对 LF 标签的权限。

列出 LF 标签权限 (Amazon CLI)
  • 输入 list-permissions 命令。您必须是 LF 标签创建者、数据湖管理员,或者具有对 LF 标签的 DropAlterDescribeAssociateGrant with LF-Tag permissions 权限才能查看它。

    以下命令请求您有权访问的所有 LF 标签。

    aws lakeformation list-permissions --resource-type LF_TAG

    以下是数据湖管理员的示例输出,该人员可以查看向所有主体授予的所有 LF 标签。非管理员用户只能查看向其授予的 LF 标签。从外部账户授予的 LF 标签权限将显示在单独的结果页面上。要查看它们,请重复该命令并向 --next-token 参数提供上一次命令运行时返回的令牌。

    {
        "PrincipalResourcePermissions": [
            {
                "Principal": {
                    "DataLakePrincipalIdentifier": "arn:aws:iam::111122223333:user/datalake_admin"
                },
                "Resource": {
                    "LFTag": {
                        "CatalogId": "111122223333",
                        "TagKey": "environment",
                        "TagValues": [
                            "*"
                        ]
                    }
                },
                "Permissions": [
                    "ASSOCIATE"
                ],
                "PermissionsWithGrantOption": [
                    "ASSOCIATE"
                ]
            },
            {
                "Principal": {
                    "DataLakePrincipalIdentifier": "arn:aws:iam::111122223333:user/datalake_user1"
                },
                "Resource": {
                    "LFTag": {
                        "CatalogId": "111122223333",
                        "TagKey": "module",
                        "TagValues": [
                            "Orders",
                            "Sales"
                        ]
                    }
                },
                "Permissions": [
                    "DESCRIBE"
                ],
                "PermissionsWithGrantOption": []
            },
    ...
        ],
        "NextToken": "eyJzaG91bGRRdWVy...Wlzc2lvbnMiOnRydWV9"
    }
    
    

    您可以列出特定 LF 标签键的所有授予。以下命令返回对 LF 标签 module 授予的所有权限。

    aws lakeformation list-permissions --resource-type LF_TAG --resource '{ "LFTag": {"CatalogId":"111122223333","TagKey":"module","TagValues":["*"]}}'

    您还可以列出向特定主体授予的针对特定 LF 标签的 LF 标签值。提供 --principal 参数时,必须提供 --resource 参数。因此,该命令实际只能请求向特定主体授予的针对特定 LF 标签键的值。以下命令显示如何针对主体 datalake_user1 和 LF 标签键 module 执行此操作。

    aws lakeformation list-permissions --principal DataLakePrincipalIdentifier=arn:aws:iam::111122223333:user/datalake_user1 --resource-type LF_TAG --resource '{ "LFTag": {"CatalogId":"111122223333","TagKey":"module","TagValues":["*"]}}'

    下面是示例输出。

    {
        "PrincipalResourcePermissions": [
            {
                "Principal": {
                    "DataLakePrincipalIdentifier": "arn:aws:iam::111122223333:user/datalake_user1"
                },
                "Resource": {
                    "LFTag": {
                        "CatalogId": "111122223333",
                        "TagKey": "module",
                        "TagValues": [
                            "Orders",
                            "Sales"
                        ]
                    }
                },
                "Permissions": [
                    "ASSOCIATE"
                ],
                "PermissionsWithGrantOption": []
            }
        ]
    }
授予对 LF 标签的权限 (Amazon CLI)
  1. 输入类似以下的命令。此示例向用户 datalake_user1 授予对带有键 module 的 LF 标签的 Associate 权限。它授予查看和分配该键的所有值的权限,如星号 (*) 所示。

    aws lakeformation grant-permissions --principal DataLakePrincipalIdentifier=arn:aws:iam::111122223333:user/datalake_user1 --permissions "ASSOCIATE" --resource '{ "LFTag": {"CatalogId":"111122223333","TagKey":"module","TagValues":["*"]}}'

    授予 Associate 权限会隐式授予 Describe 权限。

    下一个示例使用密钥和授权选项Associate向外部 Amazon 账户 1234-5678-9012 授予LF-tag。module它仅授予查看和分配值 salesorders 的权限。

    aws lakeformation grant-permissions --principal DataLakePrincipalIdentifier=123456789012 --permissions "ASSOCIATE" --permissions-with-grant-option "ASSOCIATE" --resource '{ "LFTag": {"CatalogId":"111122223333","TagKey":"module","TagValues":["sales", "orders"]}}'
  2. 授予 GrantWithLFTagExpression 权限会隐式授予 Describe 权限。

    下一个示例使用授予选项向用户授予对带有键 module 的 LF 标签的 GrantWithLFTagExpression 权限。它仅使用值 salesorders 授予查看和授予对数据目录资源的权限。

    aws lakeformation grant-permissions --principal DataLakePrincipalIdentifier=111122223333 --permissions "GrantWithLFTagExpression" --permissions-with-grant-option "GrantWithLFTagExpression" --resource '{ "LFTag": {"CatalogId":"111122223333","TagKey":"module","TagValues":["sales", "orders"]}}'
  3. 下一个示例使用授予选项向用户授予对带有键 module 的 LF 标签的 Drop 权限。它会授予删除 LF 标签的权限。要删除 LF 标签,您需要具有对该键的所有值的权限。

    aws lakeformation grant-permissions --principal DataLakePrincipalIdentifier=111122223333 --permissions "DROP" --permissions-with-grant-option "DROP" --resource '{ "LFTag": {"CatalogId":"111122223333","TagKey":"module","TagValues":["*"]}}'
  4. 下一个示例使用授予选项向用户授予对带有键 module 的 LF 标签的 Alter 权限。它会授予删除 LF 标签的权限。要更新 LF 标签,您需要具有对该键的所有值的权限。

    aws lakeformation grant-permissions --principal DataLakePrincipalIdentifier=111122223333 --permissions "ALTER" --permissions-with-grant-option "ALTER" --resource '{ "LFTag": {"CatalogId":"111122223333","TagKey":"module","TagValues":["*"]}}'
撤销对 LF 标签的权限 (Amazon CLI)
  • 输入类似以下的命令。此示例向用户 datalake_user1 授予对带有键 module 的 LF 标签的 Associate 权限。

    aws lakeformation revoke-permissions --principal DataLakePrincipalIdentifier=arn:aws:iam::111122223333:user/datalake_user1 --permissions "ASSOCIATE" --resource '{ "LFTag": {"CatalogId":"111122223333","TagKey":"module","TagValues":["*"]}}'