

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

# 最佳实践和策略
<a name="best-practices-and-strats"></a>

这些章节提供有关标记 AWS 资源和使用标签编辑器时的最佳实践和策略的信息。



## 标记最佳实践
<a name="tag-best-practices"></a>

在为 AWS 资源创建标签策略时，请遵循最佳实践：
+ 请勿在标签中添加个人身份信息（PII）或其他机密或敏感信息。许多 AWS 服务都可以访问标签，包括账单。标签不适用于私密数据或敏感数据。
+ 对标签使用标准化的区分大小写格式，并跨所有资源类型一致地应用该格式。
+ 考虑支持多种用途的标签准则，如管理资源访问控制、成本跟踪、自动化和组织。
+ 运用自动化工具帮助您管理资源标签。标签编辑器和 [资源组标记 API](https://docs.aws.amazon.com/resourcegroupstagging/latest/APIReference/)可以对标签进行编程控制，从而能够更简单地自动管理、搜索和筛选标签与资源。
+ 使用过多的标签而不是过少的标签。
+ 请记住，更改标签以适应不断变化的业务需求很容易，但要考虑未来更改的后果。例如，更改访问控制标签意味着您还必须更新引用这些标签并控制对资源的访问的策略。
+ 您可以通过使用 AWS Organizations创建和部署标签策略，自动强制执行贵组织选择采用的标记标准。标签策略使您能够指定标记规则，这些规则可以定义有效密钥名称和对每个密钥有效的值。您可以选择仅监控，从而使您有机会评估和清理现有标签。一旦您的标签符合您选择的标准，您就可以在标签策略中启用强制执行，以防止创建不合规的标签。有关更多信息，请参阅*《AWS Organizations 用户指南》*中的[标签策略](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_tag-policies.html)。

## 标签命名最佳实践
<a name="id_tags_naming_best_practices"></a>

我们建议您在标签中使用以下几种最佳做法和命名惯例。有关更多信息，请参阅 *IAM 用户指南*中的[命名标签](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html#id_tags_rules)。

许多标签是由各种人预定义 AWS 或自动创建的 AWS 服务。很多*AWS 生成标签*的密钥名称全部使用小写字母，名称中的单词之间用连字符分隔，使用后跟冒号的前缀来标识标签的源服务。例如，请参阅以下文档：
+ `aws:ec2spot:fleet-request-id`是一个标识启动该实例的 Amazon EC2 竞价型实例请求的标签。
+ `aws:cloudformation:stack-name` 是标签，用于标识创建资源的 CloudFormation 堆栈。
+ `elasticbeanstalk:environment-name` 是标签，用于标识创建资源的应用程序。

考虑使用以下规则命名您的标签：
+ 单词全部小写。
+ 使用连字符分隔单词。
+ 使用后跟冒号的前缀来标识组织名称或缩写名称。

例如，对于名为的虚构公司 *AnyCompany*，您可以定义如下标签：
+ `anycompany:cost-center` 标识内部成本中心代码。
+ `anycompany:environment-type` 确定环境是开发、测试还是生产环境。
+ `anycompany:application-id` 标识为其创建资源的应用程序。

前缀可确保标签可以按照您的组织定义清晰识别，而不是由 AWS 您可能使用的第三方工具进行识别。使用所有小写字母和连字符作为分隔符，可以避免对如何大写标签名称产生混淆。例如，`anycompany:project-id` 比 `ANYCOMPANY:ProjectID`、`anycompany:projectID` 或 `Anycompany:ProjectId` 更易记。

### 标签命名限制和要求
<a name="tag-conventions"></a>

标签应遵循以下基本命名和使用要求：
+ 每个资源最多可以有 50 个用户创建的标签。
+ 以 `aws:` 开头的系统创建标签将保留供 AWS 使用，并且不计入此限制。您无法编辑或删除以 `aws:` 前缀开头的标签。
+ 对于每个资源，每个标签键必须是唯一的，并且每个标签键只能有一个值。
+ 在 UTF-8 中，标签密钥必须至少为 1，最多 128 个 Unicode 字符。
+ 标签值必须包含 0 到 256 个 Unicode 字符，并且以 UTF-8 格式表示。
+ 允许的字符可能因 AWS 服务而异。有关您可以使用哪些字符来标记特定 AWS 服务中的资源的信息，请参阅其文档。通常，允许使用的字符包括可用 UTF-8 表示的字母、数字和空格，以及以下字符：\$1 . : / = \$1 - @。
+ 标签键和值区分大小写。最佳实践是，决定利用标签的策略并在所有资源类型中一致地实施该策略。例如，决定是使用 `Costcenter`、`costcenter` 还是 `CostCenter`，以及是否对所有标签使用相同的约定。避免将类似的标签用于不一致的案例处理。

## 常见标签策略
<a name="tag-strategies"></a>

可以使用以下标记策略帮助识别和管理 AWS 资源。

**Topics**
+ [资源整理标签](#tag-strategies-console)
+ [成本分配标签](#tag-strategies-cost-allocation)
+ [自动化标签](#tag-strategies-automation)
+ [访问控制标签](#tag-strategies-access-control)
+ [标签监管](#tag-strategies-governance)

### 资源整理标签
<a name="tag-strategies-console"></a>

标签是在中组织 AWS 资源的好方法 AWS 管理控制台。您可以配置标签来与资源一起显示，并且可以按标签进行搜索和筛选。使用该 AWS Resource Groups 服务，您可以基于一个或多个标签或部分标签创建 AWS 资源组。您也可以根据群组在 AWS CloudFormation 堆栈中的出现情况来创建群组。使用 Resource Groups 和标签编辑器，您可以在一个位置整合和查看由多个服务、资源和区域组成的应用程序的数据。

### 成本分配标签
<a name="tag-strategies-cost-allocation"></a>

AWS Cost Explorer 和详细的账单报告可让您按标签细分 AWS 成本。通常，您可以使用*成本 center/business 单位*、*客户*或*项目*等业务标签将 AWS 成本与传统的成本分配维度关联起来。但是，成本分配报告中可以包含任何标签。这使您可以将成本与技术或安全维度（例如特定应用程序、环境或合规性项目）关联起来。

对于某些服务，您可以使用 AWS生成的`createdBy`标签进行成本分配，以帮助考虑原本可能未分类的资源。`createdBy` 标签仅适用于受支持的 AWS 服务和资源。其值包含与特定 API 或控制台事件关联的数据。有关更多信息，请参阅《AWS 账单与成本管理 用户指南》**中的 [AWS生成的成本分配标签](https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/aws-tags.html)。

### 自动化标签
<a name="tag-strategies-automation"></a>

资源或特定于服务的标签通常用于在自动化活动期间筛选资源。自动化标签用于选择加入或退出自动化任务，或识别要存档、更新或删除的资源的特定版本。例如，您可以运行自动 `start` 或 `stop` 脚本，这些脚本可在非工作时间内关闭开发环境以降低成本。在这种情况下，Amazon Elastic Compute Cloud (Amazon EC2) 实例标签是识别要退出此操作的实例的简单方法。对于查找和删除陈旧或滚动 Amazon EBS 快照的脚本，快照标签可以增加搜索条件的额外维度。 out-of-date

### 访问控制标签
<a name="tag-strategies-access-control"></a>

IAM policy 支持基于标签的条件，使您能够根据特定标签或标签值约束 IAM 权限。例如，IAM 用户或角色权限可以包括根据标签将 EC2 API 调用限制到特定环境（例如开发、测试或生产）的条件。可以使用相同的策略将 API 调用限制为特定的 Amazon Virtual Private Cloud (Amazon VPC) 网络。对基于标签的资源级 IAM 权限的支持是特定于服务的。使用基于标签的条件进行访问控制时，请务必定义和限制谁可以修改标签。有关使用标签控制 API 对 AWS 资源的访问的更多信息，请参阅《IAM 用户指南》**中的[与 IAM 配合使用的AWS 服务](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-services-that-work-with-iam.html)。

### 标签监管
<a name="tag-strategies-governance"></a>

有效的标记策略使用标准化标签，并以编程方式在资源之间 AWS 以一致的方式应用这些标签。您可以使用被动和主动方法来管理 AWS 环境中的标签。
+ **被动治理**用于使用诸如 Resource Groups Tagging API 和自定义脚本之类的工具查找未正确标记的资源。 AWS Config 规则要手动查找资源，您可以使用标签编辑器和详细账单报告。
+ **主动式治理**使用诸如 CloudFormation Service Catalog AWS Organizations、中的标签策略或 IAM 资源级权限之类的工具来确保在创建资源时一致地应用标准化标签。

  例如，您可以使用 CloudFormation `Resource Tags`属性将标签应用于资源类型。在服务目录中，您可以添加在产品启动时自动组合和应用于产品的产品组合和产品标签。更严格的主动监管形式包括自动化任务。例如，您可以使用资源组标记 API 搜索 AWS 环境的标签，或者运行脚本来隔离或删除标记不当的资源。