本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
AMS Accelerate 中的资源标记器用例
本节列出了使用资源标记器执行的常用操作。
查看资源标记器应用的标签
Resource Tagger 应用的所有标签的密钥前缀都是 ams: rt:。例如,以下标签定义生成的标签密钥为 ams: rt: sampleKey,值为 sampleValue。所有带有此前缀的标签都被视为资源标记器的一部分。
{ "Key": "sampleKey", "Value": "sampleValue" }
重要
如果您手动创建自己的带有 ams: rt: 前缀的标签,则该标签将被视为由资源标记器管理。这意味着,如果资源由 Resource Tagger 管理,但配置文件未指示应应用标记,则资源标记器会移除您手动添加的标签。如果您要手动标记由资源标记器管理的资源,请不要在标签键中使用 ams: rt: 前缀。
使用资源标记器创建标签
AMS 加速资源标记器是在 AMS Accelerate 入门期间部署在您的账户中的组件。Resource Tagger 有一组可配置的规则,用于定义如何标记您的资源,然后它会强制执行这些规则,自动在资源上添加和删除标签,以确保它们符合您的规则。
如果您想使用资源标记器来标记您的资源,请参阅加速资源标记器。
以下是资源标记器配置片段示例,它为所有亚马逊实例添加了值为 true 的 ams: rt: ams-managed 标签。 EC2 ams: rt: ams-managed 标签允许你选择让 AM S Accelerate 监控你的资源。
{ "AWS::EC2::Instance": { "SampleConfigurationBlock": { "Enabled": true, "Filter": { "Platform": "*" }, "Tags": [ { "Key": "ams:rt:ams-managed", "Value": "true" } ] } } }
警告
为新配置指定名称时要小心(SampleConfigurationBlock在提供的示例中),因为您可能会无意中使用相同的名称覆盖由 AMS 管理的配置。
阻止资源标记器修改资源
可以将资源标记器设置为只读模式,以防止其在资源上添加或删除任何标签。如果您想提供自己的标记机制,这很有用。
在只读模式下,Resource Tagger 仍会检查托管配置文件和客户配置文件中指定的标记规则,并扫描不符合这些标记规则的资源。任何不合规的资源都会显示出来。 AWS Config你可以查找的有前AMSResourceTagger-缀。 AWS Config 规则 例如,该AMSResourceTagger-EC2Instance AWS Config 规则根据配置文件评估是否为AWS::EC2::Instance资源创建了适当的标签。
Resource Tagger 此时停止,不会对您的资源进行任何更改(不添加或移除标签)。
您可以通过修改客户配置文件以将ReadOnly密钥包含在 “选项” 块中来启用只读模式。例如,以下配置文件片段显示了它的外观:
{ "Options": { "ReadOnly": true }, "AWS::EC2::Instance": { [... the rest of your configuration ...] } }
Resource Tagger 将在部署完成后立即对此新配置做出反应,并停止在资源上添加和删除标签。
注意
要重新启用标签修改,请将该ReadOnly值更改为 false,或者完全删除密钥,因为默认值为 false。
有关 “选项” 设置的更多信息语法和结构,请参阅 “下一步”。
配置文件示例
以下示例配置文件指定属于 CloudFormation 堆栈*堆栈的所有 Windows EC2 实例均由 AMS Accelerate 管理;但是,明确排除了 ID 为 i-000000000000000000001 的特定 EC2 实例。
{ "AWS::EC2::Instance": { "AMSMonitoringWindows": { "Enabled": true, "Filter": { "Fn::AND": [ { "Platform": "Windows" }, { "Tag": { "Key": "aws:cloudformation:stack-name", "Value": "stack-*" } }, { "Fn::NOT": { "InstanceId": "i-00000000000000001" } } ] }, "Tags": [ { "Key": "ams:rt:ams-managed", "Value": "true" } ] } } }
警告
为新配置指定名称时要小心(SampleConfigurationBlock在提供的示例中),因为您可能会无意中使用相同的名称覆盖由 AMS 管理的配置。
合并默认配置
默认配置文件由 AMS Accelerate 在账户注册时提供。此配置文件提供部署在您的账户中的默认规则。
虽然您无法修改默认配置文件,但您可以通过在自定义配置配置文件中指定与默认配置块相同的 C onfigurationID 的配置块来覆盖默认配置文件。如果这样做,您的配置块将覆盖默认配置块。
例如,考虑以下默认配置文档:
{ "AWS::EC2::Instance": { "AMSManagedBlock1": { "Enabled": true, "Filter": { "Platform": "Windows" }, "Tags": [{ "Key": "my-tag", "Value": "SampleValueA" }] } } }
要将此处应用的标签值从SampleValueA更改为SampleValueB,并将标签应用于所有实例,而不仅仅是 Windows 实例,您需要提供以下自定义配置文件:
{ "AWS::EC2::Instance": { "AMSManagedBlock1": { "Enabled": true, "Filter": { "Platform": "*" }, "Tags": [{ "Key": "my-tag", "Value": "SampleValueB" }] } } }
重要
请记得在更改配置后再进行部署。有关更多信息,请参阅 部署配置更改。在 SSM 中 AppConfig,您必须在创建配置后部署新版本的配置。
禁用默认配置
您可以禁用默认配置规则,方法是将具有相同 ConfigurationI d 的配置块添加到您的自定义配置文件中,并将 “启用” 字段的值设为 false。
例如,如果默认配置文件中存在以下配置:
{ "AWS::EC2::Instance": { "AMSManagedBlock1": { "Enabled": true, "Filter": { "Platform": "Windows" }, "Tags": [{ "Key": "my-tag", "Value": "SampleValueA" }] } } }
您可以通过在自定义配置文件中包含以下内容来禁用此标记规则:
{ "AWS::EC2::Instance": { "AMSManagedBlock1": { "Enabled": false } } }
重要
请记得在配置更改后进行部署;有关信息,请参阅部署配置更改。在 SSM 中 AppConfig,您必须在创建配置后部署新版本的配置。
移除资源标记器应用的标签
如果配置配置文件中不存在任何以 ams: rt 为前缀的标签,或者,如果这些标签确实存在,则筛选条件不匹配,则资源标记器会将其删除。这意味着您可以通过执行以下任一操作来移除资源标记器应用的标签:
修改定义标签的自定义配置部分。
为特定资源添加例外,使其不再与筛选条件匹配。
例如:如果 L inux 实例具有以下标签:
"Tags": [{ "Key": "ams:rt:MyOwnTag", "Value": true },{ "Key": "myTag", "Value": true }]
然后部署以下资源标记器配置文件:
{ "AWS::EC2::Instance": { "AMSMonitoringWindows": { "Enabled": true, "Filter": { "Platform": "Windows" }, "Tags": [{ "Key": "ams:rt:ams-managed", "Value": "true" }] } } }
Resource Tagger 会对新的配置更改做出反应,实例上的唯一标签变为:
"Tags": [{ "Key": "myTag", "Value": true }]
警告
为新配置指定名称时要小心(SampleConfigurationBlock在提供的示例中),因为您可能会无意中使用相同的名称覆盖由 AMS 管理的配置。
重要
请记得在配置更改后进行部署;有关信息,请参阅部署配置更改。在 SSM 中 AppConfig,您必须在创建配置后部署新版本的配置。
查看或更改资源标记器配置
可以通过的 API 查看两个 JSON 配置文件 CustomerManagedTags,即AMSManaged标签和,它们 AppConfig在入门时部署到您在 AWS 中的账户,并驻留在 AMSResource Tagger 应用程序中,以及AMSInfrastructure环境中。 AppConfig GetConfiguration
以下是此次 GetConfiguration 调用的示例:
aws appconfig get-configuration --application AMSResourceTagger --environment AMSInfrastructure --configuration AMSManagedTags --client-idANY_STRINGoutfile.json
应用程序:提供功能的 AppConfig 逻辑单元,对于资源标记器来说,这是 AMSResource标签器。
环境: AMSInfrastructure。
配置:要查看 AMS Accelerate 默认标签定义,值为 AMSManaged标签,而要查看客户标签定义,值为 CustomerManagedTags。
客户端 ID:应用程序实例的唯一标识符,可以是任何字符串。
然后可以在指定的输出文件(在本例中为 outfile.json)中查看标签定义。
然后可以在指定的输出文件(在本例中为 outfile.json)中查看警报定义。
您可以通过查看AMSInfrastructure环境中过去的部署来查看您的账户中部署了哪个版本的配置。
要覆盖标签规则,请执行以下操作:
通过使用或更新自定义配置文件,使用 for Accelerat AWS CloudFormation e 部署配置文件或者直接使用使用 AppConfig的 API,可以覆盖任何现有的标签规则。 AWS CloudFormation CreateHostedConfigurationVersion使用相同的 ConfigurationID 作为默认配置标签规则会覆盖默认规则,并取而代之的是自定义规则。
要部署对CustomerManagedTags文档所做的更改,请执行以下操作:
对自定义配置文件进行更改后,必须为其部署更改。要部署新更改, AppConfig必须使用 AWS AppConfig 控制台或 CLI 运行的 StartDeploymentAPI。
部署配置更改
自定义完成后,必须通过 AWS AppConfig StartDeploymentAPI 部署这些更改。以下说明说明如何使用进行部署 AWS CLI。此外,您还可以使用 AWS Management Console 进行这些更改。有关信息,请参阅步骤 5:部署配置。
aws appconfig start-deployment --application-id <application_id> --environment-id <environment_id> --deployment-strategy-id <deployment_strategy_id> --configuration-profile-id <configuration_profile_id> --configuration-version 1
应用程序 ID:应用程序 AMSResource Tagger 的应用程序 ID。 ListApplications通过 API 调用获取这个。
环境 ID:环境 ID; ListEnvironments通过 API 调用获取。
部署策略 ID:部署策略 ID; ListDeploymentStrategies通过 API 调用获取。
配置配置文件 ID:的配置文件 ID CustomerManagedTags; ListConfigurationProfiles通过 API 调用获取。
配置版本:您要部署的配置文件的版本。
重要
Resource Tagger 应用配置文件中指定的标签。您对资源标签所 AWS Management Console做的任何手动修改(使用或 CloudWatch CLI/SDK)都会自动恢复,因此请确保您的更改是通过资源标记器定义的。要知道哪些标签是由资源标记器创建的,请查找前缀为的标签键。ams:rt:
使用StartDeployment和 StopDeploymentAPI 操作将部署的访问权限限制为了解向目标部署新配置的责任和后果的可信用户。
要详细了解如何使用 AWS AppConfig 功能来创建和部署配置,请参阅使用 AWS 中的文档 AppConfig。
将 Terraform 配置为忽略资源标记器标签
如果您使用 Terraform 来配置资源,并且想使用资源标记器来标记资源,则资源标记器标签可能会被 Terraform 标识为漂移。
您可以使用生命周期配置块或 ignore_tags 全局配置块将 Terraform 配置为忽略所有资源标记器标签。有关更多信息,请参阅 Terraform 关于资源标记的文档资源标记。
以下示例说明如何创建全局配置以忽略所有以 Resource Tagger 标签前缀ams:rt:开头的标签:
provider "aws" { # ... potentially other configuration ... ignore_tags { key_prefixes = ["ams:rt:"] } }
查看资源标记器管理的资源数量
Resource Tagger 每小时向AMS/ResourceTagger命名空间中的 Amazon CloudWatch 发送指标。仅针对资源标记器支持的资源类型发布指标。
| 指标名称 | Dimensions | 说明 |
|---|---|---|
| ResourceCount | 组件, ResourceType | 在该区域部署的(指定资源类型的)资源数量。 单位:计数 |
| ResourcesMissingManagedTags | 组件, ResourceType | 根据配置配置文件,需要托管标签但尚未由资源标记器标记的资源(指定资源类型)的数量。 单位:计数 |
| UnmanagedResources | 组件, ResourceType | Resource Tagger 未应用托管标签的资源(指定资源类型)的数量。通常,这些资源与任何 Resource Tagger 配置块都不匹配,或者被明确排除在配置块之外。 单位:计数 |
| MatchingResourceCount | 组件、 ResourceType、 ConfigClauseName | 与 Resource Tagger 配置块相匹配的资源(指定资源类型)的数量。要使资源与配置块匹配,则必须启用该块,并且资源必须与区块的过滤器匹配。 单位:计数 |
这些指标也可以在 AM S-Resource-Tagger-Reporting-Dashboard 中以图表形式查看。要查看控制面板,请在亚马逊 CloudWatch 管理控制台中选择 AMS-Resource-Tagger-Reporting-D ashboard。默认情况下,此控制面板中的图表显示前 12 小时的数据。
AMS Accel CloudWatch erate 会向您的账户部署警报,以检测非托管资源数量的显著增加,例如,AMS 资源标记器排除在管理之外的资源。AMS Operations 将调查非托管资源的增加情况,这些资源超过三个相同类型的资源,或者在相同类型的所有资源基础上增加 50%。如果变更似乎不是故意的,AMS Operations 可能会与您联系以审查变更。