本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用 Amazon CloudWatch 活動建立自訂回應的 GuardDuty 發現項目
GuardDuty 當發現項目發生任何變更時,會為 Amazon CloudWatch 活動建立事件。尋找將建立 CloudWatch 事件的變更包括新產生的發現項目或新彙總的發現項目。盡可能發出事件。
每個 GuardDuty 發現項目都會指派一個尋找 ID。 GuardDuty 使用唯 CloudWatch 一的尋找項目 ID 為每個尋找項目建立事件。所有後續出現的現有調查結果都會彙總至原始調查結果。如需詳細資訊,請參閱 GuardDuty 尋找彙總。
注意
如果您的帳戶是 GuardDuty 委派的系統管理員,則會將 CloudWatch 事件發佈到您的帳戶以及產生發現項目的成員帳戶。
透過搭配使用 CloudWatch 事件 GuardDuty,您可以自動化工作,以協助您回應 GuardDuty 發現項目所揭露的安全性問題。
若要接收根據「 CloudWatch 事件」 GuardDuty 發現項目的相關通知,您必須建立「 CloudWatch 事件」規則和目標 GuardDuty。此規則可 CloudWatch 讓您將 GuardDuty 產生之發現項目的通知傳送至規則中指定的目標。如需詳細資訊,請參閱 為 GuardDuty (CLI) 建立 CloudWatch 事件規則和目標。
主題
CloudWatch 事件通知頻率 GuardDuty
- 針對具有唯一調查結果 ID 的新產生調查結果的通知
GuardDuty 在發現後的 5 分鐘內根據其 CloudWatch 事件發送通知。由於產生了此具有唯一 ID 的調查結果,此事件 (以及此通知) 也包括在前 5 分鐘內所有後續出現的此調查結果。
注意
依預設,新產生調查結果的通知頻率為 5 分鐘。此頻率無法更新。
- 後續出現的調查結果的通知
根據預設,對於具有唯一尋找項目 ID 的每個發現項目,都會將 6 小時間隔內發生之特定尋找項目類型的所有後續發生項目 GuardDuty 彙總為單一事件。 GuardDuty 然後根據此事件發送有關這些後續事件的通知。依預設,對於現有發現項目的後續發生項目,每 6 小時會根據 CloudWatch 事件 GuardDuty 傳送通知。
只有管理員帳戶帳戶可以自訂傳送有關事件後續發現 CloudWatch 事件發生次數的通知預設頻率。成員帳戶的使用者無法自訂此頻率。系統管理員帳戶在其自己帳戶中設定的頻率值會強加在其所有成員帳戶的 GuardDuty功能上。如果來自管理員帳戶帳戶的使用者將此頻率值設定為 1 小時,則所有成員帳戶也會以 1 小時的頻率接收有關後續發現項目的通知。如需詳細資訊,請參閱 在 Amazon 管理多個帳戶 GuardDuty。
注意
身為管理員帳戶,您可以自訂有關後續發現事件的預設通知頻率。可能的值有 15 分鐘、1 小時或預設的 6 小時。如需有關設定這些通知頻率的資訊,請參閱步驟 5 — 設定匯出更新的使用中發現項目的頻率。
使用事件監視封存的 GuardDuty CloudWatch 發現
針對手動封存的發現項目,這些發現項目的初始與後續發現項目 (在封存完成之後產生) 都會傳送至上述每個頻率的 CloudWatch 事件。
對於自動存檔的發現項目,這些發現項目的初始和所有後續發現項目 (在封存完成之後產生) 都不會傳送至 CloudWatch 事件。
CloudWatch 事件格式 GuardDuty
的 CloudWatch 事件 GuardDuty 具有下列格式。
{ "version": "0", "id": "cd2d702e-ab31-411b-9344-793ce56b1bc7", "detail-type": "GuardDuty Finding", "source": "aws.guardduty", "account": "111122223333", "time": "1970-01-01T00:00:00Z", "region": "us-east-1", "resources": [], "detail": {GUARDDUTY_FINDING_JSON_OBJECT} }
注意
詳細資訊值作為物件返回單一調查結果的 JSON 詳細資訊,而不是返回可支援陣列中多個調查結果的「調查結果」值。
如需包含在 GUARDDUTY_FINDING_JSON_OBJECT
中全部參數的完整清單,請參閱 GetFindings。在 GUARDDUTY_FINDING_JSON_OBJECT
中出現的 id
參數,即為之前描述的調查結果 ID。
建立 CloudWatch 事件規則以通知您 GuardDuty 發現項目 (主控台)
您可以 GuardDuty 將 CloudWatch 事件與搭配使用,藉由將尋找事件傳送至訊息中樞來設定自動 GuardDuty尋找警示,以協助提高發 GuardDuty 現項目的可見度。本主題說明如何透過設定 SNS 主題,然後將該主題連接至事件事件規則,將發現項目警示傳送至電子郵 CloudWatch 件、Slack 或 Amazon Chime。
設定 Amazon SNS 主題和端點
首先,您必須先在 Amazon Simple Notification Service 中設定主題並新增端點。如需詳細資訊,請參閱《Amazon Simple Notification Service 開發人員指南》中的入門。
此程序會建立您要傳送 GuardDuty 尋找資料的位置。在建立 CloudWatch 事件規則期間或之後,可將 SNS 主題新增至「事件事件」規則。
設定發 GuardDuty現項目的 CloudWatch 事件
-
請在以下位置開啟 CloudWatch 主控台。
https://console.aws.amazon.com/cloudwatch/ -
從導覽窗格選取規則,然後選取建立規則。
-
從「服務名稱」功能表中選擇GuardDuty。
-
從「事件型態」功能表選擇「GuardDuty搜尋結果」。
-
在事件模式預覽中,選擇編輯。
-
將下面的 JSON 程式碼貼到事件模式預覽中,然後選擇儲存
{ "source": [ "aws.guardduty" ], "detail-type": [ "GuardDuty Finding" ], "detail": { "severity": [ 4, 4.0, 4.1, 4.2, 4.3, 4.4, 4.5, 4.6, 4.7, 4.8, 4.9, 5, 5.0, 5.1, 5.2, 5.3, 5.4, 5.5, 5.6, 5.7, 5.8, 5.9, 6, 6.0, 6.1, 6.2, 6.3, 6.4, 6.5, 6.6, 6.7, 6.8, 6.9, 7, 7.0, 7.1, 7.2, 7.3, 7.4, 7.5, 7.6, 7.7, 7.8, 7.9, 8, 8.0, 8.1, 8.2, 8.3, 8.4, 8.5, 8.6, 8.7, 8.8, 8.9 ] } }
注意
上面的程式碼會提醒任何「中」至「高」調查結果。
-
在目標區段中,按一下新增目標。
-
從選取目標功能表中,選擇 SNS 主題。
-
針對選取主題,請選取您在步驟 1 中建立的 SNS 主題名稱。
-
設定事件的輸入。
-
如果您要設定 Chime 或 Slack 的通知,請跳至步驟 11,輸入類型預設為符合的事件。
-
如果您要透過 SNS 設定電子郵件通知,請遵循下列步驟,使用下列步驟自訂傳送至收件匣的郵件:
-
展開設定輸入,然後選擇輸入轉換器。
-
複製下列程式碼並貼到輸入路徑欄位中。
{ "severity": "$.detail.severity", "Account_ID": "$.detail.accountId", "Finding_ID": "$.detail.id", "Finding_Type": "$.detail.type", "region": "$.region", "Finding_description": "$.detail.description" }
-
複製下列程式碼並貼到 輸入範本欄位,以格式化電子郵件。
"AWS <Account_ID> has a severity <severity> GuardDuty finding type <Finding_Type> in the <region> region." "Finding Description:" "<Finding_description>. " "For more details open the GuardDuty console at https://console.aws.amazon.com/guardduty/home?region=<region>#/findings?search=id%3D<Finding_ID>"
-
-
按一下設定詳細資料。
-
在設定規則詳細資訊頁面上,輸入規則的名稱和描述,然後選擇建立規則。
為 GuardDuty (CLI) 建立 CloudWatch 事件規則和目標
下列程序顯示如何使用AWS CLI命令建立 CloudWatch 事件規則和目標 GuardDuty。具體而言,此程序會示範如何建立規則,以 CloudWatch 便傳送所有發現項目的事件,這些發現項目 GuardDuty 會產生並將AWS Lambda函數新增為規則的目標。
注意
除了 Lambda 函數之外 GuardDuty ,還 CloudWatch 支援下列目標類型:Amazon EC2 執行個體、Amazon Kinesis 串流、Amazon ECS 任務、AWS Step Functions狀態機器、run
命令和內建目標。
您也可以 GuardDuty 透過「 CloudWatch 事件」主控台建立「 CloudWatch 事件」規則和目標。如需詳細資訊和詳細步驟,請參閱建立在 CloudWatch 事件上觸發的事件規則。在事件來源區段中,為服務名稱選取 GuardDuty
並為事件類型選取 GuardDuty Finding
。
建立規則和目標
-
若要為 GuardDuty產生的所有發現項目建立可 CloudWatch 傳送事件的規則,請執行下列 CloudWatch CLI 命令。
AWS events put-rule --name Test --event-pattern "{\"source\":[\"aws.guardduty\"]}"
重要
您可以進一步自訂規則,以便僅針對 GuardDuty產生的發現項目的子集傳送事件。 CloudWatch 此部分項目是根據調查結果屬性或規則中指定的屬性而定。例如,使用下列 CLI 命令建立只能 CloudWatch 傳送嚴重性為 5 或 8 之發 GuardDuty 現項目事件的規則:
AWS events put-rule --name Test --event-pattern "{\"source\":[\"aws.guardduty\"],\"detail-type\":[\"GuardDuty Finding\"],\"detail\":{\"severity\":[5,8]}}"
為此,您可以使用 JSON 中提供的任何屬性值來進行發 GuardDuty 現項目。
-
若要將 Lambda 函數附加為您在步驟 1 中建立之規則的目標,請執行下列 CloudWatch CLI 命令。
AWS events put-targets --rule Test --targets Id=1,Arn=arn:aws:lambda:us-east-1:111122223333:function:<your_function>
注意
確保在<your_function>上面的命令中用 GuardDuty 事件的實際 Lambda 函數替換。
-
若要新增調用目標所需的許可,請執行以下 Lambda CLI 命令。
AWS lambda add-permission --function-name <your_function> --statement-id 1 --action 'lambda:InvokeFunction' --principal events.amazonaws.com
注意
確保在<your_function>上面的命令中用 GuardDuty 事件的實際 Lambda 函數替換。
注意
在上述程序中,我們使用 Lambda 函數做為觸發 CloudWatch 事件之規則的目標。您也可以將其他AWS資源配置為觸發 CloudWatch 事件的目標。如需詳細資訊,請參閱 PutTargets。
CloudWatch 適用於 GuardDuty 多帳戶環境的活動
GuardDuty 身為管理員,您帳戶中的 CloudWatch 事件規則將根據您會員帳戶中的適用發現項目觸發。這表示,如果您透過系統管理員帳戶中的 CloudWatch 事件設定尋找通知 (如上一節所述),則除了您自己的成員帳戶之外,還會收到通知您的成員帳戶所產生的高度和中等嚴重性發現項目。
您可以使用 GuardDuty 發現項目的 JSON 詳細資料accountId
欄位來識別發現項目來源的成員帳戶。
若要開始在主控台中為環境中的特定成員帳戶撰寫自訂事件規則,請建立新規則並將下列範本貼到「事件模式預覽」中,然後新增要觸發事件之成員帳戶的帳戶 ID。
{ "source": [ "aws.guardduty" ], "detail-type": [ "GuardDuty Finding" ], "detail": { "accountId": [ "
123456789012
" ] } }
注意
此範例會在所列帳戶 ID 的任何調查結果上觸發。您可以新增多個 ID,並以遵循 JSON 語法的逗號分隔。