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 发送配置项更改通知后,评估便会运行。 通过定义规则的范围来选择哪些资源启动评估。范围可以包括:
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或者同时指定为DETECTIVE和PROACTIVE。必须指定评估模式,且此字段不能为空。注意
主动规则不会修复标记为 NON_COMPLIANT 的资源,也不会阻止部署这些资源。