Usar PutConfigRule com o AWS SDK ou a CLI - AWS Config

Usar PutConfigRule com o AWS SDK ou a CLI

Os exemplos de código a seguir mostram como usar o PutConfigRule.

CLI
AWS CLI

Como adicionar uma regra gerenciada do AWS Config

O seguinte comando fornece o código JSON para adicionar uma regra gerenciada do AWS Config:

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

RequiredTagsForEC2Instances.json é um arquivo JSON que contém a configuração da regra:

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

Esse código JSON limita o escopo do atributo ComplianceResourceTypes aos recursos do tipo AWS::EC2::Instance. Desta forma, o AWS Config avaliará somente instâncias do EC2 em relação à regra. Como a regra é uma regra gerenciada, o atributo Owner é definido como AWS e o atributo SourceIdentifier é definido como o identificador da regra, REQUIRED_TAGS. Para o atributo InputParameters, as chaves de tag exigidas pela regra, CostCenter e Owner são especificados.

Se o comando for bem-sucedido, o AWS Config não retornará nenhuma saída. Para verificar a configuração da regra, execute o comando describe-config-rules e especifique o nome da regra.

Como adicionar uma regra do Config gerenciada pelo cliente

O seguinte comando fornece o código JSON para adicionar uma regra do Config gerenciada pelo cliente:

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

InstanceTypesAreT2micro.json é um arquivo JSON que contém a configuração da regra:

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

Esse código JSON limita o escopo do atributo ComplianceResourceTypes aos recursos do tipo AWS::EC2::Instance. Desta forma, o AWS Config avaliará somente instâncias do EC2 em relação à regra. Como essa é uma regra gerenciada pelo cliente, o atributo Owner é definido como CUSTOM_LAMBDA e o atributo SourceIdentifier é definido como o ARN da função do AWS Lambda. O SourceDetails objeto é obrigatório. Os parâmetros especificados para o atributo InputParameters são passados para a função do AWS Lambda quando o AWS Config o invoca para avaliar os recursos em relação à regra.

Se o comando for bem-sucedido, o AWS Config não retornará nenhuma saída. Para verificar a configuração da regra, execute o comando describe-config-rules e especifique o nome da regra.

  • Para obter detalhes da API, consulte PutConfigRule na Referência de comandos da AWS CLI.

Python
SDK para Python (Boto3).
nota

Há mais no GitHub. Encontre o exemplo completo e saiba como configurar e executar no AWSCode Examples Repository.

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
  • Para obter detalhes da API, consulte PutConfigRule na Referência de APIs do AWS SDK para Python (Boto3).

Para ver uma lista completa dos Guias do desenvolvedor e exemplos de código do SDK da AWS, consulte Usar o AWS Config com um AWS SDK. Este tópico também inclui informações sobre como começar e detalhes sobre versões anteriores do SDK.