

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 使用 Amazon Config 跟踪 X-Ray 加密配置更改
Amazon Config

Amazon X-Ray 与 Amazon Config 集成来记录对您的 X-Ray 加密资源所做的配置更改。您可以使用 Amazon Config 来清点 X-Ray 加密资源、审核 X-Ray 配置历史记录并基于资源更改发送通知。

Amazon Config 支持将以下 X-Ray 加密资源更改记录为事件：
+ **配置更改** - 更改或添加一个加密密钥，或恢复为默认 X-Ray 加密设置。

通过以下说明了解如何在 X-Ray 和 Amazon Config 之间建立基本连接。

## 创建 Lambda 函数触发器


您必须拥有自定义 Amazon Lambda 函数的 ARN 才能生成自定义 Amazon Config 规则。按照以下说明，通过 Node.js 创建一个基本函数，该函数基于 Amazon Config 资源的状态将合规或不合规值返回给 `XrayEncryptionConfig`。

**使用 AWS::XrayEncryptionConfig 更改触发器创建 Lambda 函数**

1. 打开 [Lambda 控制台](https://console.amazonaws.cn/lambda/home)。选择**创建函数**。

1. 选择**蓝图**，然后筛选蓝图库以得到 **config-rule-change-triggered** 蓝图。单击蓝图名称中的链接，或选择**配置**以继续。

1. 定义以下字段来配置蓝图：
   + 对于**名称**，键入名称。
   + 对于**角色**，请选择**从模板创建新角色**。
   + 对于 **Role name**，请输入名称。
   + 对于**策略模板**，选择 **Amazon Config 规则权限**。

1. 选择**创建函数** 以在 Amazon 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 资源进行只读访问。无法提供访问适当资源的权限会导致以下结果：当 Amazon Config 评估与规则关联的 Lambda 函数时，出现来自前者的超出范围的消息。

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

## 为 X-Ray 创建自定义 Amazon Config 规则


在创建 Lambda 函数时，记下该函数的 ARN，然后转到 Amazon Config 控制台来创建自定义规则。

**为 X-Ray 创建 Amazon Config 规则**

1. 打开 [Amazon Config 控制台的**规则**页面](https://console.amazonaws.cn/config/home#/rules/view)。

1. 选择**添加规则**，然后选择**添加自定义规则**。

1. 在 Function ARN（**Amazon Lambda 函数 ARN**)中，插入您要使用的与 Lambda 函数关联的 ARN。

1. 选择要设置的触发器类型：
   + **配置更改** - 当与规则范围匹配的任何资源的配置更改时，Amazon Config 将触发评估。在 Amazon Config 发送配置项更改通知后，评估便会运行。
   + **定期** - Amazon Config 按照您选择的频率运行评测（例如，每 24 小时）。

1. 在**资源类型**处，选择 X-Ray 一节中的 **EncryptionConfig**。

1. 选择****保存****。

Amazon Config 控制台将立即开始评估规则的合规性。完成评估可能需要几分钟时间。

由于此规则合规，因此 Amazon Config 可以开始编译审核历史记录。Amazon Config 以时间线的形式记录资源变化。对于事件时间轴中的每次变化，Amazon Config 都会用“从/更改为”格式生成一个表，以显示加密密钥的 JSON 表示有哪些变化。与 EncryptionConfig 关联的两个字段变化是 `Configuration.type` 和 `Configuration.keyID`。

## 示例结果


以下 Amazon Config 时间轴示例显示了在特定日期和时间所做的更改。

![\[Amazon Config 时间线。\]](http://docs.amazonaws.cn/xray/latest/devguide/images/ConfigTimeline.png)


以下是一个 Amazon Config 更改条目示例。“从/更改为”格式阐明了有什么变化。此示例显示默认 X-Ray 加密设置改为定义的加密密钥。

![\[X-Ray 加密配置更改条目。\]](http://docs.amazonaws.cn/xray/latest/devguide/images/ConfigChanges.png)


## Amazon SNS 通知


要在配置发生更改时得到通知，请将 Amazon Config 设置为发布 Amazon SNS 通知。有关更多信息，请参阅[通过电子邮件监控 Amazon Config 资源更改](https://docs.amazonaws.cn/config/latest/developerguide/monitoring-resource-changes-by-email.html)。