本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
AMS Accelerate 中的資源交錯使用案例
本節列出具有 Resource Tagger 的常用動作。
檢視由 Resource Tagger 套用的標籤
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 建立標籤
AMS Accelerate Resource Tagger 是在 AMS Accelerate 加入期間部署在您的帳戶中的元件。Resource Tagger 具有一組可設定的規則,可定義資源的標記方式,然後強制執行這些規則,自動新增和移除資源上的標籤,以確保它們符合您的規則。
如果您想要使用 Resource Tagger 來標記資源,請參閱 加速資源交錯。
以下是 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 修改資源
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。
如需選項設定的詳細資訊,請參閱語法和結構下一步。
範例組態描述檔
下列範例設定檔文件指定 AMS Accelerate 管理屬於堆疊* 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 受管組態。
合併預設組態
預設組態設定檔會在帳戶加入時由 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" }] } } }
重要
請記得在進行組態變更之後部署組態變更。如需詳細資訊,請參閱部署組態變更。在 SSM AppConfig 中,您必須在建立組態後部署新版本。
停用預設組態
您可以將具有相同 ConfigurationID 的組態區塊新增至自訂組態描述檔,並為啟用欄位提供 false 值,以停用預設組態規則。
例如,如果預設組態設定檔中存在下列組態:
{ "AWS::EC2::Instance": { "AMSManagedBlock1": { "Enabled": true, "Filter": { "Platform": "Windows" }, "Tags": [{ "Key": "my-tag", "Value": "SampleValueA" }] } } }
您可以在自訂組態設定檔中包含下列項目,以停用此標記規則:
{ "AWS::EC2::Instance": { "AMSManagedBlock1": { "Enabled": false } } }
重要
請記得在進行組態變更後部署組態變更;如需相關資訊,請參閱 部署組態變更。在 SSM AppConfig 中,您必須在建立組態後部署新版本。
移除 Resource Tagger 套用的標籤
如果標籤不存在於組態設定檔中,或者存在篩選條件不相符,則 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 受管組態。
重要
請記得在進行組態變更後部署組態變更;如需相關資訊,請參閱 部署組態變更。在 SSM AppConfig 中,您必須在建立組態後部署新版本。
檢視或變更 Resource Tagger 組態
在加入和駐留在 AMSResourceTagger 應用程式和 AMSInfrastructure 環境中的 AWS AppConfig 中,部署到您帳戶的兩個 JSON 組態設定檔 AMSManagedTags 和 CustomerManagedTags,可透過 AppConfig 的 GetConfiguration API 進行檢閱。 AppConfig AMSResourceTagger AMSInfrastructure
以下是此 GetConfiguration 呼叫的範例:
aws appconfig get-configuration --application AMSResourceTagger --environment AMSInfrastructure --configuration AMSManagedTags --client-idANY_STRINGoutfile.json
應用程式:AppConfig 邏輯單位可提供 資源交錯器的功能,這是 AMSResourceTagger。
環境:AMSInfrastructure。
組態:若要檢視 AMS Accelerate 預設標籤定義,值為 AMSManagedTags,而若要檢視客戶標籤定義,值為 CustomerManagedTags。
用戶端 ID:唯一的應用程式執行個體識別符,可以是任何字串。
然後,您可以在指定的輸出檔案中檢視標籤定義,在此案例中為 outfile.json。
然後,您可以在指定的輸出檔案中檢視警示定義,在此情況下為 outfile.json。
您可以在 AMSInfrastructure 環境中檢視過去的部署,以查看部署至您帳戶的組態版本。
若要覆寫標籤規則:
透過 AWS CloudFormation 使用 AWS CloudFormation for Accelerate 部署組態設定檔或 更新自訂描述檔,或直接使用 AppConfig 的 CreateHostedConfigurationVersion API 來覆寫任何現有的標籤規則。使用相同的 ConfigurationID 做為預設組態標籤規則會覆寫預設規則,並套用自訂規則。
若要部署對 CustomerManagedTags 文件所做的變更:
對自訂組態描述檔進行變更後,您必須為其部署變更。若要部署新的變更,必須使用 AWS AppConfig 主控台或 CLI 執行 AppConfig 的 StartDeployment API。
部署組態變更
自訂完成後,必須透過 StartDeployment API 部署 AWS AppConfig 這些變更。下列指示說明如何使用 部署 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:應用程式 AMSResourceTagger 的應用程式 ID。透過 ListApplications API 呼叫取得此項目。
環境 ID:環境 ID;透過 ListEnvironments API 呼叫取得此 ID。
部署策略 ID:部署策略 ID;透過 ListDeploymentStrategies API 呼叫取得此 ID。
組態設定檔 ID:CustomerManagedTags 的組態設定檔 ID;透過 ListConfigurationProfiles API 呼叫取得此 ID。
組態版本:您要部署的組態設定檔版本。
重要
Resource Tagger 會套用組態設定檔中指定的標籤。您對資源標籤所做的任何手動修改 (使用 AWS Management Console或 CloudWatch CLI/SDK) 都會自動還原,因此請確定您的變更是透過 Resource Tagger 定義。若要了解 Resource Tagger 建立哪些標籤,請尋找字首為 的標籤索引鍵ams:rt:。
使用 StartDeployment 和 StopDeployment API 動作限制對部署的存取,以便信任的使用者了解將新組態部署到目標的責任和後果。
若要進一步了解如何使用 AWS AppConfig 功能來建立和部署組態,請參閱使用 AWS AppConfig 中的文件。
設定 Terraform 以忽略 Resource Tagger 標籤
如果您使用 Terraform 佈建資源,而且想要使用 Resource Tagger 來標記資源,Terraform 可能會將 Resource Tagger 標籤識別為偏離。
您可以使用生命週期組態區塊或 ignore_tags 全域組態區塊,將 Terraform 設定為忽略所有 Resource Tagger 標籤。如需詳細資訊,請參閱資源標記中資源標記
下列範例示範如何建立全域組態,以忽略以 Resource Tagger 標籤字首 開頭的所有標籤ams:rt::
provider "aws" { # ... potentially other configuration ... ignore_tags { key_prefixes = ["ams:rt:"] } }
檢視 Resource Tagger 管理的資源數量
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 可能會與您聯絡以檢閱變更。