View a markdown version of this page

正在添加 Amazon Config Rules - Amazon Config
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)。

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

正在添加 Amazon Config Rules

你可以使用 Amazon Config 控制台或 Amazon 用于添加规则的 SDK。

添加规则(控制台)

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

注意

当你添加新规则时, Amazon Config 评估资源清单中的适用资源,包括先前记录的资源。例如,如果您记录了 AWS::IoT::Policy 资源,但后来将其排除在记录范围之外, Amazon Config 会在清单中保留初始配置项(CI)。当这些 CI 的关联资源类型被排除在记录范围之外时, Amazon Config 将不再更新这些 CI,但会保留它们上次记录的状态,并在您添加适用的规则时对它们进行评估。

有关更多信息,请参阅 使用录制 Amazon 资源 Amazon Config。

添加一项规则
  1. 登录 Amazon Web Services 管理控制台 然后打开 Amazon Config 控制台在 https://console.aws.amazon.com/config/home。

  2. 在 Amazon Web Services 管理控制台 菜单,验证区域选择器是否设置为支持的区域 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 用于检查您在这些命令中指定的资源是否会被您所在地区的账户中的主动规则标记为 NON_COMPLIANT 的 API。

        有关使用此命令的更多信息,请参见 使用以下方法评估您的资源 Amazon Config 规则。有关支持主动评估的托管规则列表,请参阅 清单 Amazon Config 按评估模式划分的托管规则。

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

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

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

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

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

          • 所有更改 — 当资源记录者时 Amazon Config 已创建、更改或删除。

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

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

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

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

    • 未报告任何结果 - Amazon Config 根据规则评估了您的资源。该规则不适用于 Amazon 其范围内的资源、指定的资源被删除或评估结果被删除。要获得评估结果,请更新规则、更改其范围或选择 Re-evaluate。

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

    • 范围内没有资源 - Amazon Config 无法评估您的录音 Amazon 资源违反此规则,因为您的所有资源都不在该规则的范围内。要获得评估结果,请编辑规则并更改其范围,或为以下项添加资源 Amazon Config 使用录制 设置 页面。

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

添加规则 (Amazon 软件开发工具包)

以下代码示例显示了如何使用 PutConfigRule。

CLI
Amazon CLI

示例 1:添加 Amazon 托管配置规则

以下 put-config-rule 示例提供了 JSON 代码来添加 Amazon 托管配置规则。

aws configservice put-config-rule \ --config-rule file://RequiredTagsForEC2Instances.json

RequiredTagsForEC2Instances.json 是包含规则配置的 JSON 文件。

RequiredTagsForEC2Instances.json 的内容:

{ "ConfigRuleName": "RequiredTagsForEC2Instances", "Description": "Checks whether the CostCenter and Owner tags are applied to EC2 instances.", "Scope": { "ComplianceResourceTypes": [ "AWS::EC2::Instance" ] }, "Source": { "Owner": "AWS", "SourceIdentifier": "REQUIRED_TAGS" }, "InputParameters": "{\"tag1Key\":\"CostCenter\",\"tag2Key\":\"Owner\"}" }

对于 ComplianceResourceTypes 属性,此 JSON 代码将范围限制为的资源 AWS::EC2::Instance 键入,所以 Amazon Config 将仅根据规则评估 EC2 实例。由于该规则是托管规则,因此 Owner 属性设置为,AWSSourceIdentifier 属性设置为规则标识符。REQUIRED_TAGS对于 InputParameters 属性,指定了规则所需的标签键 CostCenter 和 Owner。

此命令不生成任何输出。要验证规则配置,请运行 描述配置规则 命令,然后指定规则名称。

有关更多信息,请参阅 Amazon 配置管理规则 在 Amazon 配置开发者指南。

示例 2:添加客户管理的配置规则

以下 put-config-rule 示例提供用于添加客户管理的配置规则的 JSON 代码。

aws configservice put-config-rule \ --config-rule file://InstanceTypesAreT2micro.json

InstanceTypesAreT2micro.json 是包含规则配置的 JSON 文件。

InstanceTypesAreT2micro.json 的内容:

{ "ConfigRuleName": "InstanceTypesAreT2micro", "Description": "Evaluates whether EC2 instances are the t2.micro type.", "Scope": { "ComplianceResourceTypes": [ "AWS::EC2::Instance" ] }, "Source": { "Owner": "CUSTOM_LAMBDA", "SourceIdentifier": "arn:aws:lambda:us-west-2:123456789012:function:InstanceTypeCheck", "SourceDetails": [ { "EventSource": "aws.config", "MessageType": "ConfigurationItemChangeNotification" } ] }, "InputParameters": "{\"desiredInstanceType\":\"t2.micro\"}" }

对于 ComplianceResourceTypes 属性,此 JSON 代码将范围限制为的资源 AWS::EC2::Instance 键入,所以 Amazon Config 将仅根据规则评估 EC2 实例。由于此规则是客户管理的规则, Owner 属性设置为 CUSTOM_LAMBDA,以及 SourceIdentifier 属性设置为的 ARN Amazon Lambda 函数。SourceDetails 对象为必填项。为指定的参数 InputParameters 属性被传递给 Amazon 何时 Lambda 函数 Amazon Config 调用它来根据规则评估资源。

此命令不生成任何输出。要验证规则配置,请运行 描述配置规则 命令,然后指定规则名称。

有关更多信息,请参阅 Amazon 配置自定义规则 在 Amazon 配置开发者指南。

  • 有关 API 的详细信息,请参阅 PutConfigRule 在 Amazon CLI 命令参考。

Python
适用于 Python 的 SDK(Boto3)
注意

还有更多关于 GitHub。在 Amazon 代码示例存储库中查找完整示例,了解如何进行设置和运行。

class ConfigWrapper: """ Encapsulates AWS Config functions. """ def __init__(self, config_client): """ :param config_client: A Boto3 AWS Config client. """ self.config_client = config_client def put_config_rule(self, rule_name): """ Sets a configuration rule that prohibits making Amazon S3 buckets publicly readable. :param rule_name: The name to give the rule. """ try: self.config_client.put_config_rule( ConfigRule={ "ConfigRuleName": rule_name, "Description": "S3 Public Read Prohibited Bucket Rule", "Scope": { "ComplianceResourceTypes": [ "AWS::S3::Bucket", ], }, "Source": { "Owner": "AWS", "SourceIdentifier": "S3_BUCKET_PUBLIC_READ_PROHIBITED", }, "InputParameters": "{}", "ConfigRuleState": "ACTIVE", } ) logger.info("Created configuration rule %s.", rule_name) except ClientError: logger.exception("Couldn't create configuration rule %s.", rule_name) raise
  • 有关 API 的详细信息,请参阅 PutConfigRule 在 Amazon 适用于 Python 的 SDK (Boto3) API 参考。

SAP ABAP
适用于 SAP ABAP 的 SDK
注意

还有更多关于 GitHub。在 Amazon 代码示例存储库中查找完整示例,了解如何进行设置和运行。

" Create a config rule for S3 bucket public read prohibition lo_cfs->putconfigrule( io_configrule = NEW /aws1/cl_cfsconfigrule( iv_configrulename = iv_rule_name iv_description = |S3 Public Read Prohibited Bucket Rule| io_scope = NEW /aws1/cl_cfsscope( it_complianceresourcetypes = VALUE /aws1/cl_cfscplncresrctypes_w=>tt_complianceresourcetypes( ( NEW /aws1/cl_cfscplncresrctypes_w( |AWS::S3::Bucket| ) ) ) ) io_source = NEW /aws1/cl_cfssource( iv_owner = |AWS| iv_sourceidentifier = |S3_BUCKET_PUBLIC_READ_PROHIBITED| ) iv_inputparameters = '{}' iv_configrulestate = |ACTIVE| ) ). MESSAGE 'Created AWS Config rule.' TYPE 'I'.
  • 有关 API 的详细信息,请参阅 PutConfigRule 在 Amazon 适用于 SAP 的 SDK ABAP API 参考。