PutConfigRule与 Amazon SDK 或 CLI 配合使用 - Amazon Config
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

PutConfigRule与 Amazon SDK 或 CLI 配合使用

以下代码示例演示如何使用 PutConfigRule

CLI
Amazon CLI

添加 Amazon 托管 Config 规则

以下命令提供用于添加 Amazon 托管 Config 规则的 JSON 代码:

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

RequiredTagsForEC2Instances.json 是一个包含规则配置的 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 属性,指定了规则所需的标签键 CostCenterOwner

如果命令成功, Amazon Config 将不返回任何输出。要验证规则配置,请运行 describe-config-rules 命令并指定规则名称。

添加客户托管的 Config 规则

以下命令将提供用于添加客户托管 Config 规则的 JSON 代码:

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

InstanceTypesAreT2micro.json 是一个包含规则配置的 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-east-1: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属性设置为 Lambda 函数 Amazon 的 ARN。SourceDetails 对象为必填项。当 Confi Amazon g 调用 Amazon Lambda 函数来根据规则评估资源时,为该InputParameters属性指定的参数将传递给 Lambda 函数。

如果命令成功, Amazon Config 将不返回任何输出。要验证规则配置,请运行 describe-config-rules 命令并指定规则名称。

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

Python
SDK for Python (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 的详细信息,请参阅适用PutConfigRulePython 的Amazon SDK (Boto3) API 参考

有关 S Amazon DK 开发者指南和代码示例的完整列表,请参阅Amazon Config 与 Amazon SDK 一起使用。本主题还包括有关入门的信息以及有关先前的 SDK 版本的详细信息。