AWS Config를 사용하여 AWS 리소스가 규정 미준수 상태일 때 알림을 받으려면 어떻게 해야 합니까?

최종 업데이트 날짜: 2020년 4월 24일

AWS 리소스가 규정을 준수하지 않을 때 알림을 트리거하는 Amazon EventBridge 규칙을 생성했지만 응답이 JSON 형식입니다. 사용자 지정 알림이 포함된 이메일을 받으려면 어떻게 해야 합니까?

간략한 설명

사용자 지정 이벤트 패턴 및 입력 변환기와 함께 EventBridge 규칙을 사용하여 AWS Config 평가 규칙 출력을 NON_COMPLIANT로 일치시킵니다. 그런 다음 응답을 Amazon SNS(Amazon Simple Notification Service) 주제로 라우팅합니다.

해결 방법

다음 예제에서는 ec2-security-group-attached-to-eni 관리형 규칙에서 Amazon EC2(Amazon Elastic Compute Cloud) 보안 그룹에 대해 AWS 리소스가 NON_COMPLIANT라고 보고할 때 SNS 알림이 수신됩니다.

참고: AWS Config 리소스 유형규칙을 특정 AWS 서비스 및 AWS Config 규칙으로 대체할 수 있습니다.

1.    Amazon SNS 주제를 아직 생성하지 않은 경우 Amazon SNS 시작하기의 지침을 따르십시오.

중요: Amazon SNS 주제는 AWS Config 서비스와 동일한 리전에 있어야 합니다.

2.    [EventBridge 콘솔]을 엽니다.

3.    규칙 생성을 선택합니다.

4.    [이름]에 규칙 이름을 입력합니다.

5.    [패턴 정의]에서 [이벤트 패턴]을 선택합니다.

6.    [이벤트 일치 패턴]에서 [사용자 지정 패턴]을 선택합니다.

7.    [사용자 지정 이벤트 패턴 작성] 미리보기 창에서 다음 예제 이벤트 패턴을 복사하여 붙여 넣습니다.

{
    "source": [
        "aws.config"
    ],
    "detail-type": [
        "Config Rules Compliance Change"
    ],
    "detail": {
        "messageType": [
            "ComplianceChangeNotification"
        ],
        "configRuleName": [
            "ec2-security-group-attached-to-eni"
        ],
        "resourceType": [
            "AWS::EC2::SecurityGroup"
        ],
        "newEvaluationResult": {
            "complianceType": [
                "NON_COMPLIANT"
            ]
        }
    }
}

8.    [저장]을 선택합니다.

9.    [대상 선택]에서 [SNS 주제]를 선택합니다.

10.    [주제]에서 원하는 SNS 주제를 선택합니다.

11.    [입력 구성]을 확장한 후 [입력 변환기]를 선택합니다.

12.    [입력 경로] 텍스트 상자에 다음 예제 경로를 복사하여 붙여 넣습니다.

{
    "awsRegion": "$.detail.awsRegion",
    "resourceId": "$.detail.resourceId",
    "awsAccountId": "$.detail.awsAccountId",
    "compliance": "$.detail.newEvaluationResult.complianceType",
    "rule": "$.detail.configRuleName",
    "time": "$.detail.newEvaluationResult.resultRecordedTime",
    "resourceType": "$.detail.resourceType"
}

13.    [입력 템플릿] 텍스트 상자에 다음 템플릿을 복사하여 붙여 넣습니다.

"On <time> AWS Config rule <rule> evaluated the <resourceType> with Id <resourceId> in the account <awsAccountId> region <awsRegion> as <compliance> For more details open the AWS Config console at https://console.aws.amazon.com/config/home?region=<awsRegion>#/timeline/<resourceType>/<resourceId>/configuration"

14.    [생성]을 선택합니다.

15.    이벤트 유형이 트리거되면 13단계에서 채워진 사용자 지정 필드가 포함된 다음과 비슷한 SNS 이메일 알림을 받게 됩니다.

"On ExampleTime AWS Config rule ExampleRuleName evaluated the ExampleResourceType with Id ExampleResource_ID in the account ExampleAccount_Id in Region ExampleRegion as ExamplecomplianceType. For more details open the AWS Config console at https://console.aws.amazon.com/config/home?region=ExampleRegion#/timeline/ExampleResourceType/ExampleResource_ID/configuration"