本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用 Amazon CloudWatch Events 建立對 GuardDuty 問題清單的自訂回應
GuardDuty 當問題清單發生任何變更時, 會為 Amazon CloudWatch Events 建立事件。將建立 CloudWatch 事件的調查結果變更包括新產生的調查結果或新彙總的調查結果。盡可能發出事件。
每個 GuardDuty 問題清單都會指派一個問題清單 ID。 會使用唯一的問題清單 ID 為每個問題清單 GuardDuty 建立 CloudWatch 事件。所有後續出現的現有調查結果都會彙總至原始調查結果。如需詳細資訊,請參閱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 然後, 會根據此事件傳送有關這些後續出現情況的通知。根據預設,對於現有調查結果的後續出現, GuardDuty 會根據每 6 小時 CloudWatch 的事件傳送通知。
只有管理員帳戶可以自訂有關 CloudWatch 事件後續調查結果發生之通知的預設頻率。成員帳戶的使用者無法自訂此頻率。管理員帳戶在其自己的帳戶中設定的頻率值,會強制 GuardDuty其所有成員帳戶中的功能使用。如果來自管理員帳戶的使用者將此頻率值設定為 1 小時,所有成員帳戶也會有 1 小時的頻率接收有關後續調查結果發生的通知。如需詳細資訊,請參閱Amazon 中的多個帳戶 GuardDuty。
注意
作為管理員帳戶,您可以自訂後續問題清單出現通知的預設頻率。可能的值有 15 分鐘、1 小時或預設的 6 小時。如需有關設定這些通知頻率的資訊,請參閱步驟 5 – 設定匯出更新之作用中問題清單的頻率。
使用 CloudWatch Events 監控封存 GuardDuty的問題清單
對於手動封存的調查結果,這些調查結果的初始和所有後續出現 (在封存完成後產生) 會根據上述頻率傳送到 CloudWatch 事件。
對於自動封存的調查結果,這些調查結果的初始和所有後續出現 (在封存完成後產生) 不會傳送至 CloudWatch Events。
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。 中出現的 id
參數GUARDDUTY_FINDING_JSON_OBJECT
是先前描述的調查結果 ID。
建立 CloudWatch 事件規則以通知您 GuardDuty 問題清單 (主控台)
您可以將 CloudWatch 事件與 搭配使用 GuardDuty ,透過將 GuardDuty問題清單事件傳送到訊息中樞來設定自動問題清單提醒,以協助提高 GuardDuty 問題清單的可見性。本主題說明如何設定SNS主題,然後將該主題連線至 CloudWatch 事件事件規則,以將問題清單提醒傳送至電子郵件、Slack 或 Amazon Chime。
設定 Amazon SNS主題和端點
首先,您必須先在 Amazon Simple Notification Service 中設定主題並新增端點。如需詳細資訊,請參閱《Amazon Simple Notification Service 開發人員指南》中的入門。
此程序會建立您要傳送 GuardDuty 問題清單資料的位置。SNS 主題可以在 CloudWatch 建立事件規則期間或之後新增至事件事件規則。
設定問題清單 CloudWatch 的事件 GuardDuty
-
在 開啟 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, 9.0 ] } }
注意
上述程式碼將提醒任何中至關鍵調查結果。如需嚴重性值範圍的資訊,請參閱 調查結果嚴重性層級。
-
在目標區段中,按一下新增目標。
-
從選取目標功能表中,選擇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 Events CloudWatch 主控台建立 的事件規則和目標。如需詳細資訊和詳細步驟,請參閱建立在 CloudWatch 事件上觸發的事件規則。在事件來源區段中,為服務名稱選取 GuardDuty
並為事件類型選取 GuardDuty Finding
。
建立規則和目標
-
若要建立規則,讓 CloudWatch 能夠為所有產生的調查結果 GuardDuty傳送事件,請執行下列 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 的任何調查結果上觸發。IDs 您可以新增多個 ,並依照JSON語法以逗號分隔。