标记 Amazon EC2 资源 - Amazon Elastic Compute Cloud
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

标记 Amazon EC2 资源

为了方便您管理实例、映像以及其他 Amazon EC2 资源,您可通过标签 的形式为每个资源分配元数据。标签可让您按各种标准(例如用途、所有者或环境)对 Amazon 资源进行分类。这在您具有相同类型的很多资源时会很有用 – 您可以根据分配给特定资源的标签快速识别该资源。本主题介绍标签并说明如何创建标签。

警告

很多不同的 API 调用返回标签键及其值。拒绝访问 DescribeTags 不会自动拒绝访问其他 API 返回的标签。作为最佳实践,我们建议您不要在标签中包含敏感数据。

有关标签的基本知识

标签是为Amazon资源分配的标记。每个标签都包含您定义的一个 和一个可选

标签可让您按各种标准(例如用途、所有者或环境)对 Amazon 资源进行分类。例如,您可以为账户中的 Amazon EC2 实例定义一组标签,以跟踪每个实例的所有者和堆栈级别。

下图说明了标签的工作方式。在此示例中,您为每个实例分配了两个标签 — 一个标签使用键 Owner,另一个使用键 Stack。每个标签都拥有相关的值。


					标签示例

我们建议您针对每类资源设计一组标签,以满足您的需要。使用一组连续的标签键,管理 资源时会更加轻松。您可以根据添加的标签搜索和筛选资源。有关如何实施有效资源标记策略的更多信息,请参阅 标记最佳实践 Amazon 白皮书

标签对 Amazon EC2 没有任何语义意义,应严格按字符串进行解析。同时,标签不会自动分配至您的资源。您可以修改标签的密钥和值,还可以随时删除资源的标签。您可以将标签的值设为空的字符串,但是不能将其设为空值。如果您添加的标签的值与该实例上现有标签的值相同,新的值就会覆盖旧值。如果删除资源,资源的所有标签也会被删除。

注意

删除资源后,其标签可能会在短时间内在控制台、API 和 CLI 输出中仍保持可见。这些标签将逐步解除与资源的关联,并永久删除。

标记 资源

您可以标记您的账户中已存在的大多数 Amazon EC2 资源。下面的列出了支持标记的资源。

如果您使用的是 Amazon EC2 控制台,则可以使用相关资源页面上的标签选项卡或 Amazon Resource Groups 控制台中的标签编辑器,以将标签应用到资源。在您创建资源时,某些资源屏幕能让您为资源指定标签;例如,具有 Name 键并且具有您指定的值的标签。在大多数情况下,控制台会在资源创建后 (而不是在资源创建期间) 立即应用标签。控制台可能根据 Name 标签对资源进行组织,但此标签对于 Amazon EC2 服务没有任何语义意义。

如果使用的是 Amazon EC2 API、Amazon CLI 或 Amazon 软件开发工具包,则您可以使用 CreateTags EC2 API 操作向现有资源应用标签。此外,某些资源创建操作允许您在创建资源时为其指定标签。如果无法在资源创建期间应用标签,系统会回滚资源创建过程。这样可确保要么创建带有标签的资源,要么根本不创建资源,即任何时候都不会创建出未标记的资源。通过在创建时标记资源,您不需要在资源创建后运行自定义标记脚本。有关允许用户在创建时标记资源的更多信息,请参阅 在创建过程中授予标记资源的权限

下表描述了可以标记的 Amazon EC2 资源以及可在创建时使用 Amazon EC2 API、Amazon CLI 或 Amazon 软件开发工具包标记的资源。

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 中对 CreateTagsDeleteTags Amazon EC2 API 操作应用资源级权限,从而控制对现有资源设置哪些标签键和值。有关更多信息,请参阅示例:标记资源

有关标记资源以便于计费的更多信息,请参阅 Amazon Billing 用户指南中的使用成本分配标签

标签限制

下面是适用于标签的基本限制:

  • 每个资源的标签数上限 – 50

  • 对于每个资源,每个标签键都必须是唯一的,每个标签键只能有一个值。

  • 最大键长度 – 128 个 Unicode 字符(采用 UTF-8 格式)

  • 最大值长度 – 256 个 Unicode 字符(采用 UTF-8 格式)

  • 允许使用的字符

    • 虽然 EC2 允许在其标签中使用任何字符,但其他 Amazon 服务具有更严格的限制。允许在所有 Amazon 服务中使用的字符包括:可以使用 UTF-8 表示的字母(a-zA-Z)、数字(0-9)和空格以及以下字符:+ - = . _ : / @

    • 如果在实例元数据中启用实例标签,实例标签只能使用字母 (a-zA-Z)、数字 (0-9) 及以下字符:+ - = . , _ : @。实例标签 keys 不能包含空格或 /,也不能只包含 .(一个句号)、..(两个句号)或 _index。有关更多信息,请参阅使用实例元数据中的实例标签

  • 标签键和值区分大小写。

  • aws: 前缀专门预留供 Amazon 使用。如果某个标签具有带有此标签键,则您无法编辑该标签的键或值。具有 aws: 前缀的标签不计入每个资源的标签数限制。

您不能仅依据标签终止或删除资源,而必须指定资源的标识符。例如,要删除您使用名为 DeleteMe 的标签键标记的快照,您必须将 DeleteSnapshots 操作与快照的资源标识符 (如 snap-1234567890abcdef0) 结合使用。

当您为公有或共享资源添加标签时,您分配的标签仅对您的 Amazon 账户可用;其他 Amazon 账户无权访问这些标签。为了对共享资源进行基于标签的访问控制,每个 Amazon 账户必须分配自己的一组标签来控制对资源的访问。

您无法标记所有资源。有关更多信息,请参阅Amazon EC2 资源标记支持

标签和访问管理

如果您使用的是 Amazon Identity and Access Management (IAM),则可以控制Amazon账户中的哪些用户拥有创建、编辑或删除标签的权限。有关更多信息,请参阅在创建过程中授予标记资源的权限

您还可以使用资源标签来实现基于属性的控制 (ABAC)。您可以创建 IAM policies,基于资源标签允许操作。有关更多信息,请参阅使用资源标签控制对 EC2 资源的访问

为资源添加标签以便于进行计费

您也可以使用标签来组织您的 Amazon 账单,使其反映您的成本结构。要执行此操作,请注册以获取包含标签键值的 Amazon 账户账单。有关设置带有标签的成本分配报告的更多信息,请参阅 Amazon Billing 用户指南中的月度成本分配报告。如需查看组合资源的成本,请按具有相同标签键值的资源组织您的账单信息。例如,您可以将特定的应用程序名称用作几个资源的标签,然后组织账单信息,以查看在数个服务中的使用该应用程序的总成本。有关更多信息,请参阅 Amazon Billing 用户指南中的使用成本分配标签

注意

如果您已启用报告,则可以在 24 小时后查看当月的数据。

成本分配标签可指示哪些资源导致产生成本,而删除或停用资源并不总是能降低成本。例如,即使删除包含原始数据的快照,其他快照引用的快照数据也将保留。有关更多信息,请参阅 Amazon Billing 用户指南中的 Amazon Elastic Block Store 卷和快照

注意

标记的弹性 IP 地址不会显示在成本分配报告中。

通过控制台使用标签

您可以通过 Amazon EC2 控制台显示单个资源的标签,以及为资源应用标签或移除资源的标签,但一次只能处理一个资源。

您可以使用 Amazon Resource Groups 控制台中的标签编辑器,来显示您在所有区域的所有 Amazon EC2 资源的标签。您可以按资源和资源类型来查看标签,并且可以查看与指定标签关联的具体资源类型。您可以一次将标签应用到多个资源和多个资源类型,以及从多个资源和多个资源类型移除标签。通过标签编辑器可以集中、统一地创建和管理标签。有关更多信息,请参阅 标记 Amazon 资源用户指南

显示标签

您可以在 Amazon EC2 控制台中显示单个资源的标签。要显示所有资源的标签,请在 Amazon Resource Groups 控制台中使用标签编辑器

显示单个资源的标签

当您在 Amazon EC2 控制台中选择特定资源页面时,它会显示这些资源列表。例如,如果您从导航窗格中选择实例,则控制台会显示您的 Amazon EC2 实例。当您从其中一个列表中选择一种资源时 (例如,实例),如果该资源支持标签,则您可以查看和管理标签。在大多数资源页面上,您可以通过选择 Tags(标签)选项卡来查看标签。

您可以在资源列表中添加列,以显示具有相同键的标签的所有值。您可以使用该列按照标签对资源列表进行分类和筛选。

New console
在资源列表中添加列以显示标签
  1. 在 EC2 控制台中,选择页面右上角齿轮形状的首选项图标。

  2. 首选项对话框中,对于标签列(左下部),选择一个或多个标签键,然后选择确认

Old console

资源列表中添加新列以显示标签的方法有两种:

  • Tags 选项卡上,选择 Show Column。控制台中添加了一个新列。

  • 选择 Show/Hide Columns 齿轮状图标,然后在 Show/Hide Columns 对话框中的 Your Tag Keys 下选择标签键。

显示多个资源的标签

您可以在 Amazon Resource Groups 控制台 中使用标签编辑器显示多个资源的标签。有关更多信息,请参阅 标记 Amazon 资源用户指南

在单个资源上添加和删除标签

您可以直接在资源页面管理单个资源的标签。

向单个资源添加标签
  1. 通过以下网址打开 Amazon EC2 控制台:https://console.aws.amazon.com/ec2/

  2. 从导航栏中,选择要标记的资源所在区域。有关更多信息,请参阅资源位置

  3. 在导航窗格中,选择资源类型 (例如,Instances)。

  4. 从资源列表中选择资源,然后选择标签选项卡。

  5. 选择管理标签,然后选择添加新标签。输入标签的键和值。为每个要添加的其他标签选择添加新标签。完成添加标签后,选择保存

删除单个资源的标签
  1. 通过以下网址打开 Amazon EC2 控制台:https://console.aws.amazon.com/ec2/

  2. 从导航栏中,选择要取消标记的资源所在区域。有关更多信息,请参阅资源位置

  3. 在导航窗格中,选择资源类型 (例如,Instances)。

  4. 从资源列表中选择资源,然后选择标签选项卡。

  5. 选择 Manage tags (管理标签)。对于每个要移除的标签,选择移除。完成删除标签后,选择保存

添加和删除多个资源的标签

将标签添加到多个资源
  1. 在 Amazon Resource Groups 控制台中打开标签编辑器(地址为 https://console.aws.amazon.com/resource-groups/tag-editor)。

  2. 对于区域,选择要标记的资源所在的一个或多个区域。

  3. 对于资源类型,选择要标记的资源类型(例如,AWS::EC2::Instance)。

  4. 选择搜索资源

  5. 资源搜索结果下,选中要标记的每个资源旁的复选框。

  6. 选择管理选定资源的标签

  7. 编辑所有选定资源的标签下,选择添加标签,然后输入新的标签键和值。为每个要添加的其它标签选择 Add tag(添加标签)。

    注意

    如果您添加的新标签的标签键与现有标签的相同,则新标签将覆盖现有标签。

  8. 选择检查并应用标签更改

  9. 选择 Apply changes to all selected (将更改应用于所有选定项)

从多个资源移除标签
  1. 在 Amazon Resource Groups 控制台中打开标签编辑器(地址为 https://console.aws.amazon.com/resource-groups/tag-editor)。

  2. 对于区域,选择要移除标签的资源所在的区域。

  3. 对于资源类型,选择要移除标签的资源类型(例如,AWS::EC2::Instance)。

  4. 选择搜索资源

  5. 资源搜索结果下,选中要移除标签的每个资源旁的复选框。

  6. 选择管理选定资源的标签

  7. 编辑所有选定资源的标签下,选择要移除的标签旁的移除标签

  8. 选择检查并应用标签更改

  9. 选择 Apply changes to all selected (将更改应用于所有选定项)

在启动实例时添加标签

New console
使用启动实例向导添加标签
  1. 在导航栏中,选择的实例的区域。选择该内容是非常重要的,因为可以在区域之间共享某些 Amazon EC2 资源,而无法共享其他资源。选择满足您的需求的区域。有关更多信息,请参阅资源位置

  2. 选择启动实例

  3. Name and tags(名称和标签)下,您可以为实例输入描述性名称并指定标签。

    实例名称是一个标签,其中密钥为 Name(名称),而值为您指定的名称。您可以标记实例、卷、弹性图形和网络接口。对于竞价型实例,您只能标记竞价型实例请求。

    指定实例名称和其它标签为可选项。

    • 对于 Name(名称),为实例输入一个描述性名称。如果您没有指定名称,则可以通过其 ID 标识实例,该 ID 将在您启动实例时自动生成。

    • 要添加其它标签,请选择 Add additional tags(添加其它标签)。选择 Add tag(添加标签),然后输入密钥和值,然后选择要标记的资源类型。为每个要添加的其它标签选择 Add tag(添加标签)。

  4. Application and OS Images (Amazon Machine Image) [应用程序和操作系统镜像(Amazon Machine Image)] 下,为您的实例选择操作系统(OS),然后选择 AMI。有关更多信息,请参阅应用程序和操作系统镜像 (Amazon Machine Image)

  5. (可选)在密钥对(登录)下,为密钥对名称选择一个现有密钥对或新建一个密钥对。

  6. 将所有其他字段保持为其默认值,或为所需的实例配置选择特定值。有关字段的信息,请参阅 使用定义的参数启动实例

  7. Summary(摘要)面板中,查看配置,然后选择 Launch instance(启动实例)。

Old console
使用启动实例向导添加标签
  1. 在导航栏中,选择的实例的区域。选择该内容是非常重要的,因为可以在区域之间共享某些 Amazon EC2 资源,而无法共享其他资源。选择满足您的需求的区域。有关更多信息,请参阅资源位置

  2. 选择启动实例

  3. Choose an Amazon Machine Image (AMI) (选择 Amazon Machine Image (AMI)) 页面会显示称为“Amazon Machine Image (AMI)”的基本配置的列表。选择要使用的 AMI,然后选择 Select。有关更多信息,请参阅查找 Linux AMI

  4. Configure Instance Details 页面上,根据需要配置实例设置,然后选择 Next: Add Storage

  5. Add Storage (添加存储) 页面上,您可以为实例指定额外的存储卷。完成后,选择 Next: Add Tags

  6. Add Tags 页面上,为实例、卷或两者指定标签。选择 Add another tag 以向您的实例添加多个标签。完成时选择 Next: Configure Security Group(下一步:配置安全组)。

  7. Configure Security Group (配置安全组) 页面上,您可以从您所拥有的现有安全组中进行选择,或根据向导的指示创建新的安全组。完成操作后,选择 Review and Launch

  8. 检视您的设置。在您确认选择无误之后,选择 Launch。选择现有密钥对或创建新的密钥对,选中确认复选框,然后选择 Launch Instances

按标签筛选资源列表

您可以基于一个或多个标签键和标签值来筛选资源列表。

在 Amazon EC2 控制台中按标签筛选资源列表
  1. 通过以下网址打开 Amazon EC2 控制台:https://console.aws.amazon.com/ec2/

  2. 在导航窗格中,选择资源类型 (例如,Instances)。

  3. 选择搜索字段。

  4. 在列表中的标签下,选择标签键。

  5. 从列表中选择相应的标签值。

  6. 完成后,删除筛选条件。

有关在 Amazon EC2 控制台中使用筛选条件的更多信息,请参阅 列出并筛选您的资源

使用标签编辑器按标签筛选多个区域中的多个资源

您可以在 Amazon Resource Groups 控制台中使用标签编辑器,以按标签筛选多个区域中的多个资源。有关更多信息,请参阅《标记 Amazon 资源用户指南》中的 查找要标记的资源

通过命令行使用标签

您可以在创建多个 EC2 资源时,使用创建命令的标签规范参数将标签添加到这些资源。您可以使用资源的描述命令查看资源的标签。您还可以使用以下命令为现有资源添加、更新或删除标签。

任务 Amazon CLI Amazon Tools for Windows PowerShell

添加或覆盖一个或多个标签

create-tags

New-EC2Tag

删除一个或多个标签

delete-tags

Remove-EC2Tag

描述一个或多个标签

describe-tags

Get-EC2Tag

在创建资源时添加标签

以下示例说明如何在创建资源时应用标签。

注意

在命令行中输入 JSON 格式参数的方式因操作系统而异。

  • Linux、macOS 或 Unix 和 Windows PowerShell – 使用单引号(')括住 JSON 数据结构。

  • Windows – 在 Windows 命令行中使用命令时,不使用单引号。

有关更多信息,请参阅为 Amazon 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=productioncost-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

使用实例元数据中的实例标签

您可以从实例元数据访问实例的标签。通过从实例元数据访问标签,您无需再使用 DescribeInstancesDescribeTags API 调用来检索标签信息,这可以减少每秒的 API 事务量,并允许您的标签检索随您控制的实例数量扩展。此外,在实例上运行的本地进程可以直接从实例元数据中查看实例的标签信息。

默认情况下,实例元数据中不提供标签;您必须明确允许访问。您可以在实例启动时或启动后在正在运行或停止的实例上允许访问。您还可以通过在启动模板中指定标签来允许访问标签。使用模板启动的实例允许访问实例元数据中的标签。

如果您添加或移除实例标签,则实例元数据将在实例运行期间更新,无需停止后再启动实例。

允许访问实例元数据中的标签

默认情况下,无法访问实例元数据中的实例标签。对于每个实例,您必须使用以下方法之一明确允许访问。

要允许使用控制台访问实例元数据中的标签
  1. 通过以下网址打开 Amazon EC2 控制台:https://console.aws.amazon.com/ec2/

  2. 在导航窗格中,选择实例

  3. 选择实例,然后依次选择 Actions(操作)、Instance settings(实例设置)、Allow tags in instance metadata(允许实例元数据中的标签)。

  4. 要允许访问实例元数据中的标签,请选择 Allow(允许)复选框。

  5. 选择保存

要允许使用 Amazon CLI 在启动时访问实例元数据中的标签

使用 run-instances 命令并将 InstanceMetadataTags 设置为 enabled

aws ec2 run-instances \ --image-id ami-0abcdef1234567890 \ --instance-type c3.large \ ... --metadata-options "InstanceMetadataTags=enabled"
要允许使用 Amazon CLI 访问正在运行或已停止的实例上的实例元数据中的标签

请使用 modify-instance-metadata-options 命令,并将 --instance-metadata-tags 设置为 enabled

aws ec2 modify-instance-metadata-options \ --instance-id i-123456789example \ --instance-metadata-tags enabled

关闭对实例元数据中的标签的访问

要关闭对实例元数据中的实例标签的访问,请使用以下方法之一。您无需在启动时关闭对实例元数据上的实例标签的访问,因它处于关闭状态。

要使用控制台关闭对实例元数据中的标签的访问
  1. 通过以下网址打开 Amazon EC2 控制台:https://console.aws.amazon.com/ec2/

  2. 在导航窗格中,选择实例

  3. 选择实例,然后依次选择 Actions(操作)、Instance settings(实例设置)、Allow tags in instance metadata(允许实例元数据中的标签)。

  4. 要关闭对实例元数据中的标签的访问,请清除 Allow(允许)复选框。

  5. 选择保存

要使用 Amazon 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 控制台或 Amazon CLI 查看是否允许从实例元数据对实例标签进行访问。

查看是否允许使用控制台访问实例元数据中的标签
  1. 通过以下网址打开 Amazon EC2 控制台:https://console.aws.amazon.com/ec2/

  2. 在导航窗格中,选择 Instances (实例),然后选择一个实例。

  3. Details(详细信息)选项卡上,选中 Allow tags in instance metadata(允许实例元数据中的标签)字段。如果该值为 Enabled(已启用),则允许实例元数据中的标签。如果该值为 Disabled(禁用),则不允许实例元数据中的标签。

查看是否允许使用 Amazon 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 资源类型,您可以使用 TagsTagSpecifications 属性指定标签。

以下示例使用其 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" } ] } ]