AWS Config 규칙의 이벤트 예제 - AWS Config

AWS Config 규칙의 이벤트 예제

규칙에 대한 트리거가 발생하면 AWS Config는 이벤트를 게시하여 해당 규칙의 AWS Lambda 함수를 호출합니다. 그러면 AWS Lambda는 이벤트를 함수의 핸들러로 전달하여 함수를 실행합니다.

구성 변경으로 트리거되는 평가에 대한 이벤트 예제

AWS Config는 규칙의 범위 내에 있는 리소스의 구성 변경을 발견하면 이벤트를 게시합니다. 다음 이벤트 예제에서는 규칙이 EC2 인스턴스의 구성 변경으로 트리거되었음을 보여 줍니다.

{ "invokingEvent": "{\"configurationItem\":{\"configurationItemCaptureTime\":\"2016-02-17T01:36:34.043Z\",\"awsAccountId\":\"123456789012\",\"configurationItemStatus\":\"OK\",\"resourceId\":\"i-00000000\",\"ARN\":\"arn:aws:ec2:us-east-2:123456789012:instance/i-00000000\",\"awsRegion\":\"us-east-2\",\"availabilityZone\":\"us-east-2a\",\"resourceType\":\"AWS::EC2::Instance\",\"tags\":{\"Foo\":\"Bar\"},\"relationships\":[{\"resourceId\":\"eipalloc-00000000\",\"resourceType\":\"AWS::EC2::EIP\",\"name\":\"Is attached to ElasticIp\"}],\"configuration\":{\"foo\":\"bar\"}},\"messageType\":\"ConfigurationItemChangeNotification\"}", "ruleParameters": "{\"myParameterKey\":\"myParameterValue\"}", "resultToken": "myResultToken", "eventLeftScope": false, "executionRoleArn": "arn:aws:iam::123456789012:role/config-role", "configRuleArn": "arn:aws:config:us-east-2:123456789012:config-rule/config-rule-0123456", "configRuleName": "change-triggered-config-rule", "configRuleId": "config-rule-0123456", "accountId": "123456789012", "version": "1.0" }

크기를 초과한 구성 변경으로 트리거되는 평가에 대한 이벤트 예제

일부 리소스 변경은 크기를 초과한 구성 항목을 생성합니다. 다음 이벤트 예제에서는 규칙이 EC2 인스턴스의 크기를 초과한 구성 변경으로 트리거되었음을 보여 줍니다.

{ "invokingEvent": "{\"configurationItemSummary\": {\"changeType\": \"UPDATE\",\"configurationItemVersion\": \"1.2\",\"configurationItemCaptureTime\":\"2016-10-06T16:46:16.261Z\",\"configurationStateId\": 0,\"awsAccountId\":\"123456789012\",\"configurationItemStatus\": \"OK\",\"resourceType\": \"AWS::EC2::Instance\",\"resourceId\":\"i-00000000\",\"resourceName\":null,\"ARN\":\"arn:aws:ec2:us-west-2:123456789012:instance/i-00000000\",\"awsRegion\": \"us-west-2\",\"availabilityZone\":\"us-west-2a\",\"configurationStateMd5Hash\":\"8f1ee69b287895a0f8bc5753eca68e96\",\"resourceCreationTime\":\"2016-10-06T16:46:10.489Z\"},\"messageType\":\"OversizedConfigurationItemChangeNotification\"}", "ruleParameters": "{\"myParameterKey\":\"myParameterValue\"}", "resultToken": "myResultToken", "eventLeftScope": false, "executionRoleArn": "arn:aws:iam::123456789012:role/config-role", "configRuleArn": "arn:aws:config:us-east-2:123456789012:config-rule/config-rule-ec2-managed-instance-inventory", "configRuleName": "change-triggered-config-rule", "configRuleId": "config-rule-0123456", "accountId": "123456789012", "version": "1.0" }

주기적 간격으로 트리거되는 평가에 대한 이벤트 예제

AWS Config는 사용자가 지정한 간격(예: 24시간마다)으로 리소스를 평가할 때 이벤트를 게시합니다. 다음 이벤트 예제에서는 규칙이 주기적 간격으로 트리거되었음을 보여 줍니다.

{ "invokingEvent": "{\"awsAccountId\":\"123456789012\",\"notificationCreationTime\":\"2016-07-13T21:50:00.373Z\",\"messageType\":\"ScheduledNotification\",\"recordVersion\":\"1.0\"}", "ruleParameters": "{\"myParameterKey\":\"myParameterValue\"}", "resultToken": "myResultToken", "eventLeftScope": false, "executionRoleArn": "arn:aws:iam::123456789012:role/config-role", "configRuleArn": "arn:aws:config:us-east-2:123456789012:config-rule/config-rule-0123456", "configRuleName": "periodic-config-rule", "configRuleId": "config-rule-6543210", "accountId": "123456789012", "version": "1.0" }

이벤트 속성

AWS Config 이벤트에 대한 JSON 객체는 다음 속성을 포함합니다.

invokingEvent

규칙에 대한 평가를 트리거하는 이벤트입니다. 이벤트가 리소스 구성 변경에 대한 응답으로 게시되는 경우, 이 속성의 값은 JSON configurationItem 또는 configurationItemSummary(크기를 초과한 구성 항목의 경우)를 포함하는 문자열입니다. 구성 항목은 AWS Config가 변경을 발견한 당시의 리소스 상태를 나타냅니다. 구성 항목의 예는 구성 기록 보기에서 get-resource-config-history AWS CLI 명령에서 생성되는 출력을 참조하십시오.

주기적 평가에 대한 이벤트가 게시되는 경우, 값은 JSON 객체를 포함하는 문자열입니다. 객체에는 트리거된 평가에 대한 정보가 포함됩니다.

각 이벤트 유형에 대해 함수는 문자열의 콘텐츠를 평가할 수 있도록 다음 Node.js 예와 같이 JSON 구문 분석기로 문자열을 구문 분석해야 합니다.

var invokingEvent = JSON.parse(event.invokingEvent);
ruleParameters

함수가 평가 논리의 일부로 처리하는 키/값 페어입니다. AWS Config 콘솔을 사용하여 사용자 지정 Lambda 규칙을 생성할 때 파라미터를 정의합니다. PutConfigRule AWS Config API 요청 또는 put-config-rule AWS CLI 명령의 InputParameters 속성으로 파라미터를 정의할 수도 있습니다.

파라미터의 JSON 코드는 문자열 안에 포함되어 있으므로, 함수는 문자열의 콘텐츠를 평가할 수 있도록 다음 Node.js 예와 같이 JSON 구문 분석기로 문자열을 구문 분석해야 합니다.

var ruleParameters = JSON.parse(event.ruleParameters);
resultToken

함수가 PutEvaluations 호출을 통해 AWS Config에 전달해야 하는 토큰입니다.

eventLeftScope

평가할 AWS 리소스가 해당 규칙의 범위에서 제거되었는지 여부를 나타내는 부울 값입니다. 값이 true이면 함수는 NOT_APPLICABLE 호출에서 ComplianceTypePutEvaluations 속성의 값으로 전달하여 평가를 무시할 수 있음을 나타냅니다.

executionRoleArn

AWS Config에 할당된 IAM 역할의 ARN입니다.

configRuleArn

AWS Config가 해당 규칙에 할당한 ARN입니다.

configRuleName

AWS Config가 이벤트를 게시하고 함수를 호출하도록 한 규칙에 할당된 이름입니다.

configRuleId

AWS Config가 해당 규칙에 할당한 ID입니다.

accountId

규칙을 소유하는 AWS 계정의 ID입니다.

version

AWS가 할당한 버전 번호입니다. AWS가 AWS Config 이벤트에 속성을 추가하면 버전이 증가합니다. 함수에 특정 버전과 일치하거나 이를 초과하는 이벤트에만 있는 속성이 필요한 경우, 해당 함수가 이 속성의 값을 확인할 수 있습니다.

AWS Config 이벤트의 현재 버전은 1.0입니다.