本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
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 會根據其 CloudWatch 事件在接近即時產生調查結果時傳送通知。此事件 (和此通知) 也包含此調查結果的所有後續出現,這些調查結果幾乎即時發生,因為產生了具有唯一 ID 的此調查結果。
注意
根據預設,新產生的調查結果通知頻率接近近乎即時。此頻率無法更新。
- 後續出現的調查結果的通知
-
根據預設,對於每個具有唯一調查結果 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 Events with GuardDuty 來設定自動問題清單提醒,方法是將 GuardDuty問題清單事件傳送到訊息中樞,以協助提高 GuardDuty 問題清單的可見性。本主題說明如何透過設定SNS主題,然後將該主題連接至 CloudWatch 事件事件規則,將問題清單提醒傳送至電子郵件、Slack 或 Amazon Chime。
設定 Amazon SNS主題和端點
首先,您必須先在 Amazon Simple Notification Service 中設定主題並新增端點。如需詳細資訊,請參閱《Amazon Simple Notification Service 開發人員指南》中的入門。
此程序會建立您要傳送 GuardDuty 問題清單資料的位置。SNS 主題可以在 CloudWatch 建立事件規則期間或之後新增至事件事件規則。
建立 SNS 主題
-
在 https://console.aws.amazon.com/sns/v3/home
登入 Amazon SNS主控台。 -
從瀏覽窗格選取主題,然後選取 建立主題。
-
在「建立主題」區段中,選取標準。接下來,輸入主題名稱 (例如
GuardDuty_to_Email
)。其他詳細資料是選擇性的。 -
選擇建立主題。新主題的主題詳細資料隨即開啟。
-
在訂閱區段中,選取建立訂閱
-
-
從通訊協定功能表中,選取電子郵件。
-
在端點欄位中,新增您想要接收通知的電子郵件地址。
注意
建立後,您需要透過您的電子郵件使用者端確認訂閱。
-
選擇建立訂閱
-
-
查看收件匣中的訂閱郵件,然後選擇確認訂閱
設定問題清單 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, 9.1, 9.2, 9.3, 9.4, 9.5, 9.6, 9.7, 9.8, 9.9, 10 ] } }
注意
上述程式碼會針對任何中至關鍵調查結果發出警示。如需嚴重性值範圍的相關資訊,請參閱調查結果嚴重性層級。
-
在目標區段中,按一下新增目標。
-
從選取目標功能表中,選擇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 Events 規則和目標。如需詳細資訊和詳細步驟,請參閱建立在 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,並遵循語法。