Amazon Config 的工作原理 - Amazon Config
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

Amazon Config 的工作原理

打开 Amazon Config 之后,它会先查找您账户中受支持的 Amazon 资源,并为每个资源生成一个配置项

Amazon Config 还会在某个资源的配置更改时生成配置项,并在您启动配置记录器后,保留配置项的历史记录。默认情况下,Amazon Config 会为区域内每个支持的资源创建配置项。如果您不希望 Amazon Config 为所有支持的资源都创建配置项,您可以指定希望其跟踪的资源类型。

在指定 Amazon Config 要跟踪的资源类型之前,请检查按区域可用性列出的资源覆盖范围,以查看您设置 Amazon Config 的 Amazon 区域是否支持该资源类型。如果 Amazon Config 至少在一个区域支持某种资源类型,则即使您设置 Amazon Config 的 Amazon 区域不支持指定的资源类型,您也可以在 Amazon Config 支持的所有区域中启用该资源类型的记录。

Amazon Config 可以针对您账户中的每个资源调用 Describe 或 List API,从而记录您的资源的所有更改。该服务使用相同的 API 调用来捕获所有相关资源的配置详细信息。

例如,从 VPC 安全组删除出站规则将导致 Amazon Config 对安全组调用 Describe API。之后,Amazon Config 会对与该安全组关联的所有实例调用 Describe API。安全组(资源)以及每个实例(相关资源)的更新后配置将被记录为配置项,并以配置流的形式传送到 Amazon Simple Storage Service (Amazon S3) 存储桶。

Amazon Config 还会跟踪不是由 API 发起的配置更改。Amazon Config 会定期检查资源配置,并针对已更改的配置生成配置项。

如果您使用的是 Amazon Config 规则,则 Amazon Config 会持续评估您的 Amazon 资源是否具备所需设置。根据具体规则,Amazon Config 会在配置更改时评估您的资源或定期进行评估。每个规则都与一个 Amazon Lambda 函数关联,其中包含规则的评估逻辑。当 Amazon Config 评估您的资源时,它会调用规则的 Amazon Lambda 函数。该函数会返回被评估资源的合规性状态。如果某个资源不符合某项规则的条件,那么 Amazon Config 会将该资源和规则标记为不合规。当某个资源的合规性状态发生更改时,Amazon Config 会向您的 Amazon SNS 主题发送通知。下图简要介绍了 Amazon Config 的工作原理。


      Amazon Config 的工作原理。

传送配置项

Amazon Config 可以通过以下通道传送配置项:

Amazon S3 存储桶

Amazon Config 会跟踪您的 Amazon 资源的配置更改,并将更新后的配置详细信息定期发送到您指定的 Amazon S3 存储桶。对于 Amazon Config 记录的每个资源类型,它会每隔 6 小时发送一个配置历史记录文件。每个配置历史记录文件中都包含前 6 小时内发生更改的资源的详细信息。每个文件均包含一种类型的资源,例如 Amazon EC2 实例或 Amazon EBS 卷。如果配置未发生更改,Amazon Config 则不会发送文件。

deliver-config-snapshot 命令与 Amazon CLI 结合使用时,或将 DeliverConfigSnapshot 操作与 Amazon Config API 结合使用时,Amazon Config 会向 Amazon S3 存储桶发送配置快照。配置快照包含 Amazon Config 在您的 Amazon 账户中记录的所有资源的配置详细信息。配置历史记录文件和配置快照均采用 JSON 格式。

注意

Amazon Config 仅将配置历史记录文件和配置快照传输到指定的 S3 存储桶;Amazon Config 不会修改 S3 存储桶中对象的生命周期策略。您可以使用生命周期策略指定是删除对象,还是将对象存档到 Amazon S3 Glacier。有关更多信息,请参阅《Amazon Simple Storage Service 用户指南》中的管理生命周期配置。您还可以查看将 Amazon S3 数据存档到 S3 Glacier 博客文章。

Amazon SNS 主题

Amazon Simple Notification Service (Amazon SNS) 主题是一个沟通渠道,Amazon SNS 使用它将消息(或通知)传送到订阅端点,例如电子邮箱地址或客户端。其他类型的 Amazon SNS 通知包括传送到手机应用程序上的推送通知消息、传送到支持短信服务功能的手机上的短信服务 (SMS) 通知以及 HTTP POST 请求。为了获得最佳效果,请使用 SQS 作为 SNS 主题的通知端点,然后以编程方式处理通知中的信息。

Amazon Config 使用您指定的 Amazon SNS 主题向您发送通知。您收到的通知的类型由消息正文中的 messageType 键的值体现,如以下示例所示:

"messageType": "ConfigurationHistoryDeliveryCompleted"

通知可以是以下任一类型的消息:

ComplianceChangeNotification

Amazon Config 评估的资源的合规性状态已更改。合规性类型指示资源是否符合特定的 Amazon Config 规则,并且它由消息中的 ComplianceType 键表示。消息中包含 newEvaluationResultoldEvaluationResult 对象,以便进行比较。

ConfigRulesEvaluationStarted

Amazon Config 开始针对指定的资源评估您的规则。

ConfigurationSnapshotDeliveryStarted

Amazon Config 开始向您的 Amazon S3 存储桶传送配置快照。Amazon S3 存储桶的名称是为消息中的 s3Bucket 键提供的。

ConfigurationSnapshotDeliveryCompleted

Amazon Config 已成功将配置快照传送到您的 Amazon S3 存储桶。

ConfigurationSnapshotDeliveryFailed

Amazon Config 未能将配置快照传送到您的 Amazon S3 存储桶。

ConfigurationHistoryDeliveryCompleted

Amazon Config 已成功将配置历史记录传送到您的 Amazon S3 存储桶。

ConfigurationItemChangeNotification

某个资源的已被创建、删除或更改配置。此消息包含 Amazon Config 针对上述更改创建的配置项的详细信息,其中包括更改的类型。上述通知均在发生更改后的几分钟内传送,统称为配置流

OversizedConfigurationItemChangeNotification

当配置项变更通知超出了 Amazon SNS 允许的最大大小时,会传送此消息类型。消息中包括配置项摘要。除短信外,Amazon SNS 消息最多可以包含 256 KB 的文本数据,包括 XML、JSON 和未格式化的文本。您可以在指定的 Amazon S3 存储桶位置查看完整通知。

OversizedConfigurationItemChangeDeliveryFailed

Amazon Config 无法将过大配置项变更通知传送到您的 Amazon S3 存储桶。

有关示例通知,请参阅 Amazon Config 发送到 Amazon SNS 主题的通知

有关 Amazon SNS 的更多信息,请参阅 Amazon Simple Notification Service 开发人员指南