管理交付管道 - AWS Config

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

管理交付管道

隨著 AWS Config 持續記錄 AWS 資源發生的變更,它會透過傳遞通道傳送通知和更新的組態狀態。您可以管理傳遞通道,以控制 AWS Config 傳送組態更新的位置。

每個 AWS 帳戶的每個 AWS 區域只能有一個傳遞管道,而且必須使用交付管道 AWS Config。

當 AWS Config 偵測到資源的組態變更,且通知超過 Amazon SNS 允許的大小上限時,通知會包含組態項目的簡短摘要。您可以在 s3BucketLocation 欄位所指定的 Amazon S3 儲存貯體位置檢視完整通知。如需詳細資訊,請參閱《範例大型組態項目變更通知》。

注意

AWS Config 支援 AWS KMS 加密所使用的 Amazon S3 儲存貯體 AWS Config

您可以提供 AWS Key Management Service (AWS KMS) 金鑰或別名 Amazon 資源名稱 (ARN),以加密傳送到 Amazon Simple Storage Service (Amazon S3) 貯體的資料。根據預設,會將組態歷史記錄和快照檔案 AWS Config 交付到您的 Amazon S3 儲存貯體,並使用 S3 AES-256 伺服器端加密 SSE-S3 加密靜態資料。不過,如果您提 AWS Config 供 KMS 金鑰或別名 ARN,則 AWS Config 會使用該 KMS 金鑰而非 AES-256 加密。

AWS Config 不支援將通道交付到已啟用物件鎖定且啟用預設保留的 Amazon S3 儲存貯體。如需詳細資訊,請參閱 S3 物件鎖定的運作方式

術語

態項目代表您帳號中存在之受支援 AWS 資源的各種屬性的 point-in-time 檢視。組態項目的元件包括中繼資料、屬性、關係、目前的組態及相關事件。 AWS Config 每當它偵測到它正在記錄的資源類型的變更時,就會建立組態項目。例如,如果 AWS Config 要記錄 Amazon S3 儲存貯體,則每當建 AWS Config 立、更新或刪除儲存貯體時,都會建立組態項目。您也可以選擇為 AWS Config 以您設定的錄製頻率建立組態項目。

組態歷史記錄是指定資源在任何時間期間的組態項目集合。組態歷史記錄可協助您回答下列這類問題,例如,第一次建立資源時、上個月如何設定資源,以及昨天 9 AM 進行何種組態變更。您可以使用多種格式的組態歷程記錄。 AWS Config 針對要記錄到您指定的 Amazon S3 儲存貯體的每個資源類型,自動交付組態歷史記錄檔案。您可以在 AWS Config 主控台中選取指定的資源,並使用時間軸瀏覽至該資源的所有先前設定項目。此外,您也可以從 API 存取資源的歷史組態項目。

組態快照是帳戶中現有所支援資源的組態項目集合。此組態快照是所記錄資源和其組態的完整全貌。組態快照可以是驗證組態的實用工具。例如,建議您定期檢查未正確設定或可能不存在之資源的組態快照。組態快照具有多種格式。您可以將組態快照交付至您指定的 Amazon Simple Storage Service (Amazon S3) 儲存貯體。此外,您可以在 AWS Config 主控台中選取時間點,並使用資源之間的關係瀏覽組態項目的快照集。

配置流是一個自動更新的列表,其中包含 AWS Config 正在記錄的資源的所有配置項目。每次建立、修改或刪除資源時, AWS Config 都會建立組態項目,並新增至組態串流。使用您選擇的 Amazon Simple Notification Service (Amazon SNS) 主題後,組態串流即可運作。配置流有助於觀察發生的配置更改,以便您發現潛在問題,在某些資源發生變更時產生通知,或更新需要反映 AWS 資源配置的外部系統。

更新交付管道

在您更新交付管道時,您可以設定下列選項:

  • AWS Config 傳送組態快照和組態歷史記錄檔案的 Amazon S3 儲存貯體。

  • 將組態快照 AWS Config 交付到 Amazon S3 儲存貯體的頻率。

  • AWS Config 傳送有關組態變更通知的 Amazon SNS 主題。

您可以使用主 AWS Config 控台為交付通道設定 Amazon S3 儲存貯體和 Amazon SNS 主題。如需管理這些設定的步驟,請參閱使用主控 AWS Config 台進行設定

主控台不會提供重新命名交付管道、設定組態快照頻率,或是刪除交付管道的選項。若要執行這些工作 AWS CLI,您必須使用 AWS Config API 或其中一個 AWS SDK。

下列程式碼範例會示範如何使用PutDeliveryChannel

CLI
AWS CLI

若要建立傳送管道

下列命令會以 JSON 程式碼的形式提供傳遞通道的設定:

aws configservice put-delivery-channel --delivery-channel file://deliveryChannel.json

deliveryChannel.json檔案會指定傳送通道屬性:

{ "name": "default", "s3BucketName": "config-bucket-123456789012", "snsTopicARN": "arn:aws:sns:us-east-1:123456789012:config-topic", "configSnapshotDeliveryProperties": { "deliveryFrequency": "Twelve_Hours" } }

此範例會設定下列屬性:

name-傳送管道的名稱。根據預設, AWS Config 會將名稱default指派給新的傳送通道。您無法使用指令更新傳送通道名稱。put-delivery-channel如需變更名稱的步驟,請參閱重新命名傳遞管道。 s3BucketName-Con AWS fig 交付組態快照和組態歷史記錄檔案的 Amazon S3 儲存貯體的名稱。如果您指定屬於另一個 AWS 帳戶的儲存貯體,則該儲存貯體必須具有授與 Config 存取權限的政策。 AWS 如需詳細資訊,請參閱《Amazon S3 儲存貯體許可》。

snsTopicARN-Amazon Amazon SNS 主題的 Amazon 資源名稱 (ARN),組態會向其傳送有關組態變更的通知。如果您從其他帳戶選擇主題,則該主題必須具有授與 AWS Config 存取權限的政策。 AWS 如需詳細資訊,請參閱 Amazon SNS 主題的許可。

configSnapshotDeliveryProperties-包含deliveryFrequency屬性,可設定 AWS Config 傳送組態快照的頻率,以及呼叫週期性組 Config 規則評估的頻率。

如果命令成功, AWS Config 不會返回任何輸出。若要驗證傳送通道的設定,請執行 describe-delivery-channels 命令。

PowerShell
適用的工具 PowerShell

範例 1:此範例會變更現有傳送管道的傳送頻率屬性。

Write-CFGDeliveryChannel -ConfigSnapshotDeliveryProperties_DeliveryFrequency TwentyFour_Hours -DeliveryChannelName default -DeliveryChannel_S3BucketName config-bucket-NA -DeliveryChannel_S3KeyPrefix my
  • 如需 API 詳細資訊,請參閱AWS Tools for PowerShell 指令程PutDeliveryChannel式參考中的。

(選擇性) 您可以使用 describe-delivery-channels 命令確認交付管道設定已更新:

$ aws configservice describe-delivery-channels { "DeliveryChannels": [ { "configSnapshotDeliveryProperties": { "deliveryFrequency": "Twelve_Hours" }, "snsTopicARN": "arn:aws:sns:us-east-2:123456789012:config-topic", "name": "default", "s3BucketName": "config-bucket-123456789012" } ] }

下列程式碼範例會示範如何使用DescribeDeliveryChannels

CLI
AWS CLI

取得有關傳送管道的詳細資訊

下列命令會傳回有關傳送通道的詳細資料:

aws configservice describe-delivery-channels

輸出:

{ "DeliveryChannels": [ { "snsTopicARN": "arn:aws:sns:us-east-1:123456789012:config-topic", "name": "default", "s3BucketName": "config-bucket-123456789012" } ] }
PowerShell
適用的工具 PowerShell

範例 1:此範例會擷取區域的傳送管道並顯示詳細資訊。

Get-CFGDeliveryChannel -Region eu-west-1 | Select-Object Name, S3BucketName, S3KeyPrefix, @{N="DeliveryFrequency";E={$_.ConfigSnapshotDeliveryProperties.DeliveryFrequency}}

輸出:

Name S3BucketName S3KeyPrefix DeliveryFrequency ---- ------------ ----------- ----------------- default config-bucket-NA my TwentyFour_Hours

重新為交付管道命名

若要變更交付管道的名稱,您必須刪除它並使用您需要的名稱建立新的交付管道。您必須暫時停止組態記錄器,才能刪除交付管道。

主 AWS Config 控台未提供刪除傳遞通道的選項,因此您必須使用 AWS CLI、 AWS Config API 或其中一個 AWS SDK。

重新命名傳送管道 AWS CLI
  1. 使用 stop-configuration-recorder 命令停止組態記錄器:

    $ aws configservice stop-configuration-recorder --configuration-recorder-name configRecorderName
  2. 使用 describe-delivery-channels 命令並記下您交付管道的屬性:

    $ aws configservice describe-delivery-channels { "DeliveryChannels": [ { "configSnapshotDeliveryProperties": { "deliveryFrequency": "Twelve_Hours" }, "snsTopicARN": "arn:aws:sns:us-east-2:123456789012:config-topic", "name": "default", "s3BucketName": "config-bucket-123456789012" } ] }
  3. 使用 delete-delivery-channel 命令刪除交付管道:

    $ aws configservice delete-delivery-channel --delivery-channel-name default
  4. 使用 put-delivery-channel 命令,使用需要的名稱建立交付管道:

    $ aws configservice put-delivery-channel --delivery-channel file://deliveryChannel.json

    deliveryChannel.json 檔案指定了交付管道屬性:

    { "name": "myCustomDeliveryChannelName", "s3BucketName": "config-bucket-123456789012", "snsTopicARN": "arn:aws:sns:us-east-2:123456789012:config-topic", "configSnapshotDeliveryProperties": { "deliveryFrequency": "Twelve_Hours" } }
  5. 使用 start-configuration-recorder 命令繼續記錄:

    $ aws configservice start-configuration-recorder --configuration-recorder-name configRecorderName