

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 適用於 Accelerate 的標籤管理工具
<a name="acc-tag-tools"></a>

**內容**
+ [加速資源交錯](acc-resource-tagger.md)
+ [使用 CloudFormation 為 AMS Accelerate 建立標籤](acc-tag-how-works-cfn.md)
+ [使用 Terraform 為 AMS Accelerate 建立標籤](acc-tag-tools-terraform.md)

# 加速資源交錯
<a name="acc-resource-tagger"></a>

 使用 Resource Tagger，您可以指定規則來管理資源在帳戶中的 AWS 標記方式。加入帳戶時，AMS Accelerate 會部署您的標記政策，以確保受管帳戶中的資源已加上標記。

**Contents**
+ [什麼是 Resource Tagger？](#acc-rt-what-is)
+ [Resource Tagger 的運作方式](#acc-rt-how-works)
+ [AMS Accelerate 中的資源交錯器組態設定檔](acc-tag-tools-profiles.md)
  + [語法和結構](acc-tag-tools-profiles.md#acc-rt-config-doc-format)
+ [AMS Accelerate 中的資源交錯使用案例](acc-rt-using.md)
  + [檢視由 Resource Tagger 套用的標籤](acc-rt-using.md#acc-rt-using-view-tags)
  + [使用 Resource Tagger 建立標籤](acc-rt-using.md#acc-tag-how-works-rt)
  + [防止 Resource Tagger 修改資源](acc-rt-using.md#acc-rt-preventing-rt-changes)
  + [範例組態描述檔](acc-rt-using.md#acc-rt-using-ex-config-doc)
  + [合併預設組態](acc-rt-using.md#acc-rt-using-merge-default-config)
  + [停用預設組態](acc-rt-using.md#acc-rt-using-disable-default-config)
  + [移除 Resource Tagger 套用的標籤](acc-rt-using.md#acc-rt-remove-tags)
  + [檢視或變更 Resource Tagger 組態](acc-rt-using.md#acc-rt-make-changes)
  + [部署組態變更](acc-rt-using.md#acc-rt-deploy-changes)
  + [設定 Terraform 以忽略 Resource Tagger 標籤](acc-rt-using.md#acc-rt-ignore-tags)
  + [檢視 Resource Tagger 管理的資源數量](acc-rt-using.md#acc-rt-number-of-resources)

## 什麼是 Resource Tagger？
<a name="acc-rt-what-is"></a>

Resource Tagger 是一項 AMS Accelerate 服務，可讓您指定規則來管理帳戶中 AWS 資源的標記方式。它旨在為您提供標籤如何 AWS 套用至資源的完整可見性。

Resource Tagger 會根據您在組態設定檔中指定的標記規則，自動在支援 AWS 的資源上建立、更新和刪除標籤。例如，您可以指定將標籤套用至 Amazon EC2 執行個體集合的規則，指出它們應該由 AMS Accelerate 管理，這會導致執行個體受到監控或備份。您可以使用像這樣的標籤，根據 AWS AppConfig 組態設定檔中定義的政策來識別資源的 AWS 合規狀態。如需詳細資訊，請參閱[AWS AppConfig](https://docs.aws.amazon.com/appconfig/latest/userguide/what-is-appconfig.html)。

AMS Accelerate 提供預設的受管標記組態，讓您可以讓 AMS Accelerate 監控資源。您可以定義哪些資源應該由 AMS Accelerate 管理，而受管標記規則可確保具有適當標籤的資源受到 AMS Accelerate 的監控。

使用 Resource Tagger，如果您選擇覆寫或停用預設 AMS Accelerate 受管標籤，提供您自己的標記規則以符合您的政策，並使用其他機制，例如 Terraform，以避免偏離。您可以根據您的操作定義要擴展的例外狀況。例如，您可以定義政策，為具有支援平台 （例如 Windows 和 Linux) 的所有 Amazon EC2 執行個體套用標籤，並排除標記特定執行個體 IDs。

**重要**  
Resource Tagger 會控制您帳戶中具有 **ams：rt：** 字首的所有標籤。任何以此字首開頭的標籤都會刪除，除非它們出現在 Resource Tagger 的組態規則中。總而言之，以 **ams：rt：** 開頭的支援資源上的任何標籤都視為由 Resource Tagger 擁有。如果您手動標記某些項目，例如 **ams：rt：**，如果該標籤未在其中一個 Resource Tagger 組態設定檔中指定，則會自動移除該標籤。

## Resource Tagger 的運作方式
<a name="acc-rt-how-works"></a>

當您的帳戶加入 AMS Accelerate 時，系統會將兩份 JSON 組態文件部署至您的帳戶 AWS AppConfig。兩個稱為*組態設定檔*的文件稱為 **AMSManagedTags**，稱為**預設組態設定檔**，而 **CustomerManagedTags** 稱為**自訂組態設定檔**。您可以使用自訂組態描述檔為您的帳戶定義自己的政策和規則，而 AMS Accelerate 不會覆寫這些政策和規則。

這兩個設定檔都位於 **AMSResourceTagger** 應用程式和 **AMSInfrastructure** 環境中。資源標記程式套用的所有標籤都有金鑰字首 **ams：rt：**。

**自訂組態設定檔**：

在帳戶加入時，自訂組態描述檔一開始是空的；不過，除了預設組態描述檔中的規則之外，還會強制執行設定檔文件中放置的任何規則。自訂組態設定檔中的任何組態都完全由您管理，AMS Accelerate 不會覆寫，除非您的請求。

您可以在支援的 AWS 資源的自訂組態設定檔中指定您想要的任何自訂標記規則，也可以在此處指定對 AMS Accelerate 受管預設組態的修改，請參閱 [AMS Accelerate 中的資源交錯使用案例](acc-rt-using.md)。

**重要**  
如果您更新此設定檔，Resource Tagger 會自動強制執行您 中所有相關資源的變更 AWS 帳戶。變更會自動制定，但最多可能需要 60 分鐘才會生效。

您可以使用 AWS 管理主控台或透過 CLI/SDK AWS 工具更新此設定檔。如需有關更新自訂組態設定檔的資訊，請參閱 AWS AppConfig 使用者指南：[什麼是 AWS AppConfig？](https://docs.aws.amazon.com/appconfig/latest/userguide/what-is-appconfig.html)

**預設組態設定檔**：

預設組態設定檔文件位於 AMS Accelerate 內部，其中包含您無法永久修改或刪除的 AMS Accelerate 提供的預設規則。AMS Accelerate 可以隨時更新此設定檔，並供您檢閱；您對它所做的任何變更都會自動刪除。如果您想要修改或停用使用自訂組態設定檔的任何預設組態規則，請參閱 [AMS Accelerate 中的資源交錯使用案例](acc-rt-using.md)。

# AMS Accelerate 中的資源交錯器組態設定檔
<a name="acc-tag-tools-profiles"></a>

組態描述檔有助於確保在整個資源生命週期內將標籤統一套用至資源。

## 語法和結構
<a name="acc-rt-config-doc-format"></a>

組態設定檔是具有下列結構的 JSON 物件：

```
{
   "Options": {
      "ReadOnly": false
   },
   "ResourceType": {
      "ConfigurationID": {
			   "Enabled": true,
			   "Filter": { ... },
			   "Tags": [  ...  ]
      },
      "ConfigurationID": {
			   ...
      }
   },
   "ResourceType": {
		   ...
   }
}
```

**選項**：（選用） 指定您希望 ResourceTagger 的行為方式的選項。省略 區塊等同於將所有選項設定為其預設值。如需可用的**選項**設定，請參閱以下內容：
+ **ReadOnly**：（選用，預設為 false)：指定 Resource Tagger 的 ReadOnly 模式。將 ReadOnly 設為 true，以停用 Resource Tagger 在 AWS 資源上建立或移除標籤。如需詳細資訊，請參閱[防止 Resource Tagger 修改資源](acc-rt-using.md#acc-rt-preventing-rt-changes)。

**ResourceType**：此金鑰必須是下列支援的字串之一，並代表與指出的資源類型相關的所有組態：
+ AWS::AutoScaling::AutoScalingGroup
+ AWS::DynamoDB::Table
+ AWS::EC2::Instance
+ AWS::EC2::NatGateway
+ AWS::EC2::VPNConnection
+ AWS::EFS::FileSystem
+ AWS::EKS::Cluster
+ AWS::ElasticLoadBalancing::LoadBalancer
+ AWS::ElasticLoadBalancingV2::LoadBalancer
+ AWS::Elasticsearch::Domain
+ AWS::FSx::FileSystem
+ AWS::OpenSearch::Domain
+ AWS::RDS::DBCluster
+ AWS::RDS::DBInstance
+ AWS::Redshift::Cluster
+ AWS::S3::Bucket
+ AWS::Synthetics::Canary

**ConfigurationID**：此金鑰在設定檔文件中必須是唯一的，並唯一命名下列組態區塊。如果相同 **ResourceType** 區塊中的兩個組態區塊具有相同的 **ConfigurationID**，則設定檔中最後出現的組態區塊會生效。如果您在自訂描述檔中指定的 **ConfigurationID** 與預設文件中指定的 ConfigurationID 相同，則自訂描述檔中定義的組態區塊會生效。

**重要**  
**ConfigurationID** ***不應***與 AMS Accelerate 設定檔重疊；例如，它不應是 **AMSMonitoringLinux** 或 **AMSMonitoringWindows**，否則會停用 **AMSManagedTags** 組態設定檔的個別組態。

**已啟用 **（選用，預設為 **true**)：指定組態區塊是否生效。將此設定為 **false** 以停用組態區塊。停用的組態區塊沒有效果。

**篩選條件**：指定組態套用的資源。每個篩選條件物件可以有下列任一 （但只能有一個） 欄位：
+ **AWS::AutoScaling::AutoScalingGroup**：
  + **AutoScalingGroupName**：Autoscaling 群組名稱。此欄位支援萬用字元比對。
+ **AWS::DynamoDB::Table**：
  + **TableName**：DynamoDB 資料表的名稱。此欄位支援萬用字元比對。
+ **AWS::EC2::Instance**：
  + **AvailabilityZone**：篩選條件符合指定可用區域中的 EC2 執行個體。此欄位支援萬用字元比對，因此 **\$1a** 符合 us-east-1a、ap-northeast-1a 等。
  + **InstanceId**：篩選條件會比對具有指定執行個體 ID 的 EC2 執行個體。此欄位支援萬用字元比對，因此 **i-00000\$1** 會比對執行個體 ID 開頭為 **i-00000** 的任何執行個體。
  + **平台**：篩選條件會比對具有指定平台的 EC2 執行個體。有效值為 **windows**、**linux** 或萬用字元 **\$1** （以比對任何平台）。
+ **AWS::EC2::NatGateway**：
  + **NatGatewayId**：NAT 閘道的 ID。此欄位支援萬用字元比對。
  + **狀態**：NAT 閘道的狀態 （待定 \$1 失敗 \$1 可用 \$1 刪除 \$1 已刪除或萬用字元 "\$1")
  + **VpcId**：NAT Gateway 所在的 VPC ID。此欄位支援萬用字元比對。
  + **SubnetId**：NAT Gateway 所在的子網路 ID。此欄位支援萬用字元比對
+ **AWS::EC2::VPNConnection**：
  + **VpnConnectionId**：連線的 ID。此欄位支援萬用字元比對。
+ **AWS::EFS::FileSystem**：
  + **FileSystemId**：EFS 檔案系統的 ID。此欄位支援萬用字元比對。
+ **AWS::EKS::Cluster**：
  + **ClusterName**：叢集的名稱。此欄位支援萬用字元比對。
+ **AWS::ElasticLoadBalancing::LoadBalancer (Classic Load Balancer)**：
  + **LoadBalancerName**：LoadBalancer 名稱。此欄位支援萬用字元比對。
  + **結構描述**：可以是「面向網際網路」、「內部」或萬用字元「\$1」。
  + **VPCId**：部署負載平衡器的 VPCId 可以是萬用字元 "\$1"。
+ **AWS::ElasticLoadBalancingV2::LoadBalancer (Application Load Balancer(ALB))**：
  + **LoadBalancerArn**：LoadBalancer Amazon Resource Name (ARN)。
  + **DNSName**：LoadBalancer 的 DNSName。此欄位支援萬用字元比對。
  + **LoadBalancerName**：LoadBalancer 名稱。此欄位支援萬用字元比對。
+ **AWS::Elasticsearch::Domain**：
  + **DomainId**：ElasticSearch 資源的 DomainId。此欄位支援萬用字元比對。
  + **DomainName**：ElasticSearch 資源的 DomainName。此欄位支援萬用字元比對。
  + **HasMasterNode**：布林值為 true 或 false。如果網域具有專用主節點，則相符。
  + **HasKmsKey** 布林值為 true 或 false。如果網域具有用於靜態加密的 KMS 金鑰，則相符。
+ **AWS::FSx::FileSystem**：
  + **FileSystemId**：FSx 檔案系統的 ID。此欄位支援萬用字元比對。
+ **AWS::OpenSearch::Domain**：
  + **DomainId**：OpenSearch 資源的 DomainId。此欄位支援萬用字元比對。
  + **DomainName**：OpenSearch 資源的 DomainName。此欄位支援萬用字元比對。
  + **HasMasterNode**：布林值；如果網域具有專用主節點，這可以設定為 true。
  + **HasKmsKey**：如果網域具有用於靜態加密的 KMS 金鑰，則可以將此設定為 true。
+ **AWS::RDS::DBCluster**：
  + **DBClusterIdentifier**：篩選條件會比對 RDS 叢集識別符與指定的識別符。此欄位不支援萬用字元比對，因此必須指定叢集識別符。
  + **引擎**：RDS 執行個體使用的引擎。此欄位支援萬用字元比對。
  + **EngineVersion**：引擎版本。此欄位支援萬用字元比對。
+ **AWS::RDS::DBInstance**：
  + **DBInstanceIdentifier**：篩選條件會比對具有指定執行個體 ID 的 RDS 執行個體。此欄位不支援萬用字元比對，因此必須指定執行個體識別符。
  + **引擎**：RDS 執行個體使用的引擎。此欄位支援萬用字元比對。
  + **EngineVersion**：引擎版本。此欄位支援萬用字元比對。
+ **AWS::Redshift::Cluster**：
  + **ClusterIdentifier**：叢集識別符。此欄位支援萬用字元比對。
+ **AWS::S3::Bucket**：
  + **BucketName**：S3 儲存貯體的名稱。此欄位支援萬用字元比對。
+ **AWS::Synthetics::Canary**：
  + **CanaryName**：Synthetics Canary 的名稱。

**其他篩選條件屬性：**
+ **標籤**：篩選條件會套用至已套用指定標籤的任何資源。此屬性的值必須是具有下列欄位的 JSON 物件：
  + **金鑰**：必須是確切的字串，並指定資源必須具有具有該確切金鑰的標籤。
  + **值**：指定標籤的相符值。支援萬用字元，因此 **Sample** 的值符合以 **Sample** 字串結尾的任何值。
+ **Fn：：AND**：JSON 物件的 JSON 陣列。每個物件都遵循與**篩選條件**組態區塊相同的規則。這會指定篩選條件符合所有子篩選條件的任何資源。
+ **Fn：：OR**：JSON 物件的 JSON 陣列。每個物件都遵循與**篩選條件**組態區塊相同的規則。這會指定篩選條件符合任何符合任何子篩選條件的資源。
+ **Fn：：NOT**：遵循與**篩選條件**組態區塊相同規則的 JSON 物件。這會指定篩選條件明確不符合任何符合子篩選條件的資源。使用此選項來指定標記規則的排除。

**標籤**：要套用至相符資源的標籤。（請參閱[標籤命名和使用慣例](https://docs.aws.amazon.com/mediaconnect/latest/ug/tagging-restrictions.html)。) 此欄位是鍵/值對的陣列：
+ **金鑰**：要套用之標籤的金鑰。
+ **值**：要套用的標籤值。

**注意**  
Resource Tagger 套用的標籤一律具有開頭為 **ams：rt：** 的金鑰。如果您未在設定檔中指定此字首，Resource Tagger 會為您插入。這是 Resource Tagger 將其擁有和管理的標籤與其他工具用於其他用途的標籤區分開來的方式。

# AMS Accelerate 中的資源交錯使用案例
<a name="acc-rt-using"></a>

本節列出具有 Resource Tagger 的常用動作。

## 檢視由 Resource Tagger 套用的標籤
<a name="acc-rt-using-view-tags"></a>

Resource Tagger 套用的所有標籤都有金鑰字首 **ams：rt：。**例如，下列標籤定義會產生具有金鑰 **ams：rt：sampleKey** 和值 **sampleValue** 的標籤。具有此字首的所有標籤都會視為 Resource Tagger 的一部分。

```
{
	"Key": "sampleKey",
	"Value": "sampleValue"
}
```

**重要**  
如果您使用 **ams：rt：** 字首手動建立自己的標籤，則視為由 Resource Tagger 管理。這表示如果資源是由 Resource Tagger 管理，但組態描述檔未指出應套用標籤，則 Resource Tagger 會移除手動新增的標籤。如果您手動標記由 Resource Tagger 管理的資源，請勿使用 **ams：rt：** 字首做為標籤索引鍵。

## 使用 Resource Tagger 建立標籤
<a name="acc-tag-how-works-rt"></a>

AMS Accelerate Resource Tagger 是在 AMS Accelerate 加入期間部署在您的帳戶中的元件。Resource Tagger 具有一組可設定的規則，可定義資源的標記方式，然後強制執行這些規則，自動新增和移除資源上的標籤，以確保它們符合您的規則。

如果您想要使用 Resource Tagger 來標記資源，請參閱 [加速資源交錯](acc-resource-tagger.md)。

以下是 Resource Tagger 組態程式碼片段範例，會將值為 **true** 的標籤 **ams：rt：ams-managed** 新增至所有 Amazon EC2 執行個體。**ams：rt：ams 受管**標籤會選擇讓 AMS Accelerate 監控您的資源。

```
{
    "AWS::EC2::Instance": {
        "SampleConfigurationBlock": {
            "Enabled": true,
            "Filter": {
                "Platform": "*"
            },
            "Tags": [
                {
                    "Key": "ams:rt:ams-managed",
                    "Value": "true"
                }
            ]
        }
    }
}
```

**警告**  
指定新組態的名稱時請小心 (`SampleConfigurationBlock`在提供的範例中），因為您可能會不小心以相同的名稱覆寫 AMS 受管組態。

## 防止 Resource Tagger 修改資源
<a name="acc-rt-preventing-rt-changes"></a>

Resource Tagger 可以設定為唯讀模式，以防止其新增或移除資源上的任何標籤。如果您想要提供自己的標記機制，這會很有用。

在唯讀模式中，Resource Tagger 仍會檢查受管和客戶組態設定檔中指定的標記規則，並掃描不符合這些標記規則的資源。任何不合規的資源都會以 呈現 AWS Config。您可以尋找 AWS Config 規則 的 具有 `AMSResourceTagger-`字首。例如，`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**。

如需**選項**設定的詳細資訊，請參閱[語法和結構](acc-tag-tools-profiles.md#acc-rt-config-doc-format)下一步。

## 範例組態描述檔
<a name="acc-rt-using-ex-config-doc"></a>

下列範例設定檔文件指定 AMS Accelerate 管理屬於堆疊\$1 CloudFormation 堆疊的所有 Windows EC2 執行個體；不過， 會明確排除 ID 為 i-00000000000000001 的特定 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 受管組態。

## 合併預設組態
<a name="acc-rt-using-merge-default-config"></a>

預設組態設定檔會在帳戶加入時由 AMS Accelerate 提供。此設定檔提供部署在帳戶中的預設規則。

雖然您無法修改預設組態設定檔，但您可以在自訂組態設定檔中使用與預設組態區塊相同的 **ConfigurationID** 來指定組態區塊，以提供預設值的覆寫。如果您這樣做，您的組態區塊會覆寫預設組態區塊。

例如，請考慮下列預設組態文件：

```
{
	"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"
			}]
		}
	}
}
```

**重要**  
請記得在進行組態變更之後部署組態變更。如需詳細資訊，請參閱[部署組態變更](#acc-rt-deploy-changes)。在 SSM AppConfig 中，您必須在建立組態後部署新版本。

## 停用預設組態
<a name="acc-rt-using-disable-default-config"></a>

您可以將具有相同 **ConfigurationID** 的組態區塊新增至自訂組態描述檔，並為**啟用**欄位提供 **false **值，以停用預設組態規則。

例如，如果預設組態設定檔中存在下列組態：

```
{
	"AWS::EC2::Instance": {
		"AMSManagedBlock1": {
			"Enabled": true,
			"Filter": {
				"Platform": "Windows"
			},
			"Tags": [{
				"Key": "my-tag",
				"Value": "SampleValueA"
			}]
		}
	}
}
```

您可以在自訂組態設定檔中包含下列項目，以停用此標記規則：

```
{
	"AWS::EC2::Instance": {
		"AMSManagedBlock1": {
			"Enabled": false
		}
	}
}
```

**重要**  
請記得在進行組態變更後部署組態變更；如需相關資訊，請參閱 [部署組態變更](#acc-rt-deploy-changes)。在 SSM AppConfig 中，您必須在建立組態後部署新版本。

## 移除 Resource Tagger 套用的標籤
<a name="acc-rt-remove-tags"></a>

如果標籤不存在於組態設定檔中，或者存在篩選條件不相符，則 Resource Tagger 會移除任何字首為 **ams：rt** 的標籤。這表示您可以執行下列其中一項動作來移除 Resource Tagger 套用的標籤：
+ 修改定義標籤的自訂組態區段。
+ 新增特定資源的例外狀況，使其不再符合篩選條件。

例如：如果 **Linux** 執行個體具有下列標籤：

```
"Tags": [{
    "Key": "ams:rt:MyOwnTag",
    "Value": true
},{
    "Key": "myTag",
    "Value": true
}]
```

您也可以部署下列 Resource Tagger 組態設定檔：

```
{
    "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 受管組態。

**重要**  
請記得在進行組態變更後部署組態變更；如需相關資訊，請參閱 [部署組態變更](#acc-rt-deploy-changes)。在 SSM AppConfig 中，您必須在建立組態後部署新版本。

## 檢視或變更 Resource Tagger 組態
<a name="acc-rt-make-changes"></a>

在加入和駐留在 AMSResourceTagger 應用程式和 AMSInfrastructure 環境中的 AWS AppConfig 中，部署到您帳戶的兩個 JSON 組態設定檔 **AMSManagedTags** 和 **CustomerManagedTags**，可透過 AppConfig 的 [GetConfiguration](https://docs.aws.amazon.com/appconfig/2019-10-09/APIReference/API_GetConfiguration.html) API 進行檢閱。 [ AppConfig](https://docs.aws.amazon.com/appconfig/latest/userguide/what-is-appconfig.html) AMSResourceTagger **AMSInfrastructure** 

以下是此 GetConfiguration 呼叫的範例：

```
aws appconfig get-configuration 
 --application AMSResourceTagger 
 --environment AMSInfrastructure 
 --configuration AMSManagedTags 
 --client-id ANY_STRING
 outfile.json
```

**應用程式**：AppConfig 邏輯單位可提供 資源交錯器的功能，這是 AMSResourceTagger。
+ **環境**：AMSInfrastructure。
+ **組態**：若要檢視 AMS Accelerate 預設標籤定義，值為 AMSManagedTags，而若要檢視客戶標籤定義，值為 CustomerManagedTags。
+ **用戶端 ID**：唯一的應用程式執行個體識別符，可以是任何字串。
+ 然後，您可以在指定的輸出檔案中檢視標籤定義，在此案例中為 outfile.json。

然後，您可以在指定的輸出檔案中檢視警示定義，在此情況下為 outfile.json。

您可以在 **AMSInfrastructure** 環境中檢視過去的部署，以查看部署至您帳戶的組態版本。

****若要覆寫標籤規則：

透過 CloudFormation [使用 CloudFormation for Accelerate 部署組態設定檔](acc-tag-cf-ex-deploy-config.md)或 更新自訂描述檔，或直接使用 AppConfig 的 [https://docs.aws.amazon.com/appconfig/2019-10-09/APIReference/API_CreateHostedConfigurationVersion.html](https://docs.aws.amazon.com/appconfig/2019-10-09/APIReference/API_CreateHostedConfigurationVersion.html) API 來覆寫任何現有的標籤規則。使用相同的 **ConfigurationID** 做為預設組態標籤規則會覆寫預設規則，並套用自訂規則。

若要部署對 **CustomerManagedTags** 文件所做的變更：

對自訂組態描述檔進行變更後，您必須為其部署變更。若要部署新的變更，必須使用 AWS AppConfig 主控台或 CLI 執行 AppConfig 的 [StartDeployment](https://docs.aws.amazon.com/appconfig/2019-10-09/APIReference/API_StartDeployment.html) API。

## 部署組態變更
<a name="acc-rt-deploy-changes"></a>

自訂完成後，必須透過 [ StartDeployment](https://docs.aws.amazon.com/appconfig/2019-10-09/APIReference/API_StartDeployment.html) API 部署 AWS AppConfig 這些變更。下列指示說明如何使用 部署 AWS CLI。此外，您可以使用 AWS 管理主控台 進行這些變更。如需詳細資訊，請參閱[步驟 5：部署組態](https://docs.aws.amazon.com/appconfig/latest/userguide/appconfig-deploying.html)。

```
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**：應用程式 AMSResourceTagger 的應用程式 ID。透過 [ ListApplications](https://docs.aws.amazon.com/appconfig/2019-10-09/APIReference/API_ListApplications.html) API 呼叫取得此項目。
+ **環境 ID**：環境 ID；透過 [ ListEnvironments](https://docs.aws.amazon.com/appconfig/2019-10-09/APIReference/API_ListEnvironments.html) API 呼叫取得此 ID。
+ **部署策略 ID**：部署策略 ID；透過 [ ListDeploymentStrategies](https://docs.aws.amazon.com/appconfig/2019-10-09/APIReference/API_ListDeploymentStrategies.html) API 呼叫取得此 ID。
+ **組態設定檔 ID**：CustomerManagedTags 的組態設定檔 ID；透過 [ ListConfigurationProfiles](https://docs.aws.amazon.com/appconfig/2019-10-09/APIReference/API_ListConfigurationProfiles.html) API 呼叫取得此 ID。
+ **組態版本**：您要部署的組態設定檔版本。

**重要**  
Resource Tagger 會套用組態設定檔中指定的標籤。您對資源標籤所做的任何手動修改 （使用 AWS 管理主控台或 CloudWatch CLI/SDK) 都會自動還原，因此請確定您的變更是透過 Resource Tagger 定義。若要了解 Resource Tagger 建立哪些標籤，請尋找字首為 的標籤索引鍵`ams:rt:`。

使用 [StartDeployment](https://docs.aws.amazon.com/appconfig/2019-10-09/APIReference/API_StartDeployment.html) 和 [StopDeployment](https://docs.aws.amazon.com/appconfig/2019-10-09/APIReference/API_StopDeployment.html) API 動作限制對部署的存取，以便信任的使用者了解將新組態部署到目標的責任和後果。

若要進一步了解如何使用 AWS AppConfig 功能來建立和部署組態，請參閱[使用 AWS AppConfig](https://docs.aws.amazon.com/appconfig/latest/userguide/appconfig-working.html) 中的文件。

## 設定 Terraform 以忽略 Resource Tagger 標籤
<a name="acc-rt-ignore-tags"></a>

如果您使用 Terraform 佈建資源，而且想要使用 Resource Tagger 來標記資源，Terraform 可能會將 Resource Tagger 標籤識別為偏離。

您可以使用**生命週期**組態區塊或 **ignore\$1tags** 全域組態區塊，將 Terraform 設定為忽略所有 Resource Tagger 標籤。如需詳細資訊，請參閱資源標記中資源[標記](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/guides/resource-tagging)的 Terraform 文件。

下列範例示範如何建立全域組態，以忽略以 Resource Tagger 標籤字首 開頭的所有標籤`ams:rt:`：

```
provider "aws" {
  # ... potentially other configuration ...

  ignore_tags {
    key_prefixes = ["ams:rt:"]
  }
}
```

## 檢視 Resource Tagger 管理的資源數量
<a name="acc-rt-number-of-resources"></a>

 Resource Tagger 每小時將指標傳送至 `AMS/ResourceTagger` 命名空間中的 Amazon CloudWatch。只會針對 Resource Tagger 支援的資源類型發出指標。


| 指標名稱 | 維度 | 描述 | 
| --- | --- | --- | 
| ResourceCount |  元件、ResourceType  | 在此區域中部署的資源數量 （指定資源類型的）。 單位：計數 | 
| ResourcesMissingManagedTags |  元件、ResourceType  | 根據組態描述檔，需要受管標籤但尚未由 Resource Tagger 標記的資源 （指定資源類型的） 數量。 單位：計數 | 
| UnmanagedResources |  元件、ResourceType  | Resource Tagger 未套用受管標籤的資源數量 （指定資源類型的）。一般而言，這些資源不符合任何 Resource Tagger 組態區塊，或明確地從組態區塊中排除。 單位：計數 | 
| MatchingResourceCount |  元件、ResourceType、ConfigClauseName  | 符合 Resource Tagger 組態區塊的資源數量 （指定資源類型的）。若要讓資源符合組態區塊，必須啟用區塊，且資源必須符合區塊的篩選條件。 單位：計數 | 

這些指標也可以在 **AMS-Resource-Tagger-Reporting-Dashboard** 中以圖形形式檢視。若要查看儀表板，請從 Amazon CloudWatch 管理主控台選取 **AMS-Resource-Tagger-Reporting-Dashboard**。根據預設，此儀表板中的圖形會顯示過去 12 小時期間的資料。

AMS Accelerate 會將 CloudWatch 警示部署到您的帳戶，以偵測未受管資源數量的顯著增加，例如 AMS Resource Tagger 從管理中排除的資源。AMS Operations 將調查超過以下三個未受管資源的增加：相同類型的三個資源，或相同類型的所有資源增加 50%。如果變更似乎不是刻意的，AMS Operations 可能會與您聯絡以檢閱變更。

# 使用 CloudFormation 為 AMS Accelerate 建立標籤
<a name="acc-tag-how-works-cfn"></a>

您可以使用 在堆疊層級 （請參閱 CloudFormation 文件、[資源標籤](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html)) 或個別資源層級 （例如，請參閱[標記 Amazon EC2 資源） ](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Tags.html) CloudFormation 套用標籤。

**重要**  
有些 AMS Accelerate 服務元件需要具有 **ams：rt：** 字首的標籤。Resource Tagger 認為其擁有這些標籤，如果資源 Tagger 組態規則不允許，則會將其刪除。即使您使用的是 CloudFormation 或 Terraform，您一律需要為這些標籤部署 Resource Tagger 組態描述檔。

# CloudFormation AMS Accelerate 的使用案例
<a name="acc-tag-tools-cf-ex"></a>

本節列出常用執行的動作 CloudFormation。

**Topics**
+ [使用 CloudFormation for Accelerate 標記 EC2 執行個體](acc-tag-cf-ex-tag-ec2.md)
+ [使用 標記 AutoScaling 群組 (ASG) CloudFormation 以加速](acc-tag-cf-ex-tag-asg.md)
+ [使用 CloudFormation for Accelerate 部署組態設定檔](acc-tag-cf-ex-deploy-config.md)

# 使用 CloudFormation for Accelerate 標記 EC2 執行個體
<a name="acc-tag-cf-ex-tag-ec2"></a>

以下是如何將值為 **true** 的 **ams：rt：ams-managed** 標籤套用至由 管理的 Amazon EC2 執行個體的範例 CloudFormation。**ams：rt：ams 受管**標籤會選擇讓 AMS Accelerate 監控您的資源。

```
 Type: AWS::EC2::Instance

Properties: 
  InstanceType: "t3.micro"
  
  # ...other properties...
  
  Tags: 
    - Key: "ams:rt:ams-managed"
      Value: "true"
```

# 使用 標記 AutoScaling 群組 (ASG) CloudFormation 以加速
<a name="acc-tag-cf-ex-tag-asg"></a>

以下是如何將值為 **true** 的 **ams：rt：ams-managed** 標籤套用至受管 Auto Scaling 群組的範例 CloudFormation。請注意，Auto Scaling 群組會將標籤傳播到由其建立的 Amazon EC2 執行個體。**ams：rt：ams 受管**標籤會選擇讓 AMS Accelerate 監控您的資源。

```
  Type: AWS::AutoScaling::AutoScalingGroup
Properties: 
  AutoScalingGroupName: "SampleASG"
  
  # ...other properties...
  
  Tags: 
    - Key: "ams:rt:ams-managed"
      Value: "true"
```

# 使用 CloudFormation for Accelerate 部署組態設定檔
<a name="acc-tag-cf-ex-deploy-config"></a>

如果您想要使用 部署`CustomerManagedTags`組態設定檔 CloudFormation，您可以使用下列 CloudFormation 範本。在 `AMSResourceTaggerConfigurationVersion.Content` 欄位中放入您想要的 JSON 組態。

 當您在 CloudFormation Stack 或 Stack Set 中部署範本時，如果您未遵循組態所需的 JSON 格式，`AMSResourceTaggerDeployment `資源的部署將會失敗。[語法和結構](acc-tag-tools-profiles.md#acc-rt-config-doc-format) 如需預期格式的詳細資訊，請參閱 。

 如需將這些範本部署為 CloudFormation 堆疊或堆疊集的說明，請參閱下列 AWS CloudFormation 相關文件：
+  [ 在 AWS CloudFormation 主控台上建立堆疊 ](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-console-create-stack.html) 
+  [ 使用 建立堆疊 AWS CLI](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-cli-creating-stack.html) 
+  [ 建立堆疊集 ](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-getting-started-create.html) 

**注意**  
如果您使用其中一個範本部署組態版本，然後刪除 CloudFormation 堆疊/堆疊集，則範本組態版本會保留為目前部署的版本，而且不會進行任何額外的部署。如果您想要還原為預設組態，則需要手動部署空白組態 （也就是只有 `{}`)，或將堆疊更新為空白組態，而不是刪除堆疊。

**JSON**

```
{
  "Description": "Custom configuration for the AMS Resource Tagger.",
  "Resources": {
    "AMSResourceTaggerConfigurationVersion": {
      "Type": "AWS::AppConfig::HostedConfigurationVersion",
      "Properties": {
        "ApplicationId": {
          "Fn::ImportValue": "AMS-ResourceTagger-Configuration-ApplicationId"
        },
        "ConfigurationProfileId": {
          "Fn::ImportValue": "AMS-ResourceTagger-Configuration-CustomerManagedTags-ProfileID"
        },
        "Content": "{\"Options\": {\"ReadOnly\": false}}",
        "ContentType": "application/json"
      }
    },
    "AMSResourceTaggerDeployment": {
      "Type": "AWS::AppConfig::Deployment",
      "Properties": {
        "ApplicationId": {
          "Fn::ImportValue": "AMS-ResourceTagger-Configuration-ApplicationId"
        },
        "ConfigurationProfileId": {
          "Fn::ImportValue": "AMS-ResourceTagger-Configuration-CustomerManagedTags-ProfileID"
        },
        "ConfigurationVersion": {
          "Ref": "AMSResourceTaggerConfigurationVersion"
        },
        "DeploymentStrategyId": {
          "Fn::ImportValue": "AMS-ResourceTagger-Configuration-Deployment-StrategyID"
        }, 
        "EnvironmentId": {
          "Fn::ImportValue": "AMS-ResourceTagger-Configuration-EnvironmentId"
        }
      }
    }
  }
}
```

**YAML**

```
Description: Custom configuration for the AMS Resource Tagger.
Resources:
  AMSResourceTaggerConfigurationVersion:
    Type: AWS::AppConfig::HostedConfigurationVersion
    Properties:
      ApplicationId:
        !ImportValue AMS-ResourceTagger-Configuration-ApplicationId
      ConfigurationProfileId:
        !ImportValue AMS-ResourceTagger-Configuration-CustomerManagedTags-ProfileID
      Content: |
        {
          "Options": {
            "ReadOnly": false
          }
        }
      ContentType: application/json
  AMSResourceTaggerDeployment:
    Type: AWS::AppConfig::Deployment
    Properties:
      ApplicationId:
        !ImportValue AMS-ResourceTagger-Configuration-ApplicationId
      ConfigurationProfileId:
        !ImportValue AMS-ResourceTagger-Configuration-CustomerManagedTags-ProfileID
      ConfigurationVersion:
        !Ref AMSResourceTaggerConfigurationVersion
      DeploymentStrategyId:
        !ImportValue AMS-ResourceTagger-Configuration-Deployment-StrategyID
      EnvironmentId:
        !ImportValue AMS-ResourceTagger-Configuration-EnvironmentId
```

# 使用 Terraform 為 AMS Accelerate 建立標籤
<a name="acc-tag-tools-terraform"></a>

如果您不想使用 AMS Accelerate Resource Tagger，您可以使用 Terraform 套用自己的標籤。不過，如果您因為 Resource Tagger 從 Terraform 定義漂移而不想使用 Resource Tagger，有一種方法可讓您使用 Resource Tagger 並忽略它造成的漂移；請參閱 [設定 Terraform 以忽略 Resource Tagger 標籤](acc-rt-using.md#acc-rt-ignore-tags)。

**重要**  
有些 AMS Accelerate 服務元件需要具有 **ams：rt：** 字首的標籤。Resource Tagger 認為它擁有這些標籤，如果資源 Tagger 組態規則不允許，則會刪除它們。您必須為這些標籤部署 Resource Tagger 組態描述檔，即使您使用的是 CloudFormation 或 Terraform。

以下是如何將值為 **true** **的 ams：rt：ams 受管**標籤套用至 Terraform 管理的 Amazon EC2 執行個體的範例。**ams：rt：ams 受管**標籤會選擇讓 AMS Accelerate 監控您的資源。

```
  resource "aws_instance" "sample_linux_instance" {
    # ...ami and other properties...
  
    instance_type = "t3.micro"

    tags = {
        "ams:rt:ams-managed" = "true"
    }
}
```

以下是如何將值為 **true** **的 ams：rt：ams 受管**標籤套用至 Terraform 管理的 Auto Scaling 群組的範例。請注意，Auto Scaling 群組會將標籤傳播至由其建立的 Amazon EC2 執行個體。**ams：rt：ams 受管**標籤會選擇讓 AMS Accelerate 監控您的資源。

```
  resource "aws_autoscaling_group" "sample_asg" {
    # ...other properties...
  
    name = "terraform-sample"

    tags = {
        "ams:rt:ams-managed" = "true"
    }
}
```

如需如何管理 Terraform 建立的資源標籤的說明，請參閱 [設定 Terraform 以忽略 Resource Tagger 標籤](acc-rt-using.md#acc-rt-ignore-tags)。