您可以將 Security Command Center Enterprise 級連結至 Microsoft Azure 環境,以便執行下列操作:
- 啟用偵測設定錯誤相關發現事項。
- 找出從公開網際網路到高價值 Microsoft Azure 資產的潛在攻擊路徑。
- 將 Microsoft Azure 資源的法規遵循情形對應至各項標準和基準。
Security Command Center 與 Microsoft Azure 之間的連線,可讓團隊集中管理及修正 Google Cloud 和 Azure 中的錯誤設定。
您可以使用Google Cloud 服務代理程式和 Microsoft Azure使用者指派的受控識別,在 Security Command Center 與 Azure 之間設定信任連線,並存取要監控的 Azure 資源。您可以在 Microsoft Azure 環境中管理及控管信任設定。
每個 Google Cloud 機構只能建立一個 Azure 連線。
Security Command Center 會使用這個連線,定期收集您定義的 Microsoft Azure 資源資料。我們會依據《Google Cloud 隱私權聲明》,以處理服務資料的方式處理這類資料。 連接器會使用 API 呼叫來收集 Azure 資產資料。這些 API 呼叫可能會產生 Microsoft Azure 費用。
掃描期間,資料收集管道會依據服務代理程式,使用使用者指派的受控識別驗證 Microsoft Azure 環境。
下圖顯示 Security Command Center 與 Azure 之間如何建立信任關係。
本文說明如何設定與 Microsoft Azure 的連線。大致步驟如下:
完成「事前準備」一文所述的前置步驟。
建立 Azure 連接器,並設定要掃描的訂閱項目和位置。您需要 Microsoft Azure 租戶 ID 才能執行這些步驟。這會建立服務代理 ID。
設定 Azure 環境,建立具有下列角色的專屬使用者指派受管理身分:
在 Microsoft Azure 根管理群組的範圍內,讀者可以讀取資源、訂用項目和管理群組階層。
Microsoft Azure 根管理群組範圍內的「Key Vault Reader」,可讀取金鑰保存庫和相關憑證、金鑰和祕密的相關中繼資料。
在 Microsoft Azure 根管理群組的範圍內,儲存體 Blob 資料讀取者可讀取資源的中繼資料。如果您打算在設定 Azure 連接器時啟用「將權限授予 Sensitive Data Protection 探索服務」,請授予這個角色。
Microsoft Entra ID 中的目錄讀取者,可讀取群組和成員資格。
Microsoft Entra ID 中的安全性讀取者,可讀取授權政策。
根管理群組的預設顯示名稱為
Tenant root group
。Security Command Center 需要這些權限,才能識別管理群組、具有成員資格的群組和角色定義,這些項目位於資源階層中高於訂閱項目的層級。
您也可以使用服務代理程式的相關資訊,為使用者指派的受管理身分設定同盟身分憑證。
您可以手動執行步驟,也可以使用 Terraform。 手動執行步驟時,需要服務代理 ID。
完成 Azure 連接器的設定,並測試連線。您會使用使用者指派受管理身分識別的相關資訊,執行下列步驟。
Azure 連接器不會擷取 Security Command Center Enterprise 中 SIEM 策劃偵測功能所需的 Azure 記錄。如需相關資訊,請參閱「連線至 Microsoft Azure 以收集記錄資料」。
事前準備
以下各節說明設定 Security Command Center 與 Microsoft Azure 之間的連線前,需要瞭解的必要條件、決策和資訊。
查看 Microsoft Azure 功能
請務必熟悉 Microsoft Azure 的下列概念和功能:
Azure 中的工作負載身分聯盟、聯盟憑證,以及在使用者指派的受控識別項上設定聯盟身分。
使用 Microsoft Azure 入口網站、Azure CLI 或 Terraform 建立及管理資源群組。
規劃資料收集作業
規劃資料收集策略時,請按照下列步驟操作。執行本文中的步驟時,您需要這項資訊。
建立或找出要建立使用者定義受管理身分的資源群組。設定時需要資源群組名稱。
將 RESOURCE_GROUP_NAME 變數換成資源群組名稱,以便在本文後續步驟中填入值。
找出要收集資料的資源。如果您只打算從特定訂閱項目或區域收集資料,請在規劃期間找出並記錄這些項目。
您也可以設定 Azure 連接器,自動探索所有訂閱項目和區域的資源。
在 Google Cloud中設定權限
如要在 Google Cloud中建立及管理與第三方雲端服務供應商的連線,您必須在機構中獲派雲端資產擁有者 (roles/cloudasset.owner
) 角色。如要進一步瞭解如何授予角色,請參閱管理存取權。
在 Microsoft Azure 中設定權限
如要完成「手動設定 Microsoft Azure」或「使用 Terraform 設定 Microsoft Azure」中的步驟,您必須擁有至少建立一個資源群組的 Azure 身分,以及下列權限,才能設定 Microsoft Azure 和 Microsoft Entra 的 IAM 政策。
Microsoft.Authorization/roleAssignments/write
權限,且該權限位於根管理群組的範圍內。下列任一內建角色都具備這項權限: 角色型存取權控管管理員 或使用者存取權管理員。使用者指派的受管理身分識別將建立於資源群組範圍內,因此需要下列權限:
Microsoft.ManagedIdentity/userAssignedIdentities/write
Microsoft.ManagedIdentity/userAssignedIdentities/federatedIdentityCredentials/write
Microsoft Entra 權限
microsoft.directory/roleAssignments/allProperties/allTasks
。 Microsoft Entra 內建的「Privileged Role Administrator」角色具備這項權限。
您必須具備提升的存取權,才能在根管理群組的範圍內設定權限。如要瞭解如何提升全域管理員的存取權,請參閱「提升存取權,管理所有 Azure 訂閱項目和管理群組」。
啟用及設定 Security Command Center Azure 連接器
請按照下列步驟建立及設定 Azure 連接器。
確認您有 36 個字元的 Microsoft Azure 租用戶 ID。
開啟「設定」頁面的「連結器」分頁。
選取啟用 Security Command Center Enterprise 的機構。
依序點選「新增連結器」>「Microsoft Azure」。
在「設定連接器」頁面中,輸入 Azure 租戶 ID。
如要讓 Sensitive Data Protection 剖析 Azure 資料,請保持選取「將權限授予 Sensitive Data Protection 探索服務」。這個選項會在使用者定義的受管理身分識別 Terraform 範本中,新增「儲存體 Blob 資料讀取者」角色。
選取下列任一做法:
- 自動新增訂閱項目: Security Command Center 會自動探索並納入訂閱項目。 您可以選擇將訂閱 ID 新增至「排除 Azure 訂閱」欄位,避免系統收集這些 ID。
- 個別新增訂閱:Security Command Center 不會自動探索訂閱項目。您必須使用「新增 Azure 訂閱項目」欄位,定義至少一個訂閱項目。
在「選取要從哪些 Azure 位置收集資料」部分下方,視需要選取一或多個要從中收集資料的 Microsoft Azure 位置。如要從所有位置收集資料,請將這個欄位留空。從選單中選取位置時,系統會排除取消選取的位置。
建議設定為自動探索 Azure 訂閱項目,並使用所有 Microsoft Azure 位置。
點選「下一步」。「Connect to Azure」(連線至 Azure) 頁面隨即開啟。
請勿關閉「Connect to Azure」(連線至 Azure) 頁面,並繼續設定 Microsoft Azure 環境。
設定 Microsoft Azure 後,請返回這個頁面,完成 Azure 連接器設定。
設定 Microsoft Azure 環境
完成下列任一節:
手動設定 Microsoft Azure
下一節將說明如何手動設定 Azure 環境,在 Security Command Center 與 Microsoft Azure 之間建立信任關係。這項程序並非完整說明,每個章節都會提供 Microsoft Azure 說明文件的連結,說明如何完成該工作。
必要條件
請確認您擁有服務代理程式 ID,這是建立 Security Command Center Azure 連接器時產生的 ID。
步驟 1:在資源群組中建立使用者指派的受管理識別資訊
按照「管理使用者指派的受管理身分」一文中的步驟,建立使用者指派的受管理身分。
建立身分時,請指定下列項目:
- 訂閱項目:選取要管理身分的訂閱項目。
- 資源群組:指定資源群組名稱 RESOURCE_GROUP_NAME,身分將在其中管理。您在規劃資料收集作業時,已找出這項資訊。
- 「Region」(區域):選取區域,例如
East US
。 - 名稱:輸入使用者指派的受管理身分名稱,例如:
gcp-managed-identity
。請將變數 USER_ASSIGNED_MANAGED_IDENTITY_NAME 替換為身分識別名稱,並在需要時填入本文的步驟中。
請記錄下列資訊。您將在後續步驟中使用此項目。
- 用戶端 ID:指派給身分的 36 個字元值。
- 物件 (主體) ID:指派給身分的 36 個字元值。
- 身分識別名稱:您為「名稱」定義的值。
步驟 2:為使用者指派的受管理身分建立同盟憑證
如要在使用者指派的受管理身分中新增聯盟憑證,請按照「設定使用者指派的受管理身分,以信任外部身分提供者」一文中的步驟操作。
請按照「其他發行者情境」一節所述的指引操作,並設定下列項目:
- 聯合憑證情境:選擇「Other: Configure an identity managed by an external OpenID connect Provider to access Microsoft Azure resources as this application」(其他:設定由外部 OpenID Connect 提供者管理的身分,以存取 Microsoft Azure 資源,做為這個應用程式)。
- 核發者網址:輸入
https://accounts.google.com
。 - 主體 ID:輸入您建立 Security Command Center Azure 連接器時產生的服務代理 ID。
- 名稱:輸入同盟憑證的名稱,例如
gcp-managed-identity-fic
。 - 目標對象:輸入
https://cloud.google.com
步驟 3:指派 Microsoft Azure 內建角色
按照「使用 Azure 入口網站指派 Azure 角色」一文中的步驟,將下列 Microsoft Azure 內建角色指派給使用者指派的受管理身分:
- 保管箱讀取者
- 讀取者
- Storage Blob 資料讀取者
在根管理群組範圍授予這些角色。
步驟 4:指派 Microsoft Entra ID 內建角色
按照「將 Microsoft Entra 角色指派給使用者」一文中的步驟,將下列 Microsoft Entra ID 內建角色指派給使用者指派的受管理身分:
- 目錄讀取者
- 安全性讀取者
完成後,請繼續進行「完成 Azure 連接器設定」一節。
使用 Terraform 設定 Microsoft Azure
以下大致說明如何使用 Terraform 設定 Microsoft Azure。這項程序並非完整說明,如要進一步瞭解如何使用 Terraform 佈建資源,請參閱 Azure 上的 Terraform 說明文件。
開啟您在建立 Azure 連接器時保持開啟的「Connect to Azure」(連線至 Azure) 頁面。
按一下「下載 Terraform 範本」。系統會下載包含多個 JSON 檔案的
azure_terraform.zip
檔案。登入 Microsoft Azure,然後使用 BASH 或 Azure PowerShell 開啟 Azure Cloud Shell。
請按照下列其中一項操作說明,根據貴機構的政策設定 Terraform:
將
azure_terraform.zip
檔案複製到 Azure Cloud Shell 環境,然後解壓縮內容。您會看到下列檔案:main.tf.json
、outputs.tf.json
、providers.tf.json
和variables.tf.json
。在其他目錄中建立這些檔案的副本。
- 建立新目錄來測試 Terraform 程式碼範例,並將其設為目前目錄。
在新建目錄中,建立所解壓縮 JSON 檔案的副本,並使用原始檔案的名稱:
- 建立名為
main.tf.json
的新檔案,然後複製並貼上解壓縮的main.tf.json
檔案中的程式碼。 - 建立名為
providers.tf.json
的新檔案,然後複製並貼上解壓縮的providers.tf.json
檔案中的程式碼。 - 建立名為
outputs.tf.json
的新檔案,然後複製並貼上從解壓縮的outputs.tf.json
檔案中取得的程式碼。 - 建立名為
variables.tf.json
的新檔案,然後複製並貼上從解壓縮的variables.tf.json
檔案中取得的程式碼。
- 建立名為
執行下列指令,初始化 Terraform 部署作業。
terraform init -upgrade
執行下列指令來建立執行計畫。
terraform plan -out main.tfplan -var="resource_group_name=RESOURCE_GROUP_NAME" -var="user_assigned_managed_identity_name=USER_ASSIGNED_MANAGED_IDENTITY_NAME"
更改下列內容:
RESOURCE_GROUP_NAME
:Microsoft Azure 資源群組的名稱,使用者指派的管理身分將在此建立。USER_ASSIGNED_MANAGED_IDENTITY_NAME
:要建立的使用者指派受管理身分名稱。如未指定,則預設值為google-cloud-managed-identity
。
執行下列指令,將執行計畫套用至 Microsoft Azure 基礎架構。
terraform apply main.tfplan
繼續進行「完成 Azure 連接器設定」一節。
完成 Azure 連接器設定
請確認您擁有 Microsoft Azure 指派給使用者的受控識別資訊:
- 用戶端 ID:指派給身分的 36 個字元值。
- 物件 (主體) ID:指派給身分的 36 個字元值。
如要瞭解如何尋找這項資訊,請參閱「列出使用者指派的受管理身分」。
開啟您在建立 Azure 連接器時保持開啟的「Connect to Azure」(連線至 Azure) 頁面。
在「Azure 受控識別詳細資料」部分,輸入下列資訊:
- 受控識別用戶端 ID:這是用戶端 ID。
- 受控識別物件 ID:這是物件 (主體) ID。
按一下「繼續」。
在「測試連接器」頁面中,按一下「測試連接器」,確認 Security Command Center 可以連線至 Microsoft Azure 環境。
如果連線成功,服務代理程式就能代管 Microsoft Azure 使用者指派的管理身分,並取得必要的 Microsoft Azure 和 Microsoft Entra 權限。 Google Cloud 如果連線失敗,請參閱排解測試連線時發生的錯誤。
按一下 [儲存]。系統隨即會顯示「連線器」頁面。
連接器會開始掃描並收集您指定的 Azure 訂閱項目和位置資料。調查結果最多可能需要 24 小時才會顯示。
排解測試連線時發生的錯誤
以下章節說明測試 Security Command Center 與 Microsoft Azure 之間的連線時可能發生的錯誤,以及如何解決這些錯誤。
AZURE_ENABLED_SUBSCRIPTIONS_NOT_FOUND 錯誤
Azure 連接器在「Azure 租戶 ID」欄位所識別的租戶中,找不到已啟用訂閱。請檢查下列事項:
- 如果選取「自動新增訂閱項目」,請確認租戶包含處於
Enabled
狀態的訂閱項目,且這些項目未顯示在「排除 Azure 訂閱項目」欄位中。 - 如果選取「個別新增訂閱」,請確認你指定的訂閱項目處於
Enabled
狀態。
AZURE_FAILED_TO_ASSUME_MANAGED_IDENTITY 錯誤
Microsoft Azure 使用者指派的管理身分無法由 Google Cloud 服務代理擔任,因此連線無效。可能原因如下:
- 連線中指定的使用者指派受管理身分不存在,或設定有誤。
- 連線中指定的使用者指派受管理身分可能缺少信任 Google Cloud 服務代理所需的同盟身分憑證。
如要解決這個問題,請按照下列步驟操作:
- 請檢查您在資源群組中建立使用者指派代管身分時的設定,確保該身分存在且設定正確無誤。
- 請檢查同盟身分憑證中定義的設定,確保設定正確無誤。
AZURE_MANAGED_IDENTITY_MISSING_REQUIRED_PERMISSION 錯誤
Azure 使用者指派的受管理身分缺少必要的 Microsoft Azure 或 Microsoft Entra 角色,因此連線無效。錯誤訊息會指出缺少的角色。
如要解決這個問題,請檢查您在設定 Microsoft Azure 內建角色和 Microsoft Entra 內建角色時所做的設定,確保設定正確無誤。
AZURE_MANAGED_IDENTITY_ASSUMPTION_FAILED_AND_MISSING_REQUIRED_PERMISSION 錯誤
Microsoft Azure 指派給使用者的受管理身分無法由 Google Cloud 服務代理擔任,且缺少部分必要的 Microsoft Azure 或 Microsoft Entra 角色,因此連線無效。
錯誤訊息會詳細說明使用者指派的受管理身分無法承擔哪個範圍,以及缺少哪些角色。
如要解決這個問題,請按照下列步驟操作:
- 請檢查您在資源群組中建立使用者指派的受管理身分時指派的設定,確保連線中的身分存在,且設定正確無誤。
- 檢查您在設定Microsoft Azure 內建角色和Microsoft Entra 內建角色時所做的設定,確保設定正確無誤。
其他疑難排解提示
下節說明相關行為和可能的解決步驟。
系統會針對已刪除的 Azure 資源傳回發現項目
刪除 Azure 資源後,最多可能需要 40 小時,該資源才會從 Security Command Center 資產清查系統中移除。如果您選擇刪除資源來解決發現項目,可能會在這段時間內看到系統回報該發現項目,因為資產尚未從 Security Command Center 資產清查系統中移除。
後續步驟
如果您是第一次設定 Security Command Center Enterprise,請繼續進行控制台設定指南中的步驟 4。
你也可以執行下列操作:
- 查看並修正 Azure 資料的發現項目。
- 在 Security Operations 控制台中查看與發現項目相關的資源。
- 查看 Azure 資源的攻擊路徑模擬。