Route 53 호스팅 영역 레코드가 변경될 때 알림을 받으려면 어떻게 해야 하나요?

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

Amazon Route 53에서 리소스 레코드 세트가 생성되거나 삭제될 때 사용자 지정 알림과 함께 이메일 응답을 받으려면 어떻게 해야 하나요?

간략한 설명

ChangeResourceRecordSets API 활동이 AWS CloudTrail에 기록될 때 트리거되는 Amazon EventBridge 또는 Amazon CloudWatch Events 규칙과 함께 사용자 지정 이벤트 패턴을 사용할 수 있습니다. 그런 다음, 응답을 Amazon Simple Notification Service(SNS) 주제로 라우팅합니다.

해결 방법

이메일 구독과 함께 Amazon SNS 주제를 아직 생성하지 않은 경우에는 Amazon SNS 시작하기의 지침을 따릅니다. 이 주제와 구독은 나중에 사용됩니다. 이 문서에서는 작업을 세 부분으로 나눕니다.

  • CloudTrail에서 캡처한 Route 53 API 호출과 일치하는 EventBridge 규칙 생성
  • 이메일 알림을 위해 EventBridge 규칙을 SNS 대상과 연결
  • 사람이 읽을 수 있는 메시지로 알림을 사용자 지정할 수 있도록 대상에서 입력 변환기 구성

Route 53 호스팅 영역 레코드가 변경될 때 알림을 받으려면 각 작업에 대한 모든 단계를 수행합니다.

EventBridge 규칙 생성

Route 53는 미국 동부(버지니아 북부)에서만 사용할 수 있는 AWS 글로벌 서비스입니다. EventBridge 규칙은 미국 동부(버지니아 북부)에서 생성해야 합니다.

1.    EventBridge 콘솔을 엽니다.

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

3.    Name(이름)Description(설명)에 규칙의 이름과 설명을 입력합니다. AWS 서비스에서 이벤트를 수신하려면 Enable the rule on the selected eventbus(선택한 이벤트에서 규칙 활성화)를 선택합니다.

4.    Rule with an event pattern(이벤트 패턴이 있는 규칙)을 선택합니다. 그리고 Next(다음)을 선택합니다.

5.    AWS Events or EventBridge partner events(AWS 이벤트 또는 EventBridge 파트너 이벤트)를 선택합니다.

6.    Event Pattern(이벤트 패턴)에서 다음을 선택합니다.

Event Source(이벤트 소스)에서 AWS services(AWS 서비스) 선택
AWS service(AWS 서비스)에서 Route 53 선택
Event Type(이벤트 유형)에서 AWS API Call via CloudTrail(CloudTrail을 통해 AWS API 호출) 선택

7.    Specific Operation(s)(특정 작업)을 선택하고 필드에 ChangeResourceRecordSets를 입력합니다. 그러면 리소스 레코드 세트의 생성, 삭제 또는 업데이트에 대해서만 이벤트가 일치하도록 제한됩니다.

다음과 같은 이벤트 패턴이 나타납니다.

{
  "source": ["aws.route53"],
  "detail-type": ["AWS API Call via CloudTrail"],
  "detail": {
    "eventSource": ["route53.amazonaws.com"],
    "eventName": ["ChangeResourceRecordSets"]
  }
}

8.    Next(다음)을 선택하여 다음 단계로 진행합니다.

SNS 대상을 EventBridge 규칙과 연결

1.     Target types(대상 유형) 섹션에서 AWS Service(AWS 서비스)를 선택합니다.

2.    Select a target(대상 선택) 드롭다운 목록에서 SNS topic(SNS 주제)를 선택합니다.

3.    Topic(주제) 드롭다운 목록에서 이전에 선택한 SNS 주제를 선택합니다.

SNS 알림을 사용자 지정하도록 입력 변환기 구성

기본적으로 EventBridge는 전체 CloudTrail 이벤트를 대상으로 전달합니다. 그러면 SNS 주제가 알림을 포맷되지 않은 JSON으로 전송합니다. 이때 내용은 읽고 쉽게 이해하기 어려울 수 있습니다.

입력 변환기를 사용하면 인바운드 이벤트의 특정 필드를 선택한 다음, 사람이 읽을 수 있는 메시지로 통합할 수 있습니다. Input Path(입력 경로)에서는 원하는 필드를 식별합니다.

이 예제에서 eventTime, hostedZone, username, eventID가 알림에 포함됩니다. 사용 사례에 맞게 필드를 변경할 수 있습니다. Input Template(입력 템플릿)에는 원하는 필드를 사용하여 동적으로 업데이트되는 자리 표시자와 알림의 메시지 본문이 포함됩니다.

1.    Additional settings(추가 설정) 드롭다운 목록을 확장합니다. Configure target input(대상 입력 구성) 드롭다운 목록에서 Input transformer(입력 변환기)를 선택합니다.

2.    Configure input transformer(입력 변환기 구성)을 선택합니다.

3.    Input path(입력 경로) 필드에 다음 텍스트를 붙여 넣습니다.

{
    "eventTime": "$.detail.eventTime",
    "hostedZone": "$.detail.requestParameters.hostedZoneId",
    "userName": "$.detail.userIdentity.sessionContext.sessionIssuer.userName",
    "eventID": "$.detail.eventID"
}

4.    TEmplate(템플릿) 필드에 다음 텍스트를 붙여 넣습니다.

"At <eventTime>, one or more Route 53 records within Hosted Zone <hostedZone> were modified by user <userName>. To view the event directly in your Event History and review these changes, use the following link. Note that the event may take up to 15 minutes to be available in your Event History: https://console.aws.amazon.com/cloudtrail/home?region=us-east-1#/events?EventId=<eventID>"

6.    Confirm(확인)을 선택합니다.

7.    (선택 사항) EventBridge 규칙에 태그를 추가합니다. 그리고 Next(다음)을 선택합니다.

8.    규칙 구성을 검토합니다. 그런 다음, Create rule(규칙 생성)을 선택합니다.

규칙을 생성한 후 Route 53 리소스 세트를 변경하면 다음과 유사한 알림이 표시됩니다.

"At 2022-08-16T21:02:46Z, one or more Route 53 records within Hosted Zone ZB3A123456789 were modified by user Admin. To view the event directly in your Event History and review these changes, use the following link. Note that the event may take up to 15 minutes to be available in your Event History: https://console.aws.amazon.com/cloudtrail/home?region=us-east-1#/events?EventId=04d08662-537e-4424-97c2-8bc796943b75"