AWS Config 서비스를 사용하여 AWS 계정에 리소스가 생성될 때 사용자 지정 이메일 알림을 받으려면 어떻게 해야 합니까?

최종 업데이트 날짜: 2022년 10월 17일

새 AWS 리소스가 생성될 때 서비스 이벤트 유형에 따라 시작하는 Amazon EventBridge 규칙을 생성했습니다. 하지만 응답은 JSON 형식입니다. 사용자 지정 알림이 포함된 이메일 응답을 받으려면 어떻게 해야 하나요?

해결 방법

EventBridge 규칙에 사용자 지정 이벤트 패턴을 사용하여 AWS Config에서 지원되는 리소스 유형과 일치시킬 수 있습니다. 그런 다음 응답을 Amazon Simple Notification Service(Amazon SNS) 주제로 라우팅합니다.

다음 예제에서는 AWS::EC2::Instance 리소스 유형을 사용하여 새로운 Amazon EC2(Amazon Elastic Compute Cloud) 인스턴스가 생성되면 SNS 알림이 수신됩니다.

참고: 특정 AWS 서비스의 리소스 유형을 바꿀 수 있습니다.

1.    Amazon SNS 주제를 아직 생성하지 않은 경우에는 Amazon SNS 시작하기의 지침을 따릅니다.

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

2.    EventBridge 콘솔을 열고 탐색 창에서 규칙(Rules)을 선택합니다.

3.    규칙 생성(Create rule)을 선택합니다.

4.    이름(Name)에 규칙 이름을 입력합니다. 설명(Description)을 입력할 수도 있습니다(선택 사항).

5.    규칙 유형(Rule type)에서 이벤트 패턴이 있는 규칙(Rule with an event pattern)을 선택한 후 다음(Next)을 선택합니다.

6.    이벤트 소스에서 AWS 이벤트 또는 EventBridge 파트너 이벤트를 선택합니다.

7.    이벤트 패턴 창에서 사용자 지정 패턴 (JSON 편집기)을 선택하고 다음 예제 이벤트 패턴을 붙여넣습니다.

참고: EC2:: Instance 리소스 유형을 다른 리소스로 바꿀 수 있습니다. 사용 가능한 리소스 유형 목록은 ResourceIdentifierresourceType 섹션을 참조하세요.

{
  "source": [
    "aws.config"
  ],
  "detail-type": [
    "Config Configuration Item Change"
  ],
  "detail": {
    "messageType": [
      "ConfigurationItemChangeNotification"
    ],
    "configurationItem": {
      "resourceType": [
        "AWS::EC2::Instance"
      ],
      "configurationItemStatus": [
        "ResourceDiscovered"
      ]
    }
  }
}

8.    다음(Next)을 선택합니다.

9.    대상 유형에서 [AWS 서비스]를 선택합니다.

10.    대상 선택에서 SNS 주제를 선택합니다.

11.    주제(Topic)에서 원하는 SNS 주제를 선택합니다.

12.    Additional settings(추가 설정)을 확장합니다. 그런 다음 입력 대상 구성에서 입력 변환기를 선택합니다.

13.    Configure input transformer(입력 변환기 구성)을 선택합니다. 그런 다음 [입력 경로(Input Path)] 텍스트 상자의 [대상 입력 변환기(Target input transformer)]에 다음 예제 경로를 입력합니다.

{
    "awsRegion": "$.detail.configurationItem.awsRegion",
    "awsAccountId": "$.detail.configurationItem.awsAccountId",
    "resource_type": "$.detail.configurationItem.resourceType",
    "resource_ID": "$.detail.configurationItem.resourceId",
    "configurationItemCaptureTime": "$.detail.configurationItem.configurationItemCaptureTime"
}

14.    [템플릿(Template)] 텍스트 상자에 다음 예제 템플릿을 입력합니다.

"On <configurationItemCaptureTime> AWS Config service recorded a creation of a new <resource_type> with Id <resource_ID> in the account <awsAccountId> region <awsRegion>. For more details open the AWS Config console at https://console.aws.amazon.com/config/home?region=<awsRegion>#/timeline/<resource_type>/<resource_ID>/configuration"

15.    Confirm을 선택합니다. 그리고 Next(다음)을 선택합니다.

16.    선택적으로 새 태그를 추가할 수 있습니다. 그리고 Next(다음)을 선택합니다.

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

18.    이벤트 유형이 시작된 경우, 다음과 같이 13단계에서 입력한 사용자 지정 필드가 포함된 SNS 이메일 알림을 수신합니다.

"On ExampleTime AWS Config service recorded a creation of a new AWS::EC2::Instance with Id ExampleID in the account AccountID region ExampleRegion. For more details open the AWS Config console at https://console.aws.amazon.com/config/home?region=*ExampleRegion*#/timeline/AWS::EC2::Instance/*ExampleID*/configuration"