本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
使用管理 LF-Tag 权限 AWS CLI
您可以使用 AWS Command Line Interface (AWS CLI) 授予、撤销和列出对 LF 标签的权限。
列出 LF 标签权限 (AWS CLI)
-
输入
list-permissions
命令。您必须是 LF 标签创建者、数据湖管理员,或者具有对 LF 标签的Drop
、Alter
、Describe
、Associate
、Grant 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 标签的权限 (AWS CLI)
-
输入类似以下的命令。此示例向用户
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
向外部 AWS 账户 1234-5678-9012 授予LF-tag。module
它仅授予查看和分配值sales
和orders
的权限。aws lakeformation grant-permissions --principal DataLakePrincipalIdentifier=123456789012 --permissions "ASSOCIATE" --permissions-with-grant-option "ASSOCIATE" --resource '{ "LFTag": {"CatalogId":"111122223333","TagKey":"module","TagValues":["sales", "orders"]}}'
-
授予
GrantWithLFTagExpression
权限会隐式授予Describe
权限。下一个示例使用授予选项向用户授予对带有键
module
的 LF 标签的GrantWithLFTagExpression
权限。它仅使用值sales
和orders
授予查看和授予对数据目录资源的权限。aws lakeformation grant-permissions --principal DataLakePrincipalIdentifier=111122223333 --permissions "GrantWithLFTagExpression" --permissions-with-grant-option "GrantWithLFTagExpression" --resource '{ "LFTag": {"CatalogId":"111122223333","TagKey":"module","TagValues":["sales", "orders"]}}'
-
下一个示例使用授予选项向用户授予对带有键
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":["*"]}}'
-
下一个示例使用授予选项向用户授予对带有键
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 标签的权限 (AWS 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":["*"]}}'