AWS 서비스 이벤트 유형이 트리거될 때 사용자 지정 SNS 알림을 보내도록 GuardDuty에 대한 CloudWatch Events 규칙을 구성하려면 어떻게 해야 합니까?

최종 업데이트 날짜: 2019년 5월 22일

Amazon GuardDuty에 대한 서비스 이벤트 유형에서 트리거되는 Amazon CloudWatch Events 규칙을 생성했지만 응답이 JSON 형식입니다. 사용자 지정 알림이 포함된 이메일 응답을 받으려면 어떻게 해야 합니까?  

간략한 설명

특정 결과 유형과 일치하는 유형을 찾는 사용자 지정 이벤트 패턴을 CloudWatch Events 규칙에 사용합니다. 그런 다음 응답을 Amazon Simple Notification Service(Amazon SNS) 주제로 라우팅합니다.

​해결 방법

이 예에서는 Amazon GuardDuty 이벤트 유형 UnauthorizedAccess: EC2/TorIPCaller를 사용합니다.

참고: 특정 AWS 서비스의 서비스 이름 및 이벤트 유형을 대체할 수 있습니다.

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

참고: Amazon SNS 주제는 AWS GuardDuty와 동일한 리전에 있어야 합니다.

2.    CloudWatch 콘솔을 엽니다.

3.    탐색 창에서 [Rules]를 선택하고 [Create rule]을 선택합니다.

4.    [Service Name] 메뉴에서 [GuardDuty]를 선택합니다.

5.    [Event Type] 메뉴에서 [GuardDuty Finding]을 선택합니다.

6.    [Event Pattern Preview]에서 [Edit]를 선택합니다.

7.    [Event Pattern Preview]에서 다음 코드를 복사하고 붙여 넣은 후 [Save]를 선택합니다.

{
  "source": [
    "aws.guardduty"
  ],
  "detail": {
    "type": [
      "UnauthorizedAccess:EC2/TorIPCaller"
     ]
  }
}

8.    [Targets]에서 [Add target]을 선택합니다.

9.    [Select Target]에서 [SNS topic]을 선택합니다.

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

11.   [Configure input]을 확장한 후 [Input Transformer]를 선택합니다.

12.   다음 코드를 복사합니다. 그런 다음 [Input Path]에 붙여 넣습니다.

{
    "severity": "$.detail.severity",
    "Finding_ID": "$.detail.id",
    "instanceId": "$.detail.resource.instanceDetails.instanceId",
    "port": "$.detail.service.action.networkConnectionAction.localPortDetails.port",
    "eventFirstSeen": "$.detail.service.eventFirstSeen",
    "eventLastSeen": "$.detail.service.eventLastSeen",
    "count": "$.detail.service.count",
    "Finding_Type": "$.detail.type",
    "region": "$.region",
    "Finding_description": "$.detail.description"
}

13.    다음 코드를 복사합니다. 그런 다음 [Input Template]에 붙여 넣습니다.

"You have a severity <severity> GuardDuty finding type <Finding_Type> for the EC2 instance <instanceId> in the region <region> as the <Finding_description> on the port <port>. The first attempt was on <eventFirstSeen> and the most recent attempt on <eventLastSeen> . The total occurrence is <count>. For more details open the GuardDuty console at https://console.aws.amazon.com/guardduty/home?region=<region>#/findings?search=id%3D<Finding_ID>"

14.    [Configure details]를 선택합니다.

15.    [Configure rule details]에서 규칙의 [Name] 및 [Description]을 입력한 후 [Create rule]을 선택합니다.

16.    이벤트 유형이 트리거되면 다음과 같이 13단계에서 입력한 사용자 지정 필드가 포함된 SNS 이메일 알림이 전송됩니다.

"You have a severity 5 GuardDuty finding type UnauthorizedAccess:EC2/TorIPCaller for the EC2 instance EXAMPLEID in the region EXAMPLEREGION as the IP address 192.0.2.0/2 on the Tor Anonymizing Proxy network is communicating with EC2 instance EXAMPLEID. on the port 80. The first attempt was on 2019-04-09T00:01:14.681Z and the most recent attempt on 2019-05-20T06:04:12.593Z . The total occurrence is 5. For more details open the GuardDuty console at https://console.aws.amazon.com/guardduty/home?EXAMPLEREGION"