标记 Amazon EC2 资源
为了方便您管理实例、映像以及其他 Amazon EC2 资源,您可通过标签 的形式为每个资源分配元数据。标签可让您按各种标准(例如用途、所有者或环境)对 AWS 资源进行分类。这在您具有相同类型的很多资源时会很有用—您可以根据分配给特定资源的标签快速识别该资源。本主题介绍标签并说明如何创建标签。
警告
很多不同的 API 调用返回标签键及其值。拒绝访问 DescribeTags
不会自动拒绝访问其他 API 返回的标签。作为最佳实践,我们建议您不要在标签中包含敏感数据。
有关标签的基本知识
标签是为 AWS 资源分配的标记。每个标签都包含您定义的一个键 和一个可选值。
标签可让您按各种标准(例如用途、所有者或环境)对 AWS 资源进行分类。例如,您可以为账户中的 Amazon EC2 实例定义一组标签,以跟踪每个实例的所有者和堆栈级别。
下图说明了标签的工作方式。在此示例中,您为每个实例分配了两个标签 — 一个标签使用键 Owner
,另一个使用键 Stack
。每个标签都拥有相关的值。

我们建议您针对每类资源设计一组标签,以满足您的需要。使用一组连续的标签键,管理资源时会更加轻松。您可以根据添加的标签搜索和筛选资源。有关如何实施有效资源标记策略的更多信息,请参阅 标记最佳实践 AWS 白皮书。
标签对 Amazon EC2 没有任何语义意义,应严格按字符串进行解析。同时,标签不会自动分配至您的资源。您可以修改标签的密钥和值,还可以随时删除资源的标签。您可以将标签的值设为空的字符串,但是不能将其设为空值。如果您添加的标签的值与该实例上现有标签的值相同,新的值就会覆盖旧值。如果删除资源,资源的所有标签也会被删除。
注意
删除资源后,其标签可能会在短时间内在控制台、API 和 CLI 输出中仍保持可见。这些标签将逐步解除与资源的关联,并永久删除。
标记 资源
您可以标记您的账户中已存在的大多数 Amazon EC2 资源。下面的表列出了支持标记的资源。
如果您使用的是 Amazon EC2 控制台,则可以使用相关资源页面上的标签选项卡或 AWS Resource Groups 控制台中的标签编辑器,以将标签应用到资源。在您创建资源时,某些资源屏幕能让您为资源指定标签;例如,具有 Name
键并且具有您指定的值的标签。在大多数情况下,控制台会在资源创建后 (而不是在资源创建期间) 立即应用标签。控制台可能根据 Name
标签对资源进行组织,但此标签对于 Amazon EC2 服务没有任何语义意义。
如果使用的是 Amazon EC2 API、AWS CLI 或 AWS 软件开发工具包,则您可以使用 CreateTags
EC2 API 操作向现有资源应用标签。此外,某些资源创建操作允许您在创建资源时为其指定标签。如果无法在资源创建期间应用标签,系统会回滚资源创建过程。这样可确保要么创建带有标签的资源,要么根本不创建资源,即任何时候都不会创建出未标记的资源。通过在创建时标记资源,您不需要在资源创建后运行自定义标记脚本。有关允许用户在创建时标记资源的更多信息,请参阅 在创建过程中授予标记资源的权限。
下表描述了可以标记的 Amazon EC2 资源以及可在创建时使用 Amazon EC2 API、AWS CLI 或 AWS 软件开发工具包标记的资源。
Amazon EC2 资源标记支持 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
资源 | 支持标签 | 支持在创建时标记 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
AFI |
是 |
是 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
AMI |
是 |
是 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
捆绑任务 |
否 |
否 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Capacity Reservation |
是 |
是 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
运营商网关 | 是 | 是 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
客户端 VPN 终端节点 |
是 |
是 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
客户端 VPN 路由 |
否 |
否 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
客户网关 |
是 |
是 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Dedicated Host |
是 |
是 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
专用主机 预留 |
是 |
是 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
DHCP 选项 |
是 |
是 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
EBS 快照 |
是 |
是 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
EBS 卷 |
是 |
是 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
EC2 Fleet |
是 |
是 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
仅出口 Internet 网关 |
是 |
是 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
弹性 IP 地址 |
是 |
是 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Elastic Graphics 加速器 |
是 |
否 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
实例 | 是 | 是 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
实例事件窗口 | 是 | 是 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
实例存储卷 |
不适用 |
不适用 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Internet 网关 |
是 |
是 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
IP 地址池 (BYOIP) |
是 |
是 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
密钥对 |
是 |
是 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
启动模板 |
是 |
是 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
启动模板版本 |
否 |
否 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
本地网关 |
是 |
否 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
本地网关路由表 |
是 |
否 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
本地网关虚拟接口 |
是 |
否 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
本地网关虚拟接口组 |
是 |
否 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
本地网关路由表 VPC 关联 |
是 |
是 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
本地网关路由表虚拟接口组关联 |
是 |
否 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
NAT 网关 |
是 |
是 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
网络 ACL |
是 |
是 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
网络接口 |
是 |
是 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
置放群组 |
是 |
是 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
前缀列表 |
是 |
是 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Reserved Instance |
是 |
否 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Reserved Instance清单 |
否 |
否 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
路由表 |
是 |
是 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
竞价型实例集请求 |
是 |
是 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
竞价型实例请求 |
是 |
是 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
安全组 | 是 | 是 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
安全组规则 | 是 | 否 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
子网 | 是 | 是 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
流量镜像筛选 | 是 | 是 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
流量镜像会话 | 是 | 是 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
流量镜像目标 | 是 | 是 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
转换网关 |
是 |
是 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Transit Gateway 多播域 |
是 |
是 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
中转网关路由表 |
是 |
是 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
转换网关 VPC 连接 |
是 |
是 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
虚拟专用网关 |
是 |
是 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
VPC |
是 |
是 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
VPC 终端节点 |
是 |
是 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
VPC 终端节点服务 |
是 |
是 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
VPC 终端节点服务配置 |
是 |
是 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
VPC 流日志 |
是 |
是 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
VPC 对等连接 |
是 |
是 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
VPN 连接 |
是 |
是 |
您可以在创建时使用 Amazon EC2 控制台中的 Amazon EC2 启动实例向导为实例、卷、Elastic Graphics、网络接口和竞价型实例请求添加标签。您可以在创建时通过卷页面为 EBS 卷添加标签,或通过快照页面为 EBS 快照添加标签。或者,也可以使用资源创建 Amazon EC2 API(例如 RunInstances)在创建资源时应用标签。
对于支持在创建时进行标记的 Amazon EC2 API 操作,您可以在 IAM policies 中应用基于标签的资源级权限,以对可在创建时标记资源的用户和组实施精细控制。您的资源从创建开始会受到适当的保护 — 标签会立即用于您的资源,因此控制资源使用的任何基于标签的资源级权限都会立即生效。可以更准确地对您的资源进行跟踪和报告。您可以强制对新资源使用标记,可以控制对资源设置哪些标签键和值。
此外,您还可以在 IAM policies 中对 CreateTags
和 DeleteTags
Amazon EC2 API 操作应用资源级权限,从而控制对现有资源设置哪些标签键和值。有关更多信息,请参阅示例:标记资源。
有关标记资源以便于计费的更多信息,请参阅 AWS Billing 用户指南中的使用成本分配标签。
标签限制
下面是适用于标签的基本限制:
-
每个资源的标签数上限 – 50
-
对于每个资源,每个标签键都必须是唯一的,每个标签键只能有一个值。
-
最大键长度 – 128 个 Unicode 字符(采用 UTF-8 格式)
-
最大值长度 – 256 个 Unicode 字符 (采用 UTF-8 格式)
-
允许使用的字符
-
虽然 EC2 允许在其标签中使用任何字符,但其他服务具有更严格的限制。允许在不同的服务中使用的字符包括:可以使用 UTF-8 表示的字母(
a-z
、A-Z
)、数字(0-9
)和空格以及以下字符:+ - = . _ : / @
。 -
如果在实例元数据中启用实例标签,实例标签键只能使用字母 (
a-z
、A-Z
)、数字 (0-9
) 及以下字符:+ - = . , _ : @
。实例标签 keys 不能包含空格或/
,也不能只包含.
(一个句号)、..
(两个句号)或_index
。有关更多信息,请参阅使用实例元数据中的实例标签。
-
-
标签键和值区分大小写。
-
aws:
前缀专门预留供 AWS 使用。如果某个标签具有带有此标签键,则您无法编辑该标签的键或值。具有aws:
前缀的标签不计入每个资源的标签数限制。
您不能仅依据标签终止或删除资源,而必须指定资源的标识符。例如,要删除您使用名为 DeleteMe
的标签键标记的快照,您必须将 DeleteSnapshots
操作与快照的资源标识符 (如 snap-1234567890abcdef0
) 结合使用。
当您为公有或共享资源添加标签时,您分配的标签仅对您的 AWS 账户可用;其他 AWS 账户无权访问这些标签。为了对共享资源进行基于标签的访问控制,每个 AWS 账户必须分配自己的一组标签来控制对资源的访问。
您无法标记所有资源。有关更多信息,请参阅Amazon EC2 资源标记支持。
标签和访问管理
如果您使用的是 AWS Identity and Access Management (IAM),则可以控制AWS账户中的哪些用户拥有创建、编辑或删除标签的权限。有关更多信息,请参阅在创建过程中授予标记资源的权限。
您还可以使用资源标签来实现基于属性的控制 (ABAC)。您可以创建 IAM policies,基于资源标签允许操作。有关更多信息,请参阅使用资源标签控制对 EC2 资源的访问。
为资源添加标签以便于进行计费
您也可以使用标签来组织您的 AWS 账单,使其反映您的成本结构。要执行此操作,请注册以获取包含标签键值的 AWS 账户账单。有关设置带有标签的成本分配报告的更多信息,请参阅 AWS Billing 用户指南中的月度成本分配报告。如需查看组合资源的成本,请按具有相同标签键值的资源组织您的账单信息。例如,您可以将特定的应用程序名称用作几个资源的标签,然后组织账单信息,以查看在数个服务中的使用该应用程序的总成本。有关更多信息,请参阅 AWS Billing 用户指南中的使用成本分配标签。
注意
如果您已启用报告,则可以在 24 小时后查看当月的数据。
成本分配标签可指示哪些资源导致产生成本,而删除或停用资源并不总是能降低成本。例如,即使删除包含原始数据的快照,其他快照引用的快照数据也将保留。有关更多信息,请参阅 AWS Billing 用户指南中的 Amazon Elastic Block Store 卷和快照。
注意
标记的弹性 IP 地址不会显示在成本分配报告中。
通过控制台使用标签
您可以通过 Amazon EC2 控制台显示单个资源的标签,以及为资源应用标签或移除资源的标签,但一次只能处理一个资源。
您可以使用 AWS Resource Groups 控制台中的标签编辑器,来显示您在所有区域的所有 Amazon EC2 资源的标签。您可以按资源和资源类型来查看标签,并且可以查看与指定标签关联的具体资源类型。您可以一次将标签应用到多个资源和多个资源类型,以及从多个资源和多个资源类型移除标签。通过标签编辑器可以集中、统一地创建和管理标签。有关更多信息,请参阅 标记 AWS 资源用户指南。
显示标签
您可以在 Amazon EC2 控制台中显示单个资源的标签。要显示所有资源的标签,请在 AWS Resource Groups 控制台中使用标签编辑器。
显示单个资源的标签
当您在 Amazon EC2 控制台中选择特定资源页面时,它会显示这些资源列表。例如,如果您从导航窗格中选择实例,则控制台会显示您的 Amazon EC2 实例。当您从其中一个列表中选择一种资源时 (例如,实例),如果该资源支持标签,则您可以查看和管理标签。在大多数资源页面上,您可以通过选择 Tags(标签)选项卡来查看标签。
您可以在资源列表中添加列,以显示具有相同键的标签的所有值。您可以使用该列按照标签对资源列表进行分类和筛选。
显示多个资源的标签
您可以在 AWS Resource Groups 控制台
在单个资源上添加和删除标签
您可以直接在资源页面管理单个资源的标签。
向单个资源添加标签
通过以下网址打开 Amazon EC2 控制台:https://console.aws.amazon.com/ec2/
。 -
从导航栏中,选择要标记的资源所在区域。有关更多信息,请参阅资源位置。
-
在导航窗格中,选择资源类型 (例如,Instances)。
-
从资源列表中选择资源,然后选择标签选项卡。
-
选择管理标签,然后选择添加新标签。输入标签的键和值。为每个要添加的其他标签选择添加新标签。完成添加标签后,选择保存。
删除单个资源的标签
通过以下网址打开 Amazon EC2 控制台:https://console.aws.amazon.com/ec2/
。 -
从导航栏中,选择要取消标记的资源所在区域。有关更多信息,请参阅资源位置。
-
在导航窗格中,选择资源类型 (例如,Instances)。
-
从资源列表中选择资源,然后选择标签选项卡。
-
选择 Manage tags (管理标签)。对于每个要移除的标签,选择移除。完成删除标签后,选择保存。
添加和删除多个资源的标签
将标签添加到多个资源
-
在 AWS Resource Groups 控制台中打开标签编辑器(地址为 https://console.aws.amazon.com/resource-groups/tag-editor
)。 -
对于区域,选择要标记的资源所在的一个或多个区域。
-
对于资源类型,选择要标记的资源类型(例如,AWS::EC2::Instance)。
-
选择搜索资源。
-
在资源搜索结果下,选中要标记的每个资源旁的复选框。
-
选择管理选定资源的标签。
-
在编辑所有选定资源的标签下,选择添加标签,然后输入新的标签键和值。为每个要添加的其它标签选择 Add tag(添加标签)。
注意
如果您添加的新标签的标签键与现有标签的相同,则新标签将覆盖现有标签。
-
选择检查并应用标签更改。
-
选择 Apply changes to all selected (将更改应用于所有选定项)。
从多个资源移除标签
-
在 AWS Resource Groups 控制台中打开标签编辑器(地址为 https://console.aws.amazon.com/resource-groups/tag-editor
)。 -
对于区域,选择要移除标签的资源所在的区域。
-
对于资源类型,选择要移除标签的资源类型(例如,AWS::EC2::Instance)。
-
选择搜索资源。
-
在资源搜索结果下,选中要移除标签的每个资源旁的复选框。
-
选择管理选定资源的标签。
-
在编辑所有选定资源的标签下,选择要移除的标签旁的移除标签。
-
选择检查并应用标签更改。
-
选择 Apply changes to all selected (将更改应用于所有选定项)。
在启动实例时添加标签
按标签筛选资源列表
您可以基于一个或多个标签键和标签值来筛选资源列表。
在 Amazon EC2 控制台中按标签筛选资源列表
-
通过以下网址打开 Amazon EC2 控制台:https://console.aws.amazon.com/ec2/
。 -
在导航窗格中,选择资源类型 (例如,Instances)。
-
选择搜索字段。
-
在列表中的标签下,选择标签键。
-
从列表中选择相应的标签值。
-
完成后,删除筛选条件。
有关在 Amazon EC2 控制台中使用筛选条件的更多信息,请参阅 列出并筛选您的资源。
使用标签编辑器按标签筛选多个区域中的多个资源
您可以在 AWS Resource Groups 控制台中使用标签编辑器,以按标签筛选多个区域中的多个资源。有关更多信息,请参阅《标记 AWS 资源用户指南》中的 查找要标记的资源。
通过命令行使用标签
您可以在创建多个 EC2 资源时,使用创建命令的标签规范参数将标签添加到这些资源。您可以使用资源的描述命令查看资源的标签。您还可以使用以下命令为现有资源添加、更新或删除标签。
任务 | AWS CLI | AWS Tools for Windows PowerShell |
---|---|---|
添加或覆盖一个或多个标签 |
||
删除一个或多个标签 |
||
描述一个或多个标签 |
在创建资源时添加标签
以下示例说明如何在创建资源时应用标签。
注意
在命令行中输入 JSON 格式参数的方式因操作系统而异。
-
Linux、macOS 或 Unix 和 Windows PowerShell – 使用单引号(')括住 JSON 数据结构。
-
Windows – 在 Windows 命令行中使用命令时,不使用单引号。
有关更多信息,请参阅为 AWS CLI 指定参数值。
例 示例:启动实例并向实例和卷应用标签
以下 run-instances 命令启动实例,并将键为 webserver
和值为 production
的标签应用于实例。该命令还向创建的任何 EBS 卷(此示例中为根卷)应用键为 cost-center
且值为 cc123
的标签。
aws ec2 run-instances \ --image-id ami-abc12345 \ --count 1 \ --instance-type t2.micro \ --key-name MyKeyPair \ --subnet-id subnet-6e7f829e \ --tag-specifications 'ResourceType=
instance
,Tags=[{Key=webserver
,Value=production
}]' 'ResourceType=volume
,Tags=[{Key=cost-center
,Value=cc123
}]'
您可以在启动时向实例和卷应用相同的标签键和值。下面的命令启动一个实例并向此实例和创建的任何 EBS 卷应用键为 cost-center
、值为 cc123
的标签。
aws ec2 run-instances \ --image-id ami-abc12345 \ --count 1 \ --instance-type t2.micro \ --key-name MyKeyPair \ --subnet-id subnet-6e7f829e \ --tag-specifications 'ResourceType=
instance
,Tags=[{Key=cost-center,Value=cc123}]' 'ResourceType=volume,Tags=[{Key=cost-center,Value=cc123}]'
例 示例:创建卷并应用标签
下面的 create-volume 命令创建一个卷并应用两个标签:purpose=production
和 cost-center=cc123
。
aws ec2 create-volume \ --availability-zone us-east-1a \ --volume-type gp2 \ --size 80 \ --tag-specifications 'ResourceType=
volume
,Tags=[{Key=purpose
,Value=production
},{Key=cost-center
,Value=cc123
}]'
向现有资源添加标签
以下示例演示如何使用 create-tags 命令向现有资源添加标签。
例 示例:将标签添加到资源
以下示例将标签 Stack=production
添加到指定的映像,或者覆盖该 AMI 的现有标签(其中标签键为 Stack
)。如果命令成功,则不返回任何输出。
aws ec2 create-tags \ --resources ami-78a54011 \ --tags Key=
Stack
,Value=production
例 示例:将标签添加到多个资源
此示例为 AMI 和实例添加(或覆盖)两个标签。其中一个标签仅包含键 (webserver
),不包含值(我们将值设置为空字符串)。另一个标签则包含键 (stack
) 和值 (Production
)。如果命令成功,则不返回任何输出。
aws ec2 create-tags \ --resources ami-1a2b3c4d i-1234567890abcdef0 \ --tags Key=
webserver
,Value= Key=stack
,Value=Production
例 示例:使用特殊字符添加标签
此示例将标签 [Group]=test
添加到实例。方括号([
和 ]
)是特殊字符,必须对其进行转义。
如果您使用的是 Linux 或 OS X,要转义特殊字符,请用双引号 ("
) 将具有特殊字符的元素引起来,然后用单引号 ('
) 将整个键和值结构引起来。
aws ec2 create-tags \ --resources i-1234567890abcdef0 \ --tags 'Key="
[Group]
",Value=test
'
如果您使用的是 Windows,要转义特殊字符,请用双引号 (") 将具有特殊字符的元素引起来,然后在每个双引号字符前面添加反斜杠 (\
),如下所示:
aws ec2 create-tags ^ --resources i-1234567890abcdef0 ^ --tags Key=\"
[Group]
\",Value=test
如果您使用的是 Windows PowerShell,要转义特殊字符,请用双引号 ("
) 将具有特殊字符的值引起来,在每个双引号字符前面添加反斜杠 (\
),然后用单引号 ('
) 将整个键和值结构引起来,如下所示:
aws ec2 create-tags ` --resources i-1234567890abcdef0 ` --tags 'Key=\"
[Group]
\",Value=test
'
描述标记的资源
以下示例展示如何将筛选条件与 describe-instances 结合使用,以查看具有特定标签的实例。所有 EC2 描述命令都使用此语法跨单个资源类型按标签进行筛选。或者,您可以使用 describe-tags 命令按标签跨 EC2 资源类型进行筛选。
例 示例:描述具有指定标签键的实例
以下命令描述了具有 Stack
标签(无论标签的值如何)的实例。
aws ec2 describe-instances \ --filters Name=tag-key,Values=
Stack
例 示例:描述具有指定标签的实例
以下命令描述具有标签 Stack=production
的实例。
aws ec2 describe-instances \ --filters Name=tag:
Stack
,Values=production
例 示例:描述具有指定标签值的实例
以下命令描述了具有值为 production
的标签(无论标签键如何)的实例。
aws ec2 describe-instances \ --filters Name=tag-value,Values=
production
例 示例:描述具有指定标签的所有 EC2 资源
以下命令描述带有标签 Stack=Test
的所有 EC2 资源。
aws ec2 describe-tags \ --filters Name=key,Values=
Stack
Name=value,Values=Test
使用实例元数据中的实例标签
您可以从实例元数据访问实例的标签。通过从实例元数据访问标签,您无需再使用 DescribeInstances
或 DescribeTags
API 调用来检索标签信息,这可以减少每秒的 API 事务量,并允许您的标签检索随您控制的实例数量扩展。此外,在实例上运行的本地进程可以直接从实例元数据中查看实例的标签信息。
默认情况下,实例元数据中不提供标签;您必须明确允许访问。您可以在实例启动时或启动后在正在运行或停止的实例上允许访问。您还可以通过在启动模板中指定标签来允许访问标签。使用模板启动的实例允许访问实例元数据中的标签。
如果您添加或移除实例标签,则实例元数据将在实例运行期间更新,无需停止后再启动实例。
允许访问实例元数据中的标签
默认情况下,无法访问实例元数据中的实例标签。对于每个实例,您必须使用以下方法之一明确允许访问。
要允许使用控制台访问实例元数据中的标签
-
通过以下网址打开 Amazon EC2 控制台:https://console.aws.amazon.com/ec2/
。 -
在导航窗格中,选择实例。
-
选择实例,然后依次选择 Actions(操作)、Instance settings(实例设置)、Allow tags in instance metadata(允许实例元数据中的标签)。
-
要允许访问实例元数据中的标签,请选择 Allow(允许)复选框。
-
选择 Save(保存)。
要允许使用 AWS CLI 在启动时访问实例元数据中的标签
使用 run-instances 命令并将 InstanceMetadataTags
设置为 enabled
。
aws ec2 run-instances \ --image-id
ami-0abcdef1234567890
\ --instance-typec3.large
\ ... --metadata-options "InstanceMetadataTags=enabled"
要允许使用 AWS CLI 访问正在运行或已停止的实例上的实例元数据中的标签
请使用 modify-instance-metadata-options 命令,并将 --instance-metadata-tags
设置为 enabled
。
aws ec2 modify-instance-metadata-options \ --instance-id
i-123456789example
\ --instance-metadata-tags enabled
关闭对实例元数据中的标签的访问
要关闭对实例元数据中的实例标签的访问,请使用以下方法之一。您无需在启动时关闭对实例元数据上的实例标签的访问,因它处于关闭状态。
要使用控制台关闭对实例元数据中的标签的访问
-
通过以下网址打开 Amazon EC2 控制台:https://console.aws.amazon.com/ec2/
。 -
在导航窗格中,选择实例。
-
选择实例,然后依次选择 Actions(操作)、Instance settings(实例设置)、Allow tags in instance metadata(允许实例元数据中的标签)。
-
要关闭对实例元数据中的标签的访问,请清除 Allow(允许)复选框。
-
选择 Save(保存)。
要使用 AWS CLI 关闭对实例元数据中的标签的访问
请使用 modify-instance-metadata-options 命令,并将 --instance-metadata-tags
设置为 disabled
。
aws ec2 modify-instance-metadata-options \ --instance-id
i-123456789example
\ --instance-metadata-tags disabled
查看是否允许访问实例元数据中的标签
对于每个实例,您可以使用 Amazon EC2 控制台或 AWS CLI 查看是否允许从实例元数据对实例标签进行访问。
查看是否允许使用控制台访问实例元数据中的标签
通过以下网址打开 Amazon EC2 控制台:https://console.aws.amazon.com/ec2/
。 -
在导航窗格中,选择 Instances (实例),然后选择一个实例。
-
在 Details(详细信息)选项卡上,选中 Allow tags in instance metadata(允许实例元数据中的标签)字段。如果该值为 Enabled(已启用),则允许实例元数据中的标签。如果该值为 Disabled(禁用),则不允许实例元数据中的标签。
查看是否允许使用 AWS CLI 访问实例元数据中的标签
使用 describe-instances 命令并指定实例 ID。
aws ec2 describe-instances \ --instance-ids
i-1234567890abcdef0
以下示例输出已由于空间问题被截断。"InstanceMetadataTags"
参数表明是否允许实例元数据中的标签。如果该值为 enabled
,则允许实例元数据中的标签。如果该值为 disabled
,则不允许实例元数据中的标签。
{
"Reservations": [
{
"Groups": [],
"Instances": [
{
"AmiLaunchIndex": 0,
"ImageId": "ami-0abcdef1234567890",
"InstanceId": "i-1234567890abcdef0",
...
"MetadataOptions": {
"State": "applied",
"HttpTokens": "optional",
"HttpPutResponseHopLimit": 1,
"HttpEndpoint": "enabled",
"HttpProtocolIpv6": "disabled",
"InstanceMetadataTags": "enabled"
},
...
从实例元数据中检索标签
如果实例元数据中允许使用实例标签,则可以从实例元数据访问 tags/instance
类别。有关如何从实例元数据中检索标签的示例,请参阅 获取实例的实例标签。
使用 CloudFormation 为资源添加标签
对于 Amazon EC2 资源类型,您可以使用 Tags
或 TagSpecifications
属性指定标签。
以下示例使用其 Tags
属性将标签 Stack=Production
添加到 AWS::EC2::Instance。
例 示例:YAML 中的 Tags
Tags: - Key: "Stack" Value: "Production"
例 示例:JSON 中的 Tags
"Tags": [ { "Key": "Stack", "Value": "Production" } ]
以下示例使用其 TagSpecifications
属性将标签 Stack=Production
添加到 AWS::EC2::LaunchTemplate LaunchTemplateData。
例 示例:YAML 中的 TagSpecifications
TagSpecifications: - ResourceType: "instance" Tags: - Key: "Stack" Value: "Production"
例 示例:JSON 中的 TagSpecifications
"TagSpecifications": [ { "ResourceType": "instance", "Tags": [ { "Key": "Stack", "Value": "Production" } ] } ]