

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

# 使用 追蹤 X-Ray 加密組態變更 AWS Config
<a name="xray-api-config"></a>

AWS X-Ray 與 整合 AWS Config ，以記錄對 X-Ray 加密資源所做的組態變更。您可以使用 AWS Config 清查 X-Ray 加密資源、稽核 X-Ray 組態歷史記錄，並根據資源變更傳送通知。

AWS Config 支援將下列 X-Ray 加密資源變更記錄為事件：
+ **組態變更** – 變更或新增加密金鑰，或還原至預設的 X-Ray 加密設定。

使用以下指示，了解如何在 X-Ray 和 之間建立基本連線 AWS Config。

## 建立 Lambda 函數觸發
<a name="LambdaFunctionTrigger"></a>

您必須先擁有自訂 AWS Lambda 函數的 ARN，才能產生自訂 AWS Config 規則。按照這些指示，使用 Node.js 來建立基本函數，以根據 `XrayEncryptionConfig` 資源的狀態將合規或未合規的值傳回給 AWS Config 。

**使用 AWS::XrayEncryptionConfig 變更觸發，建立 Lambda 函數**

1. 開啟 [Lambda 主控台](https://console.aws.amazon.com/lambda/home)。選擇 **Create function (建立函數)**。

1. 選擇 **Blueprints (藍圖)**，然後篩選藍圖程式庫的 **config-rule-change-triggered** 藍圖。按一下藍圖名稱中的連結，或選擇 **Configure (設定)** 以繼續。

1. 定義下列欄位以設定藍圖：
   + 針對 **Name (名稱)**，輸入名稱。
   + 在 **Role (角色)** 中，選擇 **Create new role from template(s) (從範本建立新角色)**。
   + 在 **Role name (角色名稱)** 中，輸入名稱。
   + 針對 **Policy templates (政策範本)**，選擇**AWS Config Rules permissions (&CC; 規則許可)**。

1. 選擇**建立函數**以在 AWS Lambda 主控台中建立和顯示您的函數。

1. 編輯您的函數程式碼，將 `AWS::EC2::Instance` 取代為 `AWS::XrayEncryptionConfig`。您也可以更新描述欄位，以反映這個變更。

   **預設程式碼**

   ```
       if (configurationItem.resourceType !== 'AWS::EC2::Instance') {
           return 'NOT_APPLICABLE';
       } else if (ruleParameters.desiredInstanceType === configurationItem.configuration.instanceType) {
           return 'COMPLIANT';
       }
           return 'NON_COMPLIANT';
   ```

   **更新的程式碼**

   ```
       if (configurationItem.resourceType !== 'AWS::XRay::EncryptionConfig') {
           return 'NOT_APPLICABLE';
       } else if (ruleParameters.desiredInstanceType === configurationItem.configuration.instanceType) {
           return 'COMPLIANT';
       }
           return 'NON_COMPLIANT';
   ```

1. 將以下內容新增至 IAM 中的執行角色，以存取 X-Ray。這些許可允許唯讀存取您的 X-Ray 資源。若未提供適當資源的存取權，則當評估與規則相關聯的 Lambda 函數 AWS Config 時，將導致 超出範圍的訊息。

   ```
       {
           "Sid": "Stmt1529350291539",
           "Action": [
               "xray:GetEncryptionConfig"
           ],
           "Effect": "Allow",
           "Resource": "*"
        }
   ```

## 建立 X 射線的自訂 AWS Config 規則
<a name="ConfigRule"></a>

建立 Lambda 函數時，請記下函數的 ARN，然後前往 AWS Config 主控台建立自訂規則。

**建立 X-Ray 的 AWS Config 規則**

1. 開啟 [AWS Config 主控台的**規則**頁面](https://console.aws.amazon.com/config/home#/rules/view)。

1. 選擇 **Add rule (新增規則)**，然後選擇 **Add custom rule (新增自訂規則)**。

1. 在**AWS Lambda 函數 ARN** 中，插入與您要使用的 Lambda 函數相關聯的 ARN。

1. 選擇要設定的觸發類型：
   + **組態變更** – 當符合規則範圍的任何資源在組態中變更時， AWS Config 觸發評估。評估會在 AWS Config 傳送組態項目變更通知後執行。
   + **定期** – 依您選擇的頻率 AWS Config 執行規則的評估 （例如，每 24 小時）。

1. 針對**資源類型**，在 X-Ray 區段**EncryptionConfig**中選擇 。

1. 選擇 ****Save**** (儲存)。

 AWS Config 主控台會立即開始評估規則的合規。系統需要幾分鐘的時間來完成評估。

現在此規則符合規範， AWS Config 可以開始以時間軸的形式編譯稽核歷史記錄。 AWS Config 記錄資源變更。對於事件時間軸中的每個變更， 會以從/到格式 AWS Config 產生資料表，以顯示加密金鑰的 JSON 表示法中的變更。與 EncryptionConfig 相關聯的兩個欄位變更是 `Configuration.type` 和 `Configuration.keyID`。

## 範例結果
<a name="Examples"></a>

以下是 AWS Config 時間軸的範例，顯示在特定日期和時間所做的變更。

![\[AWS Config 時間軸。\]](http://docs.aws.amazon.com/zh_tw/xray/latest/devguide/images/ConfigTimeline.png)


以下是 AWS Config 變更項目的範例。變更前/後格式可說明有哪些變更。此範例顯示預設 X-Ray 加密設定已變更為定義的加密金鑰。

![\[X-Ray 加密組態變更項目。\]](http://docs.aws.amazon.com/zh_tw/xray/latest/devguide/images/ConfigChanges.png)


## Amazon SNS 通知
<a name="SNSNotifs"></a>

若要收到組態變更的通知，請將 AWS Config 設定為發佈 Amazon SNS 通知。如需詳細資訊，請參閱[透過電子郵件監控 AWS Config 資源變更](https://docs.aws.amazon.com/config/latest/developerguide/monitoring-resource-changes-by-email.html)。