Route 53 ホストゾーンレコードが変更されたときに通知を受けるにはどうすればよいですか?

最終更新日: 2022 年 9 月 9 日

Amazon Route 53 でリソースレコードセットを作成または削除したときに、カスタム通知を含む E メールレスポンスを受け取るにはどうすればよいですか?

簡単な説明

ChangeResourceRecordSets API アクティビティが AWS CloudTrail に記録されたときにトリガーされる Amazon EventBridge または Amazon CloudWatch Events のルールで、カスタムイベントパターンを使用します。次に、レスポンスを Amazon Simple Notification Service (Amazon SNS) トピックにルーティングします。

解決方法

E メールサブスクリプションで Amazon SNS トピックをまだ作成していない場合は、「Amazon SNS の使用開始」の手順に従ってください。このトピックとサブスクリプションは後で使用されます。この記事では、タスクを次の 3 つのパートに分けます。

  • CloudTrail によってキャプチャされた Route 53 API コールに一致する EventBridge ルールを作成する
  • EventBridge ルールを E メール通知用の SNS ターゲットに関連付ける
  • 通知を人間が読めるメッセージにカスタマイズできるように、ターゲットで Input Transformer を構成します。

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] を選択します。

6.    [Event Pattern] で、次を選択します。

[Event Source] で [AWS services] を選択します。
[AWS service] で 、[Route 53] を選択します。
[Event Type] で、[AWS API Call via CloudTrail] を選択します。

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] を選択します。

2.    [Select a target] ドロップダウンリストで、[SNS topic] を選択します。

3.    [Topic] ドロップダウンリストで、以前に作成した SNS トピックを選択します。

SNS 通知をカスタマイズするための入力トランスフォーマーを設定

デフォルトでは、EventBridge は CloudTrail イベント全体をターゲットに転送します。SNS トピックは、フォーマットされていない JSON として通知を配信します。これは読みにくく、内容をすぐに理解するのが難しいかもしれません。

入力トランスフォーマーを使用すると、受信イベントの特定のフィールドを選択し、人間が読みやすいメッセージに統合できます。Input Path は、必要なフィールドを識別します。

この例では、eventTimeHostedZoneusername、および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"