添加、更新和删除 Amazon Config 规则 - Amazon Config
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

添加、更新和删除 Amazon Config 规则

您可以使用 Amazon Config 控制台、Amazon CLI 和 Amazon Config API 来查看、添加和删除您的规则。

添加、查看、更新和删除规则(控制台)

规则页面在一个表中显示您的规则及其当前的合规性结果。在 根据规则完成对您的资源的评估前,每个规则的结果都显示为 Evaluating...Amazon Config。您可以使用刷新按钮更新结果。当 Amazon Config 完成评估时,您可以看到合规或不合规的规则和资源类型。有关更多信息,请参阅查看配置合规性

注意

Amazon Config 仅评估它所记录的资源类型。例如,如果您添加 cloudtrail-enabled 规则,但未记录 CloudTrail 跟踪资源类型,Amazon Config 将无法评估您账户中的跟踪是否合规。有关更多信息,请参阅选择 Amazon Config 记录哪些资源

添加一项规则
  1. 登录到 Amazon Web Services Management Console,然后通过以下网址打开 Amazon Config 控制台:https://console.aws.amazon.com/config/

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

  3. 在左侧导航窗格中,选择 Rules

  4. Rules 页面,选择 Add rule

  5. 指定规则类型页面上,通过完成以下步骤指定规则类型:

    1. 在搜索字段中键入内容,以便按规则名称、描述和标签筛选托管规则列表。例如,键入 EC2 可返回评估 EC2 资源类型的规则,或者键入 periodic 可返回定期触发的规则。

    2. 您还可以创建自己的自定义规则。选择使用 Lambda 创建自定义规则使用 Guard 创建自定义规则,然后按照创建 Amazon Config 自定义 Lambda 规则创建 Amazon Config 自定义策略规则中的步骤进行操作。

  6. 创建规则页面上,通过完成以下步骤来配置规则:

    1. 对于 Name,请输入一个唯一的规则名称。

    2. 对于描述,键入规则的描述。

    3. 对于评估模式,请选择在资源创建和管理过程中 Amazon Config 何时评估您的资源。根据规则,Amazon Config 可以在部署资源之前、部署资源之后或同时在这两个阶段评估资源配置。

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

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

        有关使用此命令的更多信息,请参阅使用 Amazon Config 规则评估您的资源。有关支持主动评估的托管规则列表,请参阅按评估模式列出的 Amazon Config 托管规则列表

      2. 选择开启侦查评估以评估您的现有资源的配置设置。

        对于侦查评估,有两种类型的触发器:在配置发生更改时定期

        1. 如果您的规则的触发器类型包括配置更改,请为更改范围指定以下选项之一,以便 Amazon Config 按其调用您的 Lambda 函数:

          • 资源 – 在创建、更改或删除与指定资源类型(或类型和标识符)匹配的资源时。

          • 标签 – 在创建、更改或删除包含指定标签的资源时。

          • 所有更改 – 在创建、更改或删除 Amazon Config 记录的资源时。

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

        2. 如果您的规则的触发器类型包括定期,请指定频率,以便 Amazon Config 按其调用您的 Lambda 函数。

    4. 对于参数,如果您的规则包含参数,可以自定义所提供的键的值。参数是资源在被视为符合规则之前必须遵守的属性。

  7. 审核和创建页面上,查看您的所有选择,然后再将规则添加到您的 Amazon 账户。如果规则没有按预期运行,您可能会在合规性中看到以下内容之一:

    • No results reported (未报告任何结果) - Amazon Config 针对规则评估了您的资源。规则不适用于其范围内的 Amazon 资源,指定的资源已删除,或者评估规则已删除。要获取评估结果,请更新规则、更改其范围或者选择 Re-evaluate

      如果规则不报告评估结果,该消息可能也会出现。

    • No resources in scope (范围中没有资源) - Amazon Config 无法对照规则来评估您记录的 Amazon 资源,因为您的任何资源都不在规则范围内。要获得评估结果,请编辑规则并更改其范围,或者使用设置页面添加 Amazon Config 要记录的资源。

    • Evaluations failed (评估失败) - 有关可帮助您确定问题的信息,请选择规则名称以打开其详细信息页面并查看错误消息。

查看您的规则
  1. 登录到 Amazon Web Services Management Console,然后通过以下网址打开 Amazon Config 控制台:https://console.aws.amazon.com/config/

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

  3. 在左侧导航窗格中,选择 Rules

  4. 规则页面显示您的 Amazon Web Services 账户中当前存在的所有规则。其中列出每条规则的名称、关联的修正操作和合规性状态。

    • 选择 Add rule 以开始创建规则。

    • 选择规则可查看其设置,或者选择规则,然后选择查看详细信息

    • 当规则评估资源时,请查看规则的合规性状态。

    • 选择规则,然后选择编辑规则以更改该规则的配置设置,并为不合规的规则设置修正操作。

更新规则
  1. 登录到 Amazon Web Services Management Console,然后通过以下网址打开 Amazon Config 控制台:https://console.aws.amazon.com/config/

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

  3. 在左侧导航窗格中,选择 Rules

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

  5. 编辑规则页面上修改设置,以根据需要更改您的规则。

  6. 选择 Save(保存)。

删除一项规则
  1. 登录到 Amazon Web Services Management Console,然后通过以下网址打开 Amazon Config 控制台:https://console.aws.amazon.com/config/

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

  3. 在左侧导航窗格中,选择 Rules

  4. 从表中选择要删除的规则。

  5. 操作下拉列表中,选择删除规则

  6. 出现提示时,键入“Delete”(此条目区分大小写),然后选择删除

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

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

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

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

注意

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

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

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

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

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

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

  6. 选择 Save(保存)。

开启主动评估后,您可以使用 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。

查看、更新或添加和删除规则 (Amazon CLI)

查看您的规则
  • 使用 describe-config-rules 命令:

    $ aws configservice describe-config-rules

    Amazon Config 将返回您的所有规则的详细信息。

更新或添加规则
  1. 使用包含 --generate-cli-skeleton 参数的 put-config-rule 命令来创建包含您的规则参数的本地 JSON 文件:

    $ aws configservice put-config-rule --generate-cli-skeleton > putConfigRule.json
  2. 在文本编辑器中打开该 JSON 文件,然后删除不需要更新的所有参数,不过以下内容例外:

    • 至少包括以下参数之一以确定规则:

      ConfigRuleNameConfigRuleArn 或者 ConfigRuleId

    • 如果您要更新自定义规则,则必须包含 Source 对象及其参数。

  3. 填写剩余参数的值。要引用规则的详细信息,请使用 describe-config-rules 命令。

    例如,以下 JSON 代码可以更新自定义规则范围内的资源类型:

    { "ConfigRule": { "ConfigRuleName": "ConfigRuleName", "Scope": { "ComplianceResourceTypes": [ "AWS::EC2::Instance", "AWS::EC2::Volume", "AWS::EC2::VPC" ] }, "Source": { "Owner": "CUSTOM_LAMBDA", "SourceIdentifier": "arn:aws:lambda:us-east-2:123456789012:function:ConfigRuleName", "SourceDetails": [ { "EventSource": "aws.config", "MessageType": "ConfigurationItemChangeNotification" } ] } } }
  4. 使用包含 --cli-input-json 参数的 put-config-rule 命令将您的 JSON 配置传递到 Amazon Config:

    $ aws configservice put-config-rule --cli-input-json file://putConfigRule.json
  5. 要验证您是否成功更新了规则,请使用 describe-config-rules 命令查看该规则的配置:

    $ aws configservice describe-config-rules --config-rule-name ConfigRuleName { "ConfigRules": [ { "ConfigRuleState": "ACTIVE", "ConfigRuleName": "ConfigRuleName", "ConfigRuleArn": "arn:aws:config:us-east-2:123456789012:config-rule/config-rule-nnnnnn", "Source": { "Owner": "CUSTOM_LAMBDA", "SourceIdentifier": "arn:aws:lambda:us-east-2:123456789012:function:ConfigRuleName", "SourceDetails": [ { "EventSource": "aws.config", "MessageType": "ConfigurationItemChangeNotification" } ] }, "Scope": { "ComplianceResourceTypes": [ "AWS::EC2::Instance", "AWS::EC2::Volume", "AWS::EC2::VPC" ] }, "ConfigRuleId": "config-rule-nnnnnn" } ] }
删除一项规则
  • 使用以下示例中所示的 delete-config-rule 命令:

    $ aws configservice delete-config-rule --config-rule-name ConfigRuleName

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

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

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

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

注意

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

开启主动评估

使用 put-config-rule 命令并为 EvaluationModes 启用 PROACTIVE

开启主动评估后,您可以使用 start-resource-evaluation CLI 命令和 get-resource-evaluation-summary CLI 命令检查您在这些命令中指定的资源是否会被您所在区域的账户中的主动规则标记为 NON_COMPLIANT。

例如,先使用 start-resource-evaluation 命令:

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" }

然后,将 ResourceEvaluationIdget-resource-evaluation-summary 结合使用来检查评估结果:

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,请使用 get-compliance-details-by-resource CLI 命令。

注意

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

查看、更新或添加和删除规则 (API)

查看您的规则

使用 DescribeConfigRules 操作。

更新或添加规则

使用 PutConfigRule 操作。

删除规则

使用 DeleteConfigRule 操作。

注意

如果规则创建的评估结果无效,建议您在修复该规则并运行新评估之前先删除这些结果。有关更多信息,请参阅从 Amazon Config 规则中删除评估结果

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

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

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

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

注意

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

为规则开启主动评估

使用 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。

注意

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

将规则评估发送到 Security Hub

添加 Amazon Config 规则后,您还可以将规则评估发送到 Amazon Security Hub。Amazon Config 与 Security Hub 集成后,您可以对规则评估以及其他错误配置和安全问题进行分类和修复。

将规则评估发送到 Security Hub

要将规则评估发送到 Security Hub,必须先设置 Amazon Security Hub 和 Amazon Config,然后再添加至少一条 Amazon Config 托管或自定义规则。之后,Amazon Config 会立即开始向 Security Hub 发送规则评估。Security Hub 可以丰富规则评估,并将其转化为 Security Hub 调查结果。

有关此集成的更多信息,请参阅《Amazon Security Hub 用户指南》中的可用的 Amazon 服务集成