AWS Config 规则的组成部分 - AWS Config

AWS Config 规则的组成部分

AWS Config 规则评估您的 AWS 资源的配置设置。本页讨论规则的组成部分。

AWS Config 规则是如何运作的

在 AWS Config 持续跟踪您的资源中出现的配置更改时,它会检查这些更改是否不符合规则中的任何条件。如果某个资源不符合规则,则 AWS Config 会将该资源和规则标记为不合规

以下是 AWS Config 规则四个可能的评估结果。

评估结果 描述
COMPLIANT 规则通过了合规性检查的条件。
NON_COMPLIANT 此规则未通过合规性检查的条件。
ERROR 其中一个必选/可选参数无效,或者类型不正确,或者格式不正确。
NOT_APPLICABLE 用于筛选出无法应用规则逻辑的资源。例如,alb-desync-mode-check 规则仅检查应用程序负载均衡器,而忽略网络负载均衡器和网关负载均衡器。

例如,当创建 EC2 卷时,AWS Config 可以按照需要卷加密的规则来评估该卷。如果卷没有加密,AWS Config 会将卷和规则标记为不合规。AWS Config 还可以在您的所有资源中检查有无账户范围内的要求。例如,AWS Config 可以检查账户中的 EC2 卷数是否在所需总数内,或者账户是否使用 AWS CloudTrail 进行日志记录。

触发器类型

将规则添加到账户后,AWS Config 会将您的资源与规则的条件进行比较。完成这一初始评估后,AWS Config 会在每次触发评估时继续执行评估。规则中会定义评估触发器,可以包括以下类型。

触发器类型 描述
配置更改 当存在与规则范围匹配的资源,并且资源配置发生变化时,AWS Config 会对规则进行评估。在 AWS Config 发送配置项更改通知后,评估便会运行。

通过定义规则的范围来选择哪些资源启动评估。范围可以包括:

  • 一个或多个资源类型

  • 资源类型和资源 ID 的组合

  • 标签键和值的组合

  • 当创建、更新或删除任何记录的资源时

AWS Config 在检测到与规则的范围匹配的资源发生更改时运行评估。您可以使用范围来定义哪些资源启动评估。

定期 AWS Config 会按照您选择的频率运行规则评估(例如,每 24 小时)。
混合 有些规则既有配置更改也有定期触发器。对于这些规则,AWS Config 会在检测到配置更改时以及按照您指定的频率评估您的资源。

评估模式

AWS Config 规则有两种评估模式。

评估模式 描述
主动

使用主动评估在资源部署之前对其进行评估。这使您可以根据您所在区域的账户中的主动规则集,评估一组资源属性(如果用于定义 AWS 资源)是 COMPLIANT 还是 NON_COMPLIANT。

侦查 使用侦查评估来评估已部署的资源。这允许您评估现有资源的配置设置。
注意

主动规则不会修复标记为 NON_COMPLIANT 的资源,也不会阻止部署这些资源。

有关更多信息,请参阅为 AWS Config 规则开启主动评估

主动评估的托管规则列表

有关支持主动评估的托管规则列表,请参阅按评估模式列出的 AWS Config 托管规则列表

支持主动评估的资源类型列表

以下是支持主动评估的资源类型列表:

  • AWS::EC2::EIP

  • AWS::EC2::Instance

  • AWS::Lambda::Function

  • AWS::RDS::DBInstance

  • AWS::Redshift::Cluster

  • AWS::S3::Bucket

  • AWS::SNS::Topic

AWS Config 规则元数据

AWS Config 规则可以包含以下可变元数据:

默认名称

defaultName 是规则实例在默认情况下将获得的名称。

description

规则描述提供了规则评估内容的上下文。AWS Config 控制台具有 256 个字符的限制。作为最佳实践,规则描述应以“检查是否”开头,并包括对 NON_COMPLIANT 场景的描述。在规则描述中首次提及时,服务名称应以 AWS 或 Amazon 开头。例如,首次提及时应使用 AWS CloudTrail 或 Amazon CloudWatch,而不是 CloudTrail 或 CloudWatch。服务名称可以在后续引用后使用缩写。

范围

范围决定了规则所针对的资源类型。有关支持的资源类型列表,请参阅支持的资源类型

compulsoryInputParameterDetails

compulsoryInputParameterDetails 用于规则进行评估所需的参数。例如,access-keys-rotated 托管规则包含 maxAccessKeyAge 作为必要参数。如果为必要参数,则不会被标记为(可选)。必须指定每个参数的类型。类型可以是“String”、“int”、“double”、“CSV”、“boolean” 和 “StringMap” 之一。

optionalInputParameterDetails

optionalInputParameterDetails 用于规则评估时可选的参数。例如,elasticsearch-logs-to-cloudwatch 托管规则包含 logTypes 作为可选参数。必须指定每个参数的类型。类型可以是“String”、“int”、“double”、“CSV”、“boolean” 和 “StringMap” 之一。

supportedEvaluationModes

supportedEvaluationModes 决定何时对资源进行评估,在部署资源之前或在部署资源之后。

DETECTIVE 用于评估已经部署的资源。这允许您评估现有资源的配置设置。PROACTIVE 用于在资源部署之前对其进行评估。

这使您可以根据您所在区域的账户中的主动规则集,评估一组资源属性(如果用于定义 AWS 资源)是 COMPLIANT 还是 NON_COMPLIANT。

可以将 supportedEvaluationModes 指定为 DETECTIVE 或,PROACTIVE或者同时指定为 DETECTIVEPROACTIVE。必须指定评估模式,且此字段不能为空。

注意

主动规则不会修复标记为 NON_COMPLIANT 的资源,也不会阻止部署这些资源。