使用 AWS Config 跟踪 X-Ray 加密配置更改 - AWS X-Ray
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

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

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

AWS Config 支持将以下 X-Ray 加密资源更改记录为事件:

  • 配置更改 – 更改或添加一个加密密钥,或恢复为默认 X-Ray 加密设置。

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

创建 Lambda 函数触发器

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

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

  1. 打开 Lambda 控制台。选择 Create function

  2. 选择 Blueprints (蓝图),然后筛选蓝图库以得到 config-rule-change-triggered 蓝图。单击蓝图名称中的链接,或选择 Configure (配置) 以继续。

  3. 定义以下字段来配置蓝图:

    • 对于 Name (名称),键入名称。

    • 对于 Role,请选择 Create new role from template(s)

    • 对于 Role name,请输入名称。

    • 对于 Policy templates (策略模板),选择 AWS Config Rules permissions (AWS Config 规则权限)

  4. 选择 Create function (创建函数) 以在 AWS Lambda 控制台中创建和显示函数。

  5. 编辑您的函数代码,将 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';
  6. 将以下内容添加到您在 IAM 中的执行角色以便能访问 X-Ray。这些权限允许对您的 X-Ray 资源进行只读访问。无法提供访问适当资源的权限会导致以下结果:当 AWS Config 评估与规则关联的 Lambda 函数时,出现来自前者的超出范围的消息。

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

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

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

为 X-Ray 创建 AWS Config 规则

  1. 打开 AWS Config 控制台的 Rules (规则) 页面

  2. 选择 Add rule (添加规则),然后选择 Add custom rule (添加自定义规则)

  3. AWS Lambda Function ARN (AWS Lambda 函数 ARN) 中,插入要使用的与 Lambda 函数关联的 ARN。

  4. 选择要设置的触发器类型:

    • 配置更改 – 当与规则范围匹配的任何资源的配置更改时,AWS Config 将触发评估。在 AWS Config 发送配置项更改通知后,评估便会运行。

    • 定期 – AWS Config 按照您选择的频率运行评估(例如,每 24 小时)。

  5. 对于 Resource type (资源类型),选择 X-Ray 部分中的 EncryptionConfig

  6. 选择 Save (保存)

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

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

示例结果

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


      AWS Config 时间线

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


      X-Ray 加密配置更改条目

Amazon SNS 通知

要在配置发生更改时得到通知,请将 AWS Config 设置为发布 Amazon SNS 通知。有关更多信息,请参阅通过电子邮件监控 AWS Config 资源更改