本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
Amazon Config 规则的评估模式和触发器类型
在向账户添加规则时,您可以指定在资源创建和管理过程中何 Amazon Config 时评估您的资源。资源创建和管理过程称为资源预置。您可以选择评估模式来指定在此过程中何 Amazon Config 时评估您的资源。
根据规则, Amazon Config 可以在部署资源之前、部署资源之后或两者兼而有之地评估您的资源配置。在资源部署之前对其进行评估是主动评估。在资源部署之后对其进行评估是侦查评估。
您也可以选择触发器类型来指定您的 Amazon Config 规则评估资源的频率。当配置发生更改时,可以按定期计划或按选择的频率对资源进行评估。
触发器类型
向账户添加规则后, Amazon Config 将您的资源与规则的条件进行比较。在这次初始评估之后,每次触发评估时都会 Amazon Config 继续运行评估。规则中会定义评估触发器,可以包括以下类型:
触发器类型 | 描述 |
---|---|
配置更改 | Amazon Config 当存在与规则范围匹配的资源并且资源的配置发生变化时,会对规则进行评估。评估将在 Amazon Config 发送配置项目变更通知后运行。 通过定义规则的范围来选择哪些资源启动评估。范围可以包括:
Amazon Config 当它检测到与规则范围相匹配的资源发生变化时,就会运行评估。您可以使用范围来定义哪些资源启动评估。 |
定期 | Amazon Config 按您选择的频率对规则进行评估;例如,每 24 小时运行一次。 |
混合 | 有些规则既有配置更改也有定期触发器。对于这些规则,它 Amazon Config 会在检测到配置更改时以及按照您指定的频率评估您的资源。 |
评估模式
有两种评估模式:
使用主动评估在资源部署之前对其进行评估。这使您可以评估一组资源属性(如果用于定义 Amazon 资源)是合规还是不合规,因为您所在地区的账户中有一组主动规则。
资源类型架构说明了资源的属性。您可以在 Amazon CloudFormation 注册表的 “Amazon 公共扩展” 中找到资源类型架构,也可以使用以下 CLI 命令找到:
aws cloudformation describe-type --type-name "AWS::S3::Bucket" --type
RESOURCE
有关更多信息,请参阅《 Amazon CloudFormation 用户指南》中参考的通过 Amazon CloudFormation 注册表管理扩展以及Amazon 资源和属性类型。
注意
主动规则不会修复标记为 NON_COMPLIANT 的资源,也不会阻止部署这些资源。
主动评估的托管规则列表
有关支持主动评估的托管规则列表,请参阅按评估模式列出的 Amazon Config 托管规则列表。
支持主动评估的资源类型列表
以下是支持主动评估的资源类型列表:
-
AWS::ApiGateway::Stage
-
AWS::AutoScaling::AutoScalingGroup
-
AWS::EC2::EIP
-
AWS::EC2::Instance
-
AWS::EC2::Subnet
-
AWS::Elasticsearch::Domain
-
AWS::Lambda::Function
-
AWS::RDS::DBInstance
-
AWS::Redshift::Cluster
-
AWS::S3::Bucket
-
AWS::SNS::Topic
主动评估的规则示例
主动规则示例
-
您可以将 Amazon Config 托管规则添加到您的账户
S3_BUCKET_LOGGING_ENABLED
,以检查您的 S3 存储桶是否启用了日志记录。 -
对于评估模式,请在 Amazon 管理控制台中选择 “开启主动评估”,或者在 PutConfigRuleAPI
EvaluationModes
中启用PROACTIVE
。
开启主动评估后,您可以使用 StartResourceEvaluationAPI 和 GetResourceEvaluationSummaryAPI 来检查您的账户中尚未部署到生产环境的存储桶是否未启用日志记录。这允许您在部署之前测试资源配置,并重新评估是否要将资源部署到生产环境。
例如,从 StartResourceEvaluation API 开始:
aws configservice start-resource-evaluation --evaluation-mode PROACTIVE --resource-details '{"ResourceId":"
MY_RESOURCE_ID
", "ResourceType":"AWS::S3::Bucket", "ResourceConfiguration": "{\"BucketName\": \"my-bucket
\", \"LoggingConfiguration\": {\"DestinationBucketName\": \"my-log-bucket
\",\"LogFilePrefix\":\"my-log
\"}}", "ResourceConfigurationSchemaType":"CFN_RESOURCE_SCHEMA"}'
您应该会在输出中收到 ResourceEvaluationId
:
{ "ResourceEvaluationId": "MY_RESOURCE_EVALUATION_ID" }
然后,使用ResourceEvaluationId
带有 GetResourceEvaluationSummary API 的来检查评估结果:
aws configservice get-resource-evaluation-summary --resource-evaluation-id
MY_RESOURCE_EVALUATION_ID
您应收到类似以下内容的输出:
{ "ResourceEvaluationId": "MY_RESOURCE_EVALUATION_ID", "EvaluationMode": "PROACTIVE", "EvaluationStatus": { "Status": "SUCCEEDED" }, "EvaluationStartTimestamp": "2022-11-15T19:13:46.029000+00:00", "Compliance": "COMPLIANT", "ResourceDetails": { "ResourceId": "MY_RESOURCE_ID", "ResourceType": "AWS::RESOURCE::TYPE", "ResourceConfiguration": "{\"BucketName\": \"my-bucket\", \"LoggingConfiguration\": {\"DestinationBucketName\": \"my-log-bucket\",\"LogFilePrefix\":\"my-log\"}}", } }
要查看有关评估结果的更多信息,例如哪条规则将资源标记为 “不合规”,请使用 API。GetComplianceDetailsByResource
使用侦查评估来评估已部署的资源。这允许您评估现有资源的配置设置。
侦查评估的规则示例
变更触发的规则示例
-
向账户添加托管规则
S3_BUCKET_LOGGING_ENABLED
,以检查您的 S3 存储桶是否启用了日志记录。 -
该规则的触发器类型是配置更改。 Amazon Config 在创建、更改或删除 S3 存储桶时对规则进行评估。
-
当存储桶更新时,配置更改会启动此规则, Amazon Config 会评估存储桶是否符合此规则。
定期规则示例
-
向账户添加托管规则
IAM_PASSWORD_POLICY
。此规则检查您的 IAM 用户的密码策略是否符合您的账户策略,如最小长度或特定字符要求。 -
该规则的触发器类型是周期性的。 Amazon Config 按您指定的频率(例如每 24 小时)对规则运行评估。
-
该规则每 24 小时启动一次,并 Amazon Config 评估您的 IAM 用户的密码是否符合该规则。
具有配置更改和定期触发器的混合规则示例
-
创建自定义规则,评估您账户中的 Amazon CloudTrail 跟踪是否已开启并记录所有区域。
-
每次创建、更新或删除跟踪时,您都希望 Amazon Config 对规则进行评估。您还 Amazon Config 想每 12 小时运行一次规则。
-
对于触发器类型,您可以为配置更改和定期触发器编写逻辑。有关更多信息,请参阅Amazon Config 规则的组成部分:编写规则。
关闭配置记录器时的规则评估
如果您关闭配置记录器,则 Amazon Config 会停止记录对资源配置的更改。这会在以下方面影响到您的规则评估:
-
定期规则继续以指定的频率运行评估。
-
变更触发的规则不运行评估。
-
混合规则仅以指定的频率运行评估。规则不为配置更改运行评估。
-
如果您针对具有配置更改触发器的规则运行按需评估,则规则将评估资源的最后已知状态,这是最后一个记录的配置项目。
重要
避免不必要的 Amazon Config 评估
除非删除定期规则和混合规则,否则即使已关闭配置记录器,定期规则和混合规则也将继续运行。这些规则只评估在关闭配置记录器之前记录的配置项目,这意味着如果没有新信息,这些规则将重现相同的评估结果。关闭配置记录器时,请删除定期规则和混合规则,以避免不必要的活动和规则评估。