

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

# 管理元数据访问控制 LF-Tag 表达式
<a name="managing-tag-expressions"></a>

 LF-Tag 表达式是由一个或多个 LF-Tags （键值对）组成的逻辑表达式，用于授予资源权限。 AWS Glue Data Catalog LF-Tag 表达式允许您定义规则，根据数据资源的元数据标签来管理对数据资源的访问权限。您可以保存这些表达式并在多次权限授予中重复使用这些表达式，从而确保一致性，并且可以直接管理标签本体随时间推移而发生的更改。

在给定的 LF-Tag 表达式中，使用 AND 运算组合标签键，而使用 OR 运算组合值。例如，标签表达式 `content_type:Sales AND location:US` 表示与美国销售数据相关的资源。

您最多可以在中创建 1000 个 LF-Tag 表达式 AWS 账户。这些表达式提供了一种灵活且可扩展的方式来管理基于元数据标签的权限，确保只有经过授权的用户或应用程序才能根据定义的标签规则访问特定的数据资源。

LF-Tag 表达式具有以下好处：
+ **可重用性**-通过定义和保存 LF-Tag 表达式，在为其他资源或委托人分配权限时，您不再需要手动复制相同的表达式。
+ **一致性**-在多个权限授予中重复使用 LF-Tag 表达式可确保权限授予和管理方式的一致性。
+ **标签本体管理** — LF-Tag 表达式有助于管理标签本体随时间推移而发生的更改，因为您可以更新保存的表达式，而不必修改个人权限授权。

有关基于标签的访问控制的更多信息，请参阅[Lake Formation 基于标签的访问控制](tag-based-access-control.md)。

**LF-Tag 表达式创建者**  
LF-Tag 表达式创建者是有权创建和管理 LF-Tag表达式的主体。数据湖管理员可以使用 Lake Formation 控制台、CLI、API 或 SDK 添加 LF-Tag 表达式创建者。 LF-Tag 表达式创建者拥有隐含的 Lake Formation 权限，可以创建、更新和删除 LF-Tag 表达式以及向其他委托人授予 LF-Tag 表达式权限。

LF-Tag 不是数据湖管理员的表达式创建者只能获得他们创建的表达式的隐式`Alter``Drop``Describe`、、和`Grant with LF-Tag expression`权限。

数据湖管理员还可以向 LF-Tag 表达式创建者授予可授予的`Create LF-Tag expression`权限。然后， LF-Tag 表达式创建者可以向其他委托人授予创建 LF-Tag 表达式的权限。

**Topics**
+ [创建 LF-Tag 表达式所需的 IAM 权限](#tag-expression-creator-permissions)
+ [添加 LF-Tag 表达式创建者](#add-lf-tag-expression-creator)
+ [创建 LF-Tag 表达式](TBAC-creating-tag-expressions.md)
+ [更新 LF-Tag 表达式](TBAC-updating-expressions.md)
+ [删除 LF-Tag 表达式](TBAC-deleting-expressions.md)
+ [列出 LF-Tag 表达式](TBAC-listing-expressions.md)

**另请参阅**  
[管理 LF-Tag 值权限](TBAC-granting-tags.md)
[使用 LF-TBAC 方法授予数据湖权限](granting-catalog-perms-TBAC.md)
[Lake Formation 基于标签的访问控制](tag-based-access-control.md)

## 创建 LF-Tag 表达式所需的 IAM 权限
<a name="tag-expression-creator-permissions"></a>

 您必须配置权限才能允许 Lake Formation 委托人创建 LF-Tag表达式。将以下语句添加到需要成为 LF-Tag 表达式创建者的委托人的权限策略中。

**注意**  
尽管数据湖管理员拥有隐含的 Lake Formation 权限，可以创建、更新 LF-Tags 和删除 LF-Tag 表达式、分配 LF-Tags 资源以及向委托人授予 LF-Tags LF-Tag 表达权限，但数据湖管理员还需要以下 IAM 权限。

有关更多信息，请参阅 [Lake Formation 角色和 IAM 权限参考](permissions-reference.md)。

```
{
"Sid": "Transformational",
"Effect": "Allow",
    "Action": [
        "lakeformation:AddLFTagsToResource",
        "lakeformation:RemoveLFTagsFromResource",
        "lakeformation:GetResourceLFTags",
        "lakeformation:ListLFTags",
        "lakeformation:CreateLFTag",
        "lakeformation:GetLFTag",
        "lakeformation:UpdateLFTag",
        "lakeformation:DeleteLFTag",
        "lakeformation:SearchTablesByLFTags",
        "lakeformation:SearchDatabasesByLFTags",
        "lakeformation:CreateLFTagExpression",
        "lakeformation:DeleteLFTagExpression",
        "lakeformation:UpdateLFTagExpression",
        "lakeformation:GetLFTagExpression",
        "lakeformation:ListLFTagExpressions",
        "lakeformation:GrantPermissions",
        "lakeformation:RevokePermissions",
        "lakeformation:BatchGrantPermissions",
        "lakeformation:BatchRevokePermissions"
     ]
 }
```

## 添加 LF-Tag 表达式创建者
<a name="add-lf-tag-expression-creator"></a>

LF-Tag 表达式创建者可以使用 LF-TBAC 方法创建和保存可重复使用的 LF-Tag 表达式、更新标签键和值、删除表达式以及向委托人授予对数据目录资源的权限。 LF-Tag 表达式创建者也可以向委托人授予这些权限。

您可以使用 AWS Lake Formation 控制台、API 或 AWS Command Line Interface (AWS CLI) 创建 LF-Tag 表达式创建者角色。

------
#### [ console ]

**添加 LF-Tag 表达式创建者**

1. 打开 Lake Formation 控制台，网址为[https://console.aws.amazon.com/lakeformation/](https://console.aws.amazon.com/lakeformation/)。

   以数据湖管理员身份登录。

1. 在导航窗格的 “**权限**” 下，选择**LF-Tags 和权限**。

1. 选择 “**LF-Tag 表达式**” 选项卡。

1. 在**LF-Tag 表达式创建者**部分，选择**添加 LF-Tag表达式创建者**。  
![LF-Tag 表达式创建者详细信息容器，显示具有权限的 IAM 用户 datalake_user。](http://docs.aws.amazon.com/zh_cn/lake-formation/latest/dg/images/add-lf-tag-expression-creator.png)

1. 在**添加 LF-Tag 表达式创建者**页面上，选择具有创建 LF-Tag表达式所需权限的 IAM 角色或用户。

1. 选择 `Create LF-Tag expression` 权限复选框。

1. （可选）要使所选主体能够向主体授予 `Create LF-Tag expression` 权限，请选择可授予的 `Create LF-Tag expression` 权限。

1. 选择**添加**。

------
#### [ AWS CLI ]

```
aws lakeformation grant-permissions --cli-input-json file://grantCreate
{
    "Principal": {
        "DataLakePrincipalIdentifier": "arn:aws:iam::123456789012:user/tag-manager"
    },
    "Resource": {
        "Catalog": {}
    },
    "Permissions": [
        "CreateLFTagExpression"
    ],
    "PermissionsWithGrantOption": [
        "CreateLFTagExpression"
    ]
}
```

------

 LF-Tag 表达式创建者角色可以创建、更新或删除 LF-Tag表达式。


| 权限 | 说明 | 
| --- | --- | 
| Create | 拥有此权限的委托人可以在数据湖中添加 LF-Tag 表达式。 | 
| Drop | 对 LF-Tag 表达式拥有此权限的委托人可以从数据湖中删除 LF-Tag 表达式。 | 
| Alter | 对 LF-Tag 表达式拥有此权限的委托人可以更新表达式的表达 LF-Tag 式主体。 | 
| Describe | 对 LF-Tag 表达式拥有此权限的委托人可以查看 LF-Tag 表达式的内容。 | 
| Grant with LF-Tag expression | 借助此权限，接收人在授予数据或元数据访问权限时可以使用标签表达式作为资源。授予 Grant with LF-Tag expression 会隐式授予 Describe 权限。 | 
| Super | 对于 LF-Tag 表达式，该Super权限授予Describe、AlterDrop、以及向其他委托人授予标签表达式的权限。 | 

这些权限是可以授予的。已通过授予选项被授予这些权限的主体可以将这些权限授予给其他主体。