使用 AWS Config 规则评估资源 - AWS Config

使用 AWS Config 规则评估资源

当您创建自定义规则或使用托管规则时,AWS Config 按照这些规则评估您的资源。您可以按照您的规则对资源进行按需评估。例如,当您创建自定义规则,并且希望查看 AWS Config 是否正确评估您的资源或确定 AWS Lambda 函数的评估逻辑是否有问题时,这会很有用。

示例
  1. 您创建一个自定义规则,用以评估您的 IAM 用户是否具有有效的访问密钥。

  2. AWS Config 按照您的自定义规则评估您的资源。

  3. 在您的账户中存在一个没有有效访问密钥的 IAM 用户。您的规则不能正确将此资源标记为 NON_COMPLIANT。

  4. 您修复规则并重新开始评估。

  5. 由于您修复了规则,规则正确评估您的资源,并将 IAM 用户资源标记为 NON_COMPLIANT。

向账户添加规则时,您可以指定在资源创建和管理过程中 AWS Config 何时评估您的资源。资源创建和管理过程称为资源预置。您可以选择评估模式来指定在此过程中 AWS Config 何时评估您的资源。

根据规则,AWS Config 可以在部署资源之前、部署资源之后或同时在这两个阶段评估资源配置。在资源部署之前对其进行评估是主动评估。在资源部署之后对其进行评估是侦查评估

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

资源类型架构说明了资源的属性。您可以在 AWS CloudFormation 注册表的“AWS 公有扩展”中找到资源类型架构,也可以使用以下 CLI 命令找到:

aws cloudformation describe-type --type-name "AWS::S3::Bucket" --type RESOURCE

有关更多信息,请参阅通过 AWS CloudFormation 注册表管理扩展,以及《AWS CloudFormation 用户指南》中的 AWS 资源和属性类型参考

注意

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

评估您的资源

开启主动评估
  1. 登录到 AWS Management Console,然后通过以下网址打开 AWS Config 控制台:https://console.aws.amazon.com/config/

  2. 在 AWS Management Console菜单上,验证区域选择器是否设置为支持 AWS Config 规则的区域。有关支持的 AWS 区域的列表,请参阅《Amazon Web Services 一般参考》中的 AWS Config 区域和端点

  3. 在左侧导航窗格中,选择 Rules。有关支持主动评估的托管规则列表,请参阅按评估模式列出的 AWS Config 托管规则列表

  4. 选择规则,然后为要更新的规则选择编辑规则

  5. 对于评估模式,选择开启主动评估,以允许您在部署资源之前对资源的配置设置进行评估。

  6. 选择 Save(保存)。

注意

您也可以使用 put-config-rule 命令并为 EvaluationModes 启用 PROACTIVE,或使用 PutConfigRule 操作并为 EvaluationModes 启用 PROACTIVE 来开启主动评估。

开启主动评估后,您可以使用 StartResourceEvaluation API 和 GetResourceEvaluationSummary API 来检查您在这些命令中指定的资源是否会被您所在区域的账户中的主动规则标记为 NON_COMPLIANT。

例如,从 StartResourceEvaluation API 开始:

aws configservice start-resource-evaluation --evaluation-mode PROACTIVE --resource-details '{"ResourceId":"MY_RESOURCE_ID", "ResourceType":"AWS::RESOURCE::TYPE", "ResourceConfiguration":"RESOURCE_DEFINITION_AS_PER_THE_RESOURCE_CONFIGURATION_SCHEMA", "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": "RESOURCE_DEFINITION_AS_PER_THE_RESOURCE_CONFIGURATION_SCHEMA" } }

要查看有关评估结果的更多信息,例如哪条规则将资源标记为 NON_COMPLIANT,请使用 GetComplianceDetailsByResource API。

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

评估您的资源(控制台)

  1. 登录到 AWS Management Console,然后通过以下网址打开 AWS Config 控制台:https://console.aws.amazon.com/config/

  2. 在 AWS Management Console菜单上,检查区域选择器是否设置为支持 AWS Config 规则的区域。有关支持的区域的列表,请参阅《Amazon Web Services 一般参考》中的 AWS Config 区域和终端节点

  3. 在导航窗格中,选择 Rules (规则)规则页面显示每条规则的名称、关联的修正操作和合规性状态。

  4. 从表中选择规则。

  5. 操作下拉列表中,选择重新评估

  6. AWS Config 开始按照您的规则评估资源。

注意

您可以按照每分钟一个规则的频率重新计算。您必须等待 AWS Config 完成您的规则的评估,然后您才能开始另一个评估。如果规则同时被更新或同时被删除,您将无法运行评估。

评估您的资源 (CLI)

  • 使用 start-config-rules-evaluation 命令:

    $ aws configservice start-config-rules-evaluation --config-rule-names ConfigRuleName

    AWS Config 开始按照您的规则评估记录的资源配置。您还可以在请求中指定多个规则:

    $ aws configservice start-config-rules-evaluation --config-rule-names ConfigRuleName1 ConfigRuleName2 ConfigRuleName3

评估您的资源 (API)

使用 StartConfigRulesEvaluation 操作。