

# 添加标签以进行成本分配或基于属性的访问权限控制（ABAC）
<a name="tagging"></a>

AWS 标签是保存元数据的键值对。可以向 Amazon S3 资源（例如存储桶）附加标签。可以在创建资源时为其添加标签，也可以管理现有资源上的标签。在超过标准 S3 API 请求速率的情况下使用标签无需额外付费。有关更多信息，请参阅 [Amazon S3 定价](https://aws.amazon.com/s3/pricing/)。

## 标签的工作原理
<a name="how-tags-work"></a>

Amazon S3 支持两种类型的标签：
+ **AWS 生成的标签：**AWS 自动应用这些标签，您无法修改或移除它们。要了解有关 AWS 生成的标签的更多信息，请参阅 [Using AWS-generated tags](https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/aws-tags.html)。
+ **用户定义的标签：**可以将这些标签应用于 S3 资源并对其进行管理。

### 用户定义的标签
<a name="user-defined-tags"></a>

用户定义的标签是您用来为资源添加标记的标签键值对。用户定义的标签由一个必需的键和一个可选的值组成。以下是用户定义的标签的主要组成部分：

#### 标签键
<a name="tag-key"></a>

标签键是标签的名称，属于必填内容。例如，`project` 是以下标签键值对中的标签键：


| 键 | 值 | 
| --- | --- | 
| project | Trinity | 

标签键是一个区分大小写的字符串，它必须包含 1 到 128 个 Unicode 字符。键只能包含 Unicode 字母或数字、空格和以下符号：
+ `_`：下划线
+ `.`：句点
+ `:`：冒号
+ `/`：正斜杠
+ `=`：等号
+ `+`：加号
+ `@`：at 符号
+ `-`：短划线

#### 标签值
<a name="tag-value"></a>

标签值是一个可选字符串。例如，`Trinity` 是此标签键值对中的标签值：


| 键 | 值 | 
| --- | --- | 
| project | Trinity | 

标签值是一个区分大小写的字符串，它可以包含 0 到 256 个 Unicode 字符。值只能包含 Unicode 字母或数字、空格和以下符号：
+ `_`：下划线
+ `.`：句点
+ `:`：冒号
+ `/`：正斜杠
+ `=`：等号
+ `+`：加号
+ `@`：at 符号
+ `-`：短划线

有关用户定义的标签中支持的字符以及其它限制的详细信息，请参阅《AWS 账单与成本管理 User Guide》**中的 [User-Defined Tag Restrictions](https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/custom-tags.html#allocation-tag-restrictions)。

#### 标签集
<a name="tag-set"></a>

每个 S3 资源都有一个*标签集*，其中包含分配给该存储桶的所有标签键和值对。标签集可以为空，也可以包含多达 50 个用户定义的标签，但为对象添加标签的情况除外。对象最多只能有 10 个标签。

虽然每个键在标签集中必须是唯一的，但您可以多次使用相同的值。例如，您可以为以下两个标签键使用相同的值 `Trinity`：


| 键 | 值 | 
| --- | --- | 
| project | Trinity | 
| cost-center | Trinity | 

当要添加的标签与现有标签具有相同的键时，则新值会覆盖旧值。

AWS 不会对您的标签应用任何语义意义。我们严格按字符串解释标签。

要添加、列出、修改或删除标签，您可以使用 Amazon S3 控制台、AWS 命令行界面（AWS CLI）或 Amazon S3 API。

## 使用标签的常用方法
<a name="common-ways-to-use-tags"></a>

使用 S3 资源上的标签来执行以下操作：

1. **成本分配**：在 AWS 账单与成本管理中按存储桶标签跟踪存储成本。

1. **基于属性的访问权限控制（ABAC）**：根据标签扩展访问权限并授予对 S3 资源的访问权限。

**注意**  
您可以将相同的标签同时用于成本分配和访问权限控制。

### 将标签用于成本分配
<a name="using-tags-for-cost-allocation"></a>

通过将标签应用于 S3 资源并激活这些标签来进行成本分配，跟踪 Amazon S3 存储成本。

开始跟踪成本：

1. 向 S3 资源添加标签或使用现有标签。例如，您可以使用标识一个项目或一组项目的标签来标记存储桶。

1. 在 AWS 账单与成本管理控制台中激活标签来进行成本分配。请参阅《AWS 账单与成本管理 User Guide》**中的 [Activating user-defined cost allocation tags](https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/activating-tags.html)。您可以激活用户定义的标签或 AWS 生成的标签。有关更多信息，请参阅 [Organizing and tracking costs using AWS cost allocation tags](https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/cost-alloc-tags.html)。

AWS 使用激活的标签在各种账单和成本管理工具中整理资源成本，例如：
+ **成本分配报告**

  提供按您激活的标签整理的成本概要视图。有关更多信息，请参阅《AWS Billing User Guide》**中的 [Using the monthly cost allocation report](https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/configurecostallocreport.html)。
+ **成本和使用情况报告（CUR）**

  提供最详细的一组 AWS 成本和使用情况数据，包括基于标签的成本明细。有关更多信息，请参阅《AWS Data Export User Guide》**中的 [What are AWS Cost and Usage Reports?](https://docs.aws.amazon.com/cur/latest/userguide/what-is-cur.html)

#### 支持使用标签跟踪成本的 Amazon S3 资源
<a name="cost-resources"></a>

以下 Amazon S3 资源支持使用标签跟踪存储成本。
+ **S3 通用存储桶**

  有关更多信息，请参阅 [将标签与 S3 通用存储桶结合使用](buckets-tagging.md)。
+ **S3 目录存储桶**

  有关更多信息，请参阅 [将标签与 S3 目录存储桶结合使用](directory-buckets-tagging.md)。
+ **S3 表类数据存储服务**

  有关更多信息，请参阅 [将标签与 S3 表结合使用](table-tagging.md)。
+ **S3 向量索引**

  有关更多信息，请参阅 [将标签与 S3 向量索引结合使用](vector-index-tagging.md)。

### 使用标签进行基于属性的访问权限控制（ABAC）
<a name="using-tags-for-abac"></a>

基于属性的访问权限控制（ABAC）是一种授权策略，该策略基于属性（即标签）来定义权限。可以将标签附加到 AWS Identity and Access Management（IAM）实体（用户或角色）以及 AWS 资源，如 Amazon S3 接入点和目录存储桶。然后，您可以在访问权限控制策略中使用基于标签的条件来控制对这些资源的权限，以便在满足这些条件时允许或拒绝操作。

借助 ABAC，可以在 AWS 组织、IAM 和 S3 资源策略中使用基于标签的条件键。对于企业，Amazon S3 中的 ABAC 支持跨多个 AWS 账户进行授权。

在 IAM 策略中，可以使用[条件键](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-tagkeys)，根据存储桶的标签来控制对 S3 资源的访问权限。

**支持的条件键**  
可以对所有支持 ABAC 的 Amazon S3 资源使用以下 AWS 条件键。
+ `aws:ResourceTag/key-name`
+ `aws:RequestTag/key-name`
+ `aws:TagKeys`

某些资源支持其它 Amazon S3 条件键。有关可用于 ABAC 的条件键的完整列表和示例策略，请参阅以下有关为资源添加标签的主题。

#### 支持 ABAC 的 Amazon S3 资源
<a name="abac-resources"></a>

以下 Amazon S3 资源支持使用标签来进行基于属性的访问权限控制（ABAC）。
+ **S3 通用存储桶**

  有关更多信息，请参阅 [将标签与 S3 通用存储桶结合使用](buckets-tagging.md)。
+ **接入点**

  有关更多信息，请参阅[将标签与通用存储桶的 S3 接入点结合使用](access-points-tagging.md)和[将标签与目录存储桶的 S3 接入点结合使用](access-points-db-tagging.md)。
+ **批量操作作业**

  有关更多信息，请参阅 [使用标签控制访问和标记任务](batch-ops-job-tags.md)。
+ **S3 目录存储桶**

  有关更多信息，请参阅 [将标签与 S3 目录存储桶结合使用](directory-buckets-tagging.md)。
+ **Objects**

  有关更多信息，请参阅 [使用标签对对象进行分类](object-tagging.md)。
+ **S3 访问权限管控**

  有关更多信息，请参阅 [管理 S3 访问权限管控的标签](access-grants-tagging.md)。
+ **S3 Storage Lens 组**

  有关更多信息，请参阅 [使用 Storage Lens 组管理 AWS 资源标签](storage-lens-groups-manage-tags.md)。
+ **S3 表存储桶和表**

  有关更多信息，请参阅[将标签与 S3 表存储桶结合使用](table-bucket-tagging.md)和[将标签与 S3 表结合使用](table-tagging.md)。
+ **S3 向量存储桶和索引**

  有关更多信息，请参阅[将标签与 S3 向量存储桶结合使用](s3-vectors-tags.md)和[将标签与 S3 向量索引结合使用](vector-index-tagging.md)。

## 规划添加标签策略
<a name="tagging-strategy"></a>

我们建议您针对每类资源设计一组标签，以满足您的需要。使用一组连续的标签键，管理资源时会更加轻松。您可以根据添加的标签搜索和筛选资源。有关如何实施有效资源标记策略的更多信息，请参阅 [标记最佳实践 AWS 白皮书](https://docs.aws.amazon.com/whitepapers/latest/tagging-best-practices/tagging-best-practices.html)。

**为 Amazon S3 资源添加标签的最佳实践**  
在使用标签时，建议您遵循以下最佳实践：
+ 记录组织中所有团队所遵循的标签使用惯例。具体而言，请确保名称既具有描述性又保持一致。例如，对格式 `environment:prod` 进行标准化，而不是使用 `env:production` 标记某些资源。
**重要**  
请勿在标签中存储个人身份信息（PII）或其他机密或敏感信息。
+ 自动添加标记以确保一致性。例如，可以在 CloudFormation 模板中加入标签。在使用模板创建资源时，系统会自动标记资源。
+ 仅在必要时使用标签。避免不必要的标签激增和复杂性。
+ 定期检查标签的相关性和准确性。根据需要删除或修改已过时的标签。
+ 考虑在 AWS 管理控制台中使用 AWS 标签编辑器来创建标签。可以使用标签编辑器同时向多个受支持的 AWS 资源（包括 Amazon S3 资源）添加标签。有关更多信息，请参阅 *AWS Resource Groups 用户指南*中的[标签编辑器](https://docs.aws.amazon.com/ARG/latest/userguide/tag-editor.html)。

## 管理 Amazon S3 资源的标签
<a name="manage-tags"></a>

有关如何管理 Amazon S3 资源的标签的更多信息，请参阅以下内容：
+ [将标签与通用存储桶的 S3 接入点结合使用](access-points-tagging.md)
+ [将标签与目录存储桶的 S3 接入点结合使用](access-points-db-tagging.md)
+ [使用标签控制访问和标记任务](batch-ops-job-tags.md)
+ [将标签与 S3 目录存储桶结合使用](directory-buckets-tagging.md)
+ [使用成本分配 S3 存储桶标签](CostAllocTagging.md)
+ [使用标签对对象进行分类](object-tagging.md)
+ [管理 S3 访问权限管控的标签](access-grants-tagging.md)
+ [使用 Storage Lens 组管理 AWS 资源标签](storage-lens-groups-manage-tags.md)
+ [将标签与 S3 通用存储桶结合使用](buckets-tagging.md).
+ [将标签与 S3 向量存储桶结合使用](s3-vectors-tags.md)
+ [将标签与 S3 向量索引结合使用](vector-index-tagging.md)