跳至內容

如何建立 EventBridge 規則來自動回應 CloudTrail API 呼叫?

2 分的閱讀內容
0

我想使用 Amazon EventBridge 規則來建立對 AWS CloudTrail API 呼叫的自訂自動回應。

簡短描述

若要為 CloudTrail API 呼叫設定自訂動作或通知,請建立具有與該事件相符之事件模式的 EventBridge 規則。

解決方法

建立 CloudTrail 追蹤

**注意:**您必須設定 CloudTrail 追蹤來擷取事件,然後將事件轉送至 EventBridge。即使您具有有效的事件模式比對,EventBridge 規則也只會透過追蹤來啟動。

若要建立 CloudTrail 追蹤,請完成下列步驟:

  1. 開啟 CloudTrail console (CloudTrail 主控台)。
  2. 瀏覽至 Trails (追蹤)。
  3. 如果您要建立規則的區域中已存在追蹤,請確定其狀態設定為 Logging (記錄)。
  4. 如果您沒有現有追蹤,請選擇 Create trail (建立追蹤)。
  5. Trail name (追蹤名稱) 中,輸入名稱。
  6. Storage location (儲存位置) 中,選擇 Create a new S3 bucket (建立新的 S3 儲存貯體)。
  7. AWS KMS alias (AWS KMS 別名) 中,輸入 AWS Key Management Service (KMS) 金鑰的別名。
  8. 選擇 Next (下一步)。然後,再次選擇 Next (下一步)。
  9. 選擇 Create trail (建立追蹤)。

如需詳細資訊,請參閱使用 CloudTrail 主控台建立追蹤

建立 EventBridge 規則和事件模式

**注意:**本節的範例使用 Amazon Simple Queue Service (Amazon SQS) API 作業 CreateQueue 來產生事件。當您使用 Amazon SQS API 作業時,CloudTrail 會記錄產生的事件,然後將事件轉送到預設的 EventBridge 匯流排。

若要建立 EventBridge 規則和事件模式,請完成下列步驟:

  1. 開啟 EventBridge console (EventBridge 主控台)。
  2. 在導覽窗格中,選擇 Rules (規則)。
  3. 選擇 Create rule (建立規則)。
  4. 輸入規則的名稱和描述,例如 TestRule。
  5. Event bus (事件匯流排) 中,選擇您想與此規則建立關聯的事件匯流排。如果您希望規則與來自您帳戶的事件相符,請選取 default (預設)。
    **注意:**當您帳戶中的 AWS 服務建立事件時,該事件會轉到您帳戶的預設事件匯流排
  6. 對於 Rule type (規則類型),選擇 Rule with an event pattern (具有事件模式的規則)。
  7. 選擇 Next (下一步)。
  8. Event source (事件來源) 中,選擇 AWS services (AWS 服務)。
  9. 選擇 Event pattern (事件模式)。
  10. Event source (事件來源) 中,選擇 SQS
  11. Event type (事件類型) 中,選擇 AWS API Call via CloudTrail (透過 CloudTrail 的 AWS API 呼叫)。
  12. 選擇 Specific operation(s) (特定作業),然後輸入 CreateQueue。以下範例顯示了根據您所選擇的選項所產生的事件模式:
{  "source": ["aws.sqs"],
  "detail-type": ["AWS API Call via CloudTrail"],
  "detail": {
    "eventSource": ["sqs.amazonaws.com"],
    "eventName": ["CreateQueue"]
  }
}

**注意:**事件模式會根據多個欄位進行篩選,例如 eventNameeventSource。事件比對必須包含所有欄位和對應值。 選擇 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 規則

請完成下列步驟:

  1. 開啟 SQS console (SQS 主控台)。
  2. 選擇 Create queue (建立佇列)。
  3. Type (類型) 中,選擇 Standard queue type (標準佇列類型)。
  4. 輸入佇列的名稱。
  5. 將所有其他選項保留為預設值,然後選擇 Create queue (建立佇列)。
  6. 使用 TriggeredRules、Invocations 和 FailedInvocations 指標來確認您的 EventBridge 規則是否觸發並調用了目標。
  7. 若要檢視指標,請瀏覽至您建立的規則,然後開啟 Monitoring (監控) 索引標籤。或者,在 AWS/Events 命名空間中的 CloudWatch 主控台中檢視指標。
  8. 確認 Lambda 函式已成功調用,且 CloudWatch 日誌群組已擷取事件。
  9. 在 CloudWatch Logs 主控台中瀏覽至您的目標日誌群組。請注意,其會顯示具有相應日誌事件的新日誌串流。

相關資訊

教學課程: 建立透過 CloudTrail 對 AWS API 呼叫做出回應的 EventBridge 規則

如何為 EventBridge 規則建立自訂事件模式?

AWS 官方已更新 7 個月前