當我的 Route 53 託管區域記錄發生變化時,我如何收到通知?
我希望在從 Amazon Route 53 建立或刪除資源記錄集時,收到包含自訂通知的電子郵件回覆。
簡短描述
將自訂事件模式與 Amazon EventBridge 規則或 Amazon CloudWatch Events 規則搭配使用,該規則會在您進行 ChangeResourceRecordSets API 呼叫時啟動。然後,將回應路由至 Amazon Simple Notification Service (Amazon SNS) 主題。
**注意:**如果您沒有具有電子郵件訂閱的 Amazon SNS 主題,請建立 Amazon SNS 主題並訂閱 SNS 主題。
解決方法
先決條件:若要透過 CloudTrail 事件監控 AWS API 呼叫,請在建立規則的 AWS 區域中啟用自訂 CloudTrail 追蹤。若要使用其中一個 CloudTrail 詳細資料類型值記錄事件,您必須啟用追蹤的記錄。您可以在多個區域或僅在 us-east-1 區域建立追蹤。如需詳細資訊,請參閱使用 CloudTrail 追蹤。
建立 EventBridge 規則
**注意:**Route 53 是一項 AWS 全球服務,僅在美國東部 (維吉尼亞北部) AWS 區域提供。您必須在美國東部 (維吉尼亞北部) 區域建立 EventBridge 規則。
請完成下列步驟:
- 開啟 EventBridge console (EventBridge 主控台)。
- 在導覽窗格中,選擇 Rules (規則)。
- 選擇 Create rule (建立規則)。
- 在 Name (名稱) 和 Description (說明) 欄位中,輸入規則的名稱和說明。
- 選取 Enable the rule on the selected eventbus (在選取的 EventBus 上啟用規則)。
- 選擇 Rule with an event pattern (具有事件模式的規則)。
- 選擇 Next (下一步)。
- 選取 AWS Events (AWS 事件) 或 EventBridge partner events (EventBridge 合作夥伴事件)。
- 在 Event pattern (事件模式) 下,選擇以下選項:
在 Event source (事件來源) 下拉式清單中,選擇 AWS services (AWS 服務)。
在 AWS servic (AWS 服務) 下拉式清單中,選擇 Route 53。
在 Event type (事件類型) 下拉式清單中,選擇 AWS API Call via CloudTrail (透過 CloudTrail 進行 AWS API 呼叫)。 - 選擇 Specific operation (特定作業)。
- 在 Specific operation(s) (特定作業) 中,輸入 ChangeResourceRecordSets 以限制事件為僅符合建立、刪除或更新資源記錄集。
會顯示下列事件模式:
{ "source": ["aws.route53"], "detail-type": ["AWS API Call via CloudTrail"], "detail": { "eventSource": ["route53.amazonaws.com"], "eventName": ["ChangeResourceRecordSets"] } }
- 選擇 Next (下一步)。
將 Amazon SNS 目標與 EventBridge 規則建立關聯
請完成下列步驟:
- 開啟 EventBridge console (EventBridge 主控台)。
- 在 Target types (目標類型) 區段中,選取 AWS service (AWS 服務)。
- 在 Select a target (選取目標) 下拉式清單中,選擇 SNS topic (SNS 主題)。
- 在 Topic (主題) 下拉式清單中,選擇您的 Amazon SNS 主題。
設定輸入轉換器選項以自訂 SNS 通知
預設情況下,EventBridge 會將整個 CloudTrail 事件轉送至目標。然後,Amazon SNS 主題會以未格式化的 JSON 文字形式傳送通知。
當您使用 EventBridge 主控台上的 Input transformer (輸入轉換器) 選項時,您可以指定傳入事件中的欄位。然後,輸入轉換器會將事件轉換為更易於人類閱讀的訊息。
在下列步驟中,範例 Input path (輸入路徑) 欄位包括 eventTime、hostingZone、username 和 eventID。變更欄位以符合您的使用案例。EventBridge 會自動使用您在輸入轉換器中設定的欄位更新輸入範本中的欄位預留位置。
若要自訂 Amazon SNS 通知,請完成以下步驟:
-
開啟 EventBridge console (EventBridge 主控台)。
-
展開 Additional settings (其他設定) 下拉式清單。
-
在 Configure target input (設定目標輸入) 下拉式清單中,請選擇 Input transformer (輸入轉換器)。
-
選擇 Configure input transformer (設定輸入轉換器)。
-
在 Input path (輸入路徑) 欄位中,請輸入以下程式碼:
{ "eventTime": "$.detail.eventTime", "hostedZone": "$.detail.requestParameters.hostedZoneId", "userName": "$.detail.userIdentity.sessionContext.sessionIssuer.userName", "eventID": "$.detail.eventID" } -
在 Template (範本) 欄位中,請輸入以下文字:
「在 eventTime,託管區域 hostingZone 內的一筆或多筆 Route 53 記錄已由使用者 userName 修改。若要直接在事件歷史記錄中查看事件並審閱這些變更,請使用以下連結。請注意,該事件可能需要長達 15 分鐘才能在您的事件歷史記錄中顯示:https://console.aws.amazon.com/cloudtrail/home?region=us-east-1#/events?EventId=eventID」
**注意:**將 userName 替換為您的使用者名稱。 -
選擇 Confirm (確認)。
-
(選用) 將標籤新增至 EventBridge 規則,然後選擇 Next (下一步)。
-
檢閱規則組態,然後選擇 Create rule (建立規則)。
當您變更 Route 53 資源集時,您現在會收到類似以下內容的通知:
「於 2022-08-16T21:02:46Z,託管區域 ZB3A123456789 內的一筆或多筆 Route 53 記錄已由使用者 Admin 修改。若要直接在事件歷史記錄中查看事件並審閱這些變更,請使用以下連結。請注意,該事件可能需要長達 15 分鐘才能在您的事件歷史記錄中顯示:https://console.aws.amazon.com/cloudtrail/home?region=us-east-1#/events?EventId=04d08662-537e-4424-97c2-8bc796943b75」
相關資訊
如何建立使用輸入轉換器使得 Amazon SNS 通知人類可讀的 EventBridge 規則?
相關內容
- 已提問 1 年前
AWS 官方已更新 3 年前