

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

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

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

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

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

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

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

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

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

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

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

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

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

 您必须配置权限以允许 Lake Formation 主体创建 LF 标签表达式。将以下语句添加到需要成为 LF 标签表达式创建者的主体的权限策略中。

**注意**  
尽管数据湖管理员具有隐式 Lake Formation 权限，可以创建、更新和删除 LF 标签和 LF 标签表达式、将 LF 标签分配给资源，以及向主体授予 LF 标签和 LF 标签表达式权限，但数据湖管理员还需要以下 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 标签表达式创建者
<a name="add-lf-tag-expression-creator"></a>

LF 标签表达式创建者可以创建和保存可重复使用的 LF 标签表达式、更新标签键和值，以及使用 LF-TBAC 方法向主体授予对 Data Catalog 资源的权限。LF 标签表达式创建者还可以向主体授予这些权限。

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

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

**添加 LF 标签表达式创建者**

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

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

1. 在导航窗格的**权限**下，选择 **LF 标签和权限**。

1. 选择 **LF 标签表达式**选项卡。

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

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

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

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

1. 选择**添加**。

------
#### [ Amazon 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 标签表达式创建者角色可以创建、更新或删除 LF 标签表达式。


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

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