如何在建立資源記錄集或從 Amazon Route 53 中刪除資源記錄集時收到包含自訂通知的電子郵件回應?
簡短描述
您可以將自訂事件模式與 Amazon EventBridge 或 Amazon CloudWatch Events 規則搭配使用,該規則會在 ChangeResourceRecordSets API 活動被記錄到 AWS CloudTrail 時觸發。然後,將回應路由至 Amazon Simple Notification Service (Amazon SNS) 主題。
解決方法
如果您尚未透過電子郵件訂閱建立 Amazon SNS 主題,請按照 Amazon SNS 入門的說明進行操作。稍後將使用此主題和訂閱。本文將任務分為三個部分:
- 建立 EventBridge 規則以符合由 CloudTrail 擷取的 Route 53 API 呼叫
- 將 EventBridge 規則與電子郵件通知的 SNS 目標建立關聯
- 在目標上設定輸入轉換器,以便將通知自訂為人類可讀的訊息
若要在 Route 53 託管區域記錄被變更時收到通知,請遵循每個任務的所有步驟進行操作。
建立 EventBridge 規則
Route 53 是一項 AWS 全域服務,僅在美國東部 (維吉尼亞北部) 提供。EventBridge 規則必須在美國東部 (維吉尼亞北部) 建立。
1. 開啟 EventBridge 主控台。
2. 在導覽窗格中,選擇規則,然後選擇建立規則。
3. 在名稱和說明欄位中,輸入規則的名稱和說明。若要接收來自 AWS 服務的事件,請選擇在所選事件匯流排上啟用規則。
-
選擇具有事件模式的規則。然後,選擇下一步。
-
選擇 AWS 事件或 EventBridge 合作夥伴事件。
-
在事件模式中,選擇以下內容:
對於事件來源,選擇 AWS 服務對於 AWS 服務,選擇 Route 53對於事件類型,選擇透過 CloudTrail 的 AWS API 呼叫
- 選擇特定操作,然後在欄位中輸入 ChangeResourceRecordSets。這將限制事件僅與資源記錄集的建立、刪除或更新相符。
會顯示下列事件模式:
{
"source": ["aws.route53"],
"detail-type": ["AWS API Call via CloudTrail"],
"detail": {
"eventSource": ["route53.amazonaws.com"],
"eventName": ["ChangeResourceRecordSets"]
}
}
- 選擇下一步,繼續進行下一個步驟。
將 SNS 目標與 EventBridge 規則建立關聯
-
在目標類型區段中,選擇 AWS 服務。
-
在選取目標下拉式清單中,選擇 SNS 主題。
-
在主題下拉式清單中,選擇您先前建立的 SNS 主題。
設定輸入轉換器以自訂 SNS 通知
預設情況下,EventBridge 會將整個 CloudTrail 事件轉送至目標。然後 SNS 主題會以未格式化的 JSON 傳送通知。這可能難以閱讀和快速理解內容。
透過使用輸入轉換器,可以選取輸入事件中的特定字段,然後將其整合至更易於閱讀的訊息中。輸入路徑會識別所需的字段。
在此範例中,通知中包含 eventTime、hostedZone、username 和 eventID。您可以變更這些字段以與您的使用案例保持一致。輸入範本包含通知的訊息內文和預留位置,這些預留位置將使用所需的字段進行動態更新。
-
展開其他設定下拉清單。在設定目標輸入下拉清單中,選擇輸入轉換器。
-
選擇設定輸入轉換器。
-
在輸入路徑字段中,貼上下列文字:
{
"eventTime": "$.detail.eventTime",
"hostedZone": "$.detail.requestParameters.hostedZoneId",
"userName": "$.detail.userIdentity.sessionContext.sessionIssuer.userName",
"eventID": "$.detail.eventID"
}
- 在範本字段中,貼上下列文字:
"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>"
-
選擇確認。
-
(選用) 將標籤新增至 EventBridge 規則。然後,選擇下一步。
-
檢閱規則組態。然後,選擇建立規則。
建立規則之後,對 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"
相關資訊
如何為 EventBridge 規則建立自訂事件模式?
如何使用輸入轉換器為 API 呼叫設定人類可讀的 EventBridge 通知?
教學課程: 使用輸入轉換器自訂 EventBridge 傳遞至事件目標的內容
教學課程: 使用 EventBridge 記錄 AWS API 呼叫