使用 Amazon CLI 管理 LF 标签权限 - Amazon Lake Formation
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

使用 Amazon CLI 管理 LF 标签权限

您可以使用 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 权限。

    下一个示例使用授予选项向外部 Amazon 账户 1234-5678-9012 授予对带有键 module 的 LF 标签的 Associate 权限。它仅授予查看和分配值 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":["*"]}}'