本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
使用 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 函数
-
打开 Lambda 控制台
。选择创建函数。 -
选择蓝图,然后筛选蓝图库以得到 config-rule-change-triggered 蓝图。单击蓝图名称中的链接,或选择配置以继续。
-
定义以下字段来配置蓝图:
-
对于名称,键入名称。
-
对于角色,请选择从模板创建新角色。
-
对于 Role name,请输入名称。
-
对于策略模板,选择 AWS Config 规则权限。
-
-
选择创建函数 以在 AWS Lambda 控制台中创建和显示函数。
-
编辑您的函数代码,将
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'; -
将以下内容添加到您的 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 规则
-
选择添加规则,然后选择添加自定义规则。
-
在 Function ARN(AWS Lambda 函数 ARN)中,插入您要使用的与 Lambda 函数关联的 ARN。
-
选择要设置的触发器类型:
-
配置更改 - 当与规则范围匹配的任何资源的配置更改时,AWS Config 将触发评估。在 AWS Config 发送配置项更改通知后,评估便会运行。
-
定期 - AWS Config 按照您选择的频率运行评测(例如,每 24 小时)。
-
-
在资源类型处,选择 X-Ray 一节中的 EncryptionConfig。
-
选择保存。
AWS Config 控制台将立即开始评估规则的合规性。完成评估可能需要几分钟时间。
由于此规则合规,因此 AWS Config 可以开始编译审核历史记录。AWS Config 以时间线的形式记录资源变化。对于事件时间轴中的每次变化,AWS Config 都会用“从/更改为”格式生成一个表,以显示加密密钥的 JSON 表示有哪些变化。与 EncryptionConfig 关联的两个字段变化是 Configuration.type
和 Configuration.keyID
。
示例结果
以下 AWS Config 时间轴示例显示了在特定日期和时间所做的更改。
![AWS Config 时间线。](images/ConfigTimeline.png)
以下是一个 AWS Config 更改条目示例。“从/更改为”格式阐明了有什么变化。此示例显示默认 X-Ray 加密设置改为定义的加密密钥。
![X-Ray 加密配置更改条目。](images/ConfigChanges.png)
Amazon SNS 通知
要在配置发生更改时得到通知,请将 AWS Config 设置为发布 Amazon SNS 通知。有关更多信息,请参阅通过电子邮件监控 AWS Config 资源更改。