我想使用 Amazon EventBridge 規則來建立對 AWS CloudTrail API 呼叫的自訂自動回應。
簡短描述
若要為 CloudTrail API 呼叫設定自訂動作或通知,請建立具有與該事件相符之事件模式的 EventBridge 規則。
解決方法
建立 CloudTrail 追蹤
**注意:**您必須設定 CloudTrail 追蹤來擷取事件,然後將事件轉送至 EventBridge。即使您具有有效的事件模式比對,EventBridge 規則也只會透過追蹤來啟動。
若要建立 CloudTrail 追蹤,請完成下列步驟:
- 開啟 CloudTrail console (CloudTrail 主控台)。
- 瀏覽至 Trails (追蹤)。
- 如果您要建立規則的區域中已存在追蹤,請確定其狀態設定為 Logging (記錄)。
- 如果您沒有現有追蹤,請選擇 Create trail (建立追蹤)。
- 在 Trail name (追蹤名稱) 中,輸入名稱。
- 在 Storage location (儲存位置) 中,選擇 Create a new S3 bucket (建立新的 S3 儲存貯體)。
- 在 AWS KMS alias (AWS KMS 別名) 中,輸入 AWS Key Management Service (KMS) 金鑰的別名。
- 選擇 Next (下一步)。然後,再次選擇 Next (下一步)。
- 選擇 Create trail (建立追蹤)。
如需詳細資訊,請參閱使用 CloudTrail 主控台建立追蹤。
建立 EventBridge 規則和事件模式
**注意:**本節的範例使用 Amazon Simple Queue Service (Amazon SQS) API 作業 CreateQueue 來產生事件。當您使用 Amazon SQS API 作業時,CloudTrail 會記錄產生的事件,然後將事件轉送到預設的 EventBridge 匯流排。
若要建立 EventBridge 規則和事件模式,請完成下列步驟:
- 開啟 EventBridge console (EventBridge 主控台)。
- 在導覽窗格中,選擇 Rules (規則)。
- 選擇 Create rule (建立規則)。
- 輸入規則的名稱和描述,例如 TestRule。
- 在 Event bus (事件匯流排) 中,選擇您想與此規則建立關聯的事件匯流排。如果您希望規則與來自您帳戶的事件相符,請選取 default (預設)。
**注意:**當您帳戶中的 AWS 服務建立事件時,該事件會轉到您帳戶的預設事件匯流排。
- 對於 Rule type (規則類型),選擇 Rule with an event pattern (具有事件模式的規則)。
- 選擇 Next (下一步)。
- 在 Event source (事件來源) 中,選擇 AWS services (AWS 服務)。
- 選擇 Event pattern (事件模式)。
- 在 Event source (事件來源) 中,選擇 SQS。
- 在 Event type (事件類型) 中,選擇 AWS API Call via CloudTrail (透過 CloudTrail 的 AWS API 呼叫)。
- 選擇 Specific operation(s) (特定作業),然後輸入 CreateQueue。以下範例顯示了根據您所選擇的選項所產生的事件模式:
{ "source": ["aws.sqs"],
"detail-type": ["AWS API Call via CloudTrail"],
"detail": {
"eventSource": ["sqs.amazonaws.com"],
"eventName": ["CreateQueue"]
}
}
**注意:**事件模式會根據多個欄位進行篩選,例如 eventName 和 eventSource。事件比對必須包含所有欄位和對應值。
選擇 Next (下一步)。
在 Target types (目標類型) 中,選擇 AWS service (AWS 服務)。
在 Select a target (選取目標) 中,選擇 Lambda function (Lambda 函式)。
在清單中,選擇您的 Function (函式)。
選擇 Add another target (新增其他目標)。
在 AWS service (AWS 服務) 區段中,選擇 CloudWatch log group (CloudWatch 日誌群組)。
在 Select log (選取日誌) 群組中,選擇現有的日誌群組或建立新日誌群組。
選擇 Next (下一步)。然後,再次選擇 Next (下一步)。
選擇 Create rule (建立規則)。
驗證 EventBridge 規則
請完成下列步驟:
- 開啟 SQS console (SQS 主控台)。
- 選擇 Create queue (建立佇列)。
- 在 Type (類型) 中,選擇 Standard queue type (標準佇列類型)。
- 輸入佇列的名稱。
- 將所有其他選項保留為預設值,然後選擇 Create queue (建立佇列)。
- 使用 TriggeredRules、Invocations 和 FailedInvocations 指標來確認您的 EventBridge 規則是否觸發並調用了目標。
- 若要檢視指標,請瀏覽至您建立的規則,然後開啟 Monitoring (監控) 索引標籤。或者,在 AWS/Events 命名空間中的 CloudWatch 主控台中檢視指標。
- 確認 Lambda 函式已成功調用,且 CloudWatch 日誌群組已擷取事件。
- 在 CloudWatch Logs 主控台中瀏覽至您的目標日誌群組。請注意,其會顯示具有相應日誌事件的新日誌串流。
相關資訊
教學課程: 建立透過 CloudTrail 對 AWS API 呼叫做出回應的 EventBridge 規則
如何為 EventBridge 規則建立自訂事件模式?