將 Microsoft Sentinel 連線至 Amazon Web Services 以內嵌 AWS 服務記錄資料
使用 Amazon Web Services (AWS) 連接器將 AWS 服務記錄提取至 Microsoft Sentinel。 這些連接器的運作方式是將 AWS 資源記錄的存取權授與 Microsoft Sentinel。 設定連接器會建立 Amazon Web Services 與 Microsoft Sentinel 之間的信任關係。 這會在 AWS 上完成,方法是建立一個角色,授與 Microsoft Sentinel 存取 AWS 記錄的許可權。
此連接器提供兩種版本:適用於 CloudTrail 管理和數據記錄的舊版連接器,以及可從下列 AWS 服務擷取記錄的新版本,方法是從 S3 貯體提取記錄(連結為 AWS 檔):
- Amazon Virtual Private Cloud (IMF) - IMF 流量記錄
- Amazon GuardDuty - 結果
- AWS CloudTrail - 管理和數據事件
- AWS CloudWatch CloudWatch - 記錄
此索引標籤說明如何設定 AWS S3 連接器。 設定程式有兩個部分:AWS 端和 Microsoft Sentinel 端。 每一端的進程都會產生另一端所使用的資訊。 此雙向驗證會建立安全的通訊。
必要條件
請確定所選 AWS 服務的記錄會使用 Microsoft Sentinel 所接受的格式:
- AmazonVP:以 GZIP 格式搭配標頭.csv檔案;分隔符:空格。
- Amazon GuardDuty:json-line 和 GZIP 格式。
- AWS CloudTrail:以 GZIP 格式.json檔案。
- CloudWatch:.csv沒有標頭的 GZIP 格式檔案。 如果您需要將記錄轉換成此格式,您可以使用此 CloudWatch Lambda 函式。
您必須擁有 Microsoft Sentinel 工作區的寫入許可權。
從 Microsoft Sentinel 中的內容中樞 安裝 Amazon Web Services 解決方案。 如需詳細資訊,請參閱 探索及管理現用的 Microsoft Sentinel 內容。
架構概觀
此圖形和下列文字顯示此連接器解決方案的各個部分如何互動。
AWS 服務已設定為將其記錄傳送至 S3(簡單 儲存體 服務)記憶體貯體。
每當收到新記錄時,S3 貯體會將通知訊息傳送至 SQS (簡單佇列服務) 消息佇列。
Microsoft Sentinel AWS S3 連接器會定期、頻繁地輪詢 SQS 佇列。 如果佇列中有訊息,則會包含記錄檔的路徑。
連接器會使用路徑讀取訊息,然後從 S3 貯體擷取檔案。
為了連線到 SQS 佇列和 S3 貯體,Microsoft Sentinel 會使用同盟 Web 識別提供者 (Microsoft Entra ID) 透過 OpenID 連線 (OIDC) 向 AWS 進行驗證,並假設 AWS IAM 角色。 角色是使用許可權原則來設定,以授與這些資源的存取權。
連線 S3 連接器
在您的 AWS 環境中:
設定 AWS 服務將記錄傳送至 S3 貯體。
建立 簡單的佇列服務 (SQS) 佇列 以提供通知。
建立 Web 身分識別提供者,透過 OpenID 連線 (OIDC) 向 AWS 驗證使用者。
建立 假設的角色 ,將許可權授與由 OIDC Web 身分識別提供者驗證的使用者,以存取 AWS 資源。
附加適當的 IAM 許可權原則 ,以將所擔任的角色存取權授與適當的資源(S3 貯體、SQS)。
我們已在 GitHub 存放庫中提供腳本,以 自動化此程式的 AWS 端。 請參閱本檔稍後的自動安裝指示。
在 Microsoft Sentinel 中:
- 在 Microsoft Sentinel 入口網站中啟用及設定 AWS S3 連線 or。 請參閱下列指示。
自動設定
為了簡化上線程式,Microsoft Sentinel 提供了 PowerShell 腳本,以自動化連接器的 AWS 端設定 - 必要的 AWS 資源、認證和許可權。
文稿會採取下列動作:
建立 OIDC Web 識別提供者,向 AWS 驗證 Microsoft Entra ID 使用者。
建立具有最低必要許可權的 IAM 假設角色,以授與 OIDC 驗證的使用者對指定 S3 貯體和 SQS 佇列中記錄的存取權。
可讓指定的 AWS 服務將記錄傳送至該 S3 貯體,並將通知訊息傳送至該 SQS 佇列。
如有必要,請為此建立 S3 貯體和該 SQS 佇列。
設定任何必要的 IAM 許可權原則,並將其套用至上面建立的 IAM 角色。
針對 Azure Government 雲端,特製化腳本會建立不同的 OIDC Web 身分識別提供者,併為其指派 IAM 所擔任的角色。
自動設定的必要條件
- 您的電腦上必須有PowerShell和AWS CLI。
- PowerShell 的安裝指示
- AWS CLI 的安裝指示(來自 AWS 檔案)
指示
若要執行腳本來設定連接器,請使用下列步驟:
從 Microsoft Sentinel 導覽功能表中,選取 [數據連接器]。
從數據連接器資源庫選取 [Amazon Web Services S3 ]。
如果您沒有看到連接器,請從 Microsoft Sentinel 中的內容中樞 安裝 Amazon Web Services 解決方案。
在連接器的詳細資料窗格中,選取 [ 開啟連接器] 頁面。
在 [組態] 區段中,低於 1。設定 AWS 環境,展開 [使用 PowerShell 腳本設定] [建議] 。
請遵循螢幕上的指示,從連接器頁面下載並解壓縮 AWS S3 安裝腳本 (鏈接下載包含主要安裝腳本和協助程式腳本的 ZIP 檔案)。
注意
若要將 AWS 記錄擷取至 Azure Government 雲端,請改為下載並擷取 此特製化的 AWS S3 Gov 設定腳本 。
在執行腳本之前,請從您的 PowerShell 命令行執行
aws configure
命令,然後輸入相關信息,如提示。 請參閱 AWS 命令行介面 |設定基本概念 (來自 AWS 檔)以取得詳細數據。現在執行腳本。 從連接器頁面複製命令(在 [執行腳本以設定環境] 底下),並將它貼到命令行中。
文稿會提示您輸入工作區標識碼。 此標識碼會出現在連接器頁面上。 複製它,並在腳本的提示處貼上它。
當腳本完成執行時,請從腳本的輸出複製 角色 ARN 和 SQS URL (請參閱下方第一個螢幕快照中的範例),並將其貼到連接器頁面的 [2] 下方 的個別欄位中。新增連線 (請參閱下方的第二個螢幕快照)。
從 [ 目的地數據表 ] 下拉式清單中選取資料類型。 這會告訴連接器要建立此連線的 AWS 服務記錄,以及其將儲存內嵌數據的 Log Analytics 資料表。 然後選取 [ 新增連線]。
注意
腳本最多可能需要 30 分鐘才能完成執行。
手動設定
Microsoft 建議使用自動安裝腳本來部署此連接器。 如果您基於任何不想利用這項便利性的原因,請遵循下列步驟手動設定連接器。
準備 AWS 資源
建立 S3 貯體 ,您將從 AWS 服務寄送記錄檔 - DHCP、GuardDuty、CloudTrail 或 CloudWatch。
- 請參閱 AWS 檔中建立 S3 記憶體貯體的指示。
建立標準 簡單佇列服務 (SQS) 消息佇列 ,S3 貯體將發佈通知。
將 S3 貯體設定為將通知訊息傳送至 SQS 佇列。
安裝 AWS 資料連接器並準備環境
在 Microsoft Sentinel 中,從導覽功能表選取 [資料連接器]。
從數據連接器資源庫選取 [Amazon Web Services S3 ]。
如果您沒有看到連接器,請從 Microsoft Sentinel 中的內容中樞 安裝 Amazon Web Services 解決方案。 如需詳細資訊,請參閱 探索及管理現用的 Microsoft Sentinel 內容。
在連接器的詳細資料窗格中,選取 [ 開啟連接器] 頁面。
在 [設定] 底下,展開 [使用 PowerShell 腳本設定] [建議],然後將 [外部標識符] [工作區標識符] 複製到剪貼簿。
建立 Open ID 連線 (OIDC) Web 身分識別提供者和 AWS 擔任的角色
在不同的瀏覽器視窗或索引標籤中,開啟 AWS 控制台。
建立 Web 識別提供者。 請遵循 AWS 檔中的下列指示:
建立 OpenID 連線 (OIDC) 識別提供者。參數 選取/值 註解 用戶端識別碼 - 忽略這個,您已經擁有它。 請參閱 下面的物件 行。 提供者類型 OpenID Connect 而不是預設 的 SAML。 提供者 URL 商業: sts.windows.net/33e01921-4d64-4f8c-a055-5bdaffd5e33d/
政府:sts.windows.net/cab8a31a-1906-4287-a0d8-4eef66b95f6e/
指紋 626d44e704d1ceabe3bf0d53397464ac8080142c
如果在 IAM 控制台中建立,選取 [取得指紋 ] 應該會提供此結果。 適用對象 商業: api://1462b192-27f7-4cb9-8523-0f4ecb54b47e
政府:api://d4230588-5f84-4281-a9c7-2c15194b28f7
建立 IAM 承擔的角色。 請遵循 AWS 檔中的下列指示:
建立 Web 身分識別或 OpenID 連線 同盟的角色。參數 選取/值 註解 信任的實體類型 Web 身分識別 而不是預設 AWS 服務。 識別提供者 商業: sts.windows.net/33e01921-4d64-4f8c-a055-5bdaffd5e33d/
政府:sts.windows.net/cab8a31a-1906-4287-a0d8-4eef66b95f6e/
您在上一個步驟中建立的提供者。 適用對象 商業: api://1462b192-27f7-4cb9-8523-0f4ecb54b47e
政府:api://d4230588-5f84-4281-a9c7-2c15194b28f7
您在上一個步驟中為識別提供者定義的物件。 指派的許可權 AmazonSQSReadOnlyAccess
AWSLambdaSQSQueueExecutionRole
AmazonS3ReadOnlyAccess
ROSAKMSProviderPolicy
- 擷取不同類型的 AWS 服務記錄的其他原則
如需這些原則的相關信息,請參閱 Microsoft Sentinel GitHub 存放庫中的相關 AWS S3 連接器許可權原則頁面。 名稱 “OIDC_MicrosoftSentinelRole” 選擇有意義的名稱,其中包含 Microsoft Sentinel 的參考。
名稱必須包含確切的前置詞OIDC_
,否則連接器將無法正常運作。編輯新角色的信任原則,並新增另一個條件:
"sts:RoleSessionName": "MicrosoftSentinel_{WORKSPACE_ID)"
重要
參數的值必須具有確切的
sts:RoleSessionName
前置詞MicrosoftSentinel_
,否則連接器將無法正常運作。完成的信任原則看起來應該像這樣:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Federated": "arn:aws:iam::XXXXXXXXXXXX:oidc-provider/sts.windows.net/cab8a31a-1906-4287-a0d8-4eef66b95f6e/" }, "Action": "sts:AssumeRoleWithWebIdentity", "Condition": { "StringEquals": { "sts.windows.net/cab8a31a-1906-4287-a0d8-4eef66b95f6e/:aud": "api://d4230588-5f84-4281-a9c7-2c15194b28f7", "sts:RoleSessionName": "MicrosoftSentinel_XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX" } } } ] }
XXXXXXXXXXXX
是您的 AWS 帳戶識別碼。XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX
是您的 Microsoft Sentinel 工作區識別碼。
當您完成編輯時,請更新 (save) 原則。
將 AWS 角色和佇列資訊新增至 S3 數據連接器
在開啟至 AWS 控制台的瀏覽器索引標籤中,輸入身分識別與存取管理 (IAM) 服務,然後流覽至 [角色] 清單。 選取您在上面建立的角色。
將 ARN 複製到剪貼簿。
輸入簡單佇列服務,選取您建立的 SQS 佇列,然後將佇列的 URL 複製到剪貼簿。
返回您的 Microsoft Sentinel 瀏覽器索引標籤,該索引標籤應該開啟至 Amazon Web Services S3 (預覽) 資料連接器頁面。 在2歲以下 。新增連線:
- 將您兩個步驟前複製的 IAM 角色 ARN 貼到 [角色以新增 ] 字段中。
- 將您在最後一個步驟中複製之 SQS 佇列的 URL 貼到 [SQS URL] 字段中。
- 從 [ 目的地數據表 ] 下拉式清單中選取資料類型。 這會告訴連接器要建立此連線的 AWS 服務記錄,以及其將儲存內嵌數據的 Log Analytics 資料表。
- 請選取新增連線。
設定 AWS 服務將記錄匯出至 S3 貯體
如需將每種記錄類型傳送至 S3 貯體的指示,請參閱 Amazon Web Services 檔(連結如下) :
-
注意
如果您選擇自定義記錄的格式,則必須包含 start 屬性,因為它會對應至 Log Analytics 工作區中的 TimeGenerated 字段。 否則, TimeGenerated 字段將會填入事件的 擷取時間,這無法準確地描述記錄事件。
-
注意
在 AWS 中,結果預設會每隔 6 小時匯出一次。 根據您的環境需求調整更新作用中結果的導出頻率。 若要加速此程式,您可以修改預設設定,每隔 15 分鐘匯出結果一次。 請參閱 設定匯出更新作用中結果的頻率。
TimeGenerated 字段會填入結果的 [更新] 值。
AWS CloudTrail 軌跡預設會儲存在 S3 貯體中。
已知問題與疑難排解
已知問題
不同類型的記錄可以儲存在相同的 S3 貯體中,但不應該儲存在相同的路徑中。
每個 SQS 佇列都應該指向一種類型的訊息,因此如果您想要內嵌 GuardDuty 結果 和 DHCP 流量記錄,您應該為每個類型設定個別的佇列。
同樣地,單一 SQS 佇列只能在 S3 貯體中提供一個路徑,因此,如果您基於任何理由將記錄儲存在多個路徑中,每個路徑都需要自己的專用 SQS 佇列。
疑難排解
瞭解如何 針對 Amazon Web Services S3 連接器問題進行疑難解答。
下一步
在本檔中,您已瞭解如何連線到 AWS 資源,以將其記錄內嵌至 Microsoft Sentinel。 若要深入了解 Microsoft Sentinel,請參閱下列文章:
- 深入了解如何取得資料的可見度以及潛在威脅。
- 開始使用 Microsoft Sentinel 來偵測威脅。
- 使用活頁簿 來監視您的數據。