連線至 Microsoft Azure,以收集設定和資源資料

您可以將 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 之間如何建立信任關係。

Azure 和 Security Command Center 設定。

本文說明如何設定與 Microsoft Azure 的連線。整體來說,步驟如下:

  1. 請先完成「事前準備」一文所述的前置步驟。

  2. 建立 Azure 連接器,並設定要掃描的訂閱項目和位置。您需要 Microsoft Azure 租戶 ID,才能完成這些步驟。這會建立服務代理程式 ID。

  3. 設定 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。

  4. 完成 Azure 連接器的設定,並測試連線。您可以使用使用者指派的受管理身分識別相關資訊,完成這些步驟。

資料收集類型

您可以根據安全目標,將 Security Command Center 連線至 Microsoft Azure,收集不同類型的資料:

  • 資源和設定資料:這個頁面設定的 Azure 連接器會收集設定中繼資料和資源資料,以找出設定錯誤、評估安全防護機制,以及找出攻擊路徑。
  • 記錄資料:如要運用 SIEM 精選偵測功能,並分析 Microsoft Azure 事件記錄,請設定個別的連線來擷取記錄。詳情請參閱「連線至 Microsoft Azure 以收集記錄資料」。

事前準備

以下各節說明設定 Security Command Center 與 Microsoft Azure 連線前,需要瞭解的先決條件、決策和資訊。

查看 Microsoft Azure 功能

請務必熟悉 Microsoft Azure 的下列概念和功能:

規劃資料收集作業

規劃資料收集策略時,請按照下列步驟操作。執行本文中的步驟時,您需要這項資訊。

  • 建立或找出要建立使用者定義受管理身分的資源群組。設定時需要資源群組名稱。

    RESOURCE_GROUP_NAME 變數替換為資源群組名稱,以便在本文後續步驟中填入值。

  • 找出要收集資料的資源。如果您只打算從特定訂閱項目或區域收集資料,請在規劃期間找出並記錄這些項目。

    您也可以設定 Azure 連接器,自動探索所有訂用項目和區域的資源。

在 Google Cloud中設定權限

如要在 Google Cloud中建立及管理與第三方雲端服務供應商的連線,您必須在機構中獲派「Cloud Asset Owner」(雲端資產擁有者) 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 內建的「特殊權限角色管理員」角色具備這項權限。

您必須具備提升的存取權,才能在根管理群組的範圍內設定權限。如要瞭解如何提升全域管理員的存取權,請參閱「提升存取權,管理所有 Azure 訂閱項目和管理群組」。

啟用及設定 Security Command Center Azure 連接器

請按照下列步驟建立及設定 Azure 連接器。

啟動連接器設定

  1. 請確認您具備「在 Google Cloud中設定權限」一節中定義的權限。

  2. 請確認您有 36 個字元的 Microsoft Azure 租戶 ID

  3. 開啟「設定」頁面中的「連結器」分頁標籤。

    前往「連結器」

  4. 選取您啟用 Security Command Center Enterprise 的組織。

  5. 依序點選「新增連結器」「Microsoft Azure」

  6. 在「設定連接器」頁面中,輸入 Azure 租戶 ID

  7. 如要讓 Sensitive Data Protection 剖析 Azure 資料,請選取「將權限授予 Sensitive Data Protection 探索服務」。這個選項會在使用者定義的受管理身分識別 Terraform 範本中,新增「儲存體 Blob 資料讀取者」角色。

指定訂閱項目和位置

  1. 選取下列任一選項:

    • 自動新增訂閱項目: Security Command Center 會自動探索並納入訂閱項目和管理群組。 您可以選擇將訂閱 ID 新增至「排除 Azure 訂閱」欄位,排除系統收集這些 ID。

    • 個別新增訂閱:Security Command Center 不會自動探索訂閱項目。您必須使用「Add Azure Subscription」(新增 Azure 訂閱項目) 欄位,至少定義一個訂閱項目。

  2. 在「選取要從哪些 Azure 位置收集資料」部分下方,視需要選取一或多個要從中收集資料的 Microsoft Azure 位置。如要從所有位置收集資料,請將這個欄位留空。從選單中選取地點時,系統會排除取消選取的地點。

    建議設定為自動探索 Azure 訂閱項目,並使用所有 Microsoft Azure 位置。

  3. 點選「下一步」。「Connect to Azure」(連線至 Azure) 頁面隨即開啟。

    您必須先設定 Microsoft Azure,才能儲存或繼續這個頁面。如需操作說明,請參閱「設定 Microsoft Azure 環境」。

    設定 Microsoft Azure 後,請按照「完成 Azure 連接器設定」一文的說明操作。

設定 Microsoft Azure 環境

完成下列任一節:

手動設定 Microsoft Azure

下一節將說明如何手動設定 Azure 環境,在 Security Command Center 與 Microsoft Azure 之間建立信任關係。這項程序並非完整程序。每個章節都會提供 Microsoft Azure 說明文件的連結,說明如何完成該工作。

必要條件

步驟 1:在資源群組中建立使用者指派的受管理身分

  1. 按照「管理使用者指派的受管理身分」一文中的步驟,建立使用者指派的受管理身分。

    建立身分時,請指定下列項目:

    • 訂閱項目:選取要管理身分的訂閱項目。
    • 資源群組:指定資源群組名稱, RESOURCE_GROUP_NAME, 身分識別將在其中管理。您在規劃資料收集時,已識別出這個名稱。
    • 「Region」(區域):選取區域,例如 East US
    • 名稱:輸入使用者指派的受管理身分名稱,例如: gcp-managed-identity。將變數 USER_ASSIGNED_MANAGED_IDENTITY_NAME 替換為身分名稱,系統會在需要時,於本文的步驟中填入該名稱。
  2. 請記錄下列資訊,您會在後續步驟中使用這些資訊。

    • 用戶端 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 提供者管理的 ID,以存取 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 內建角色指派給使用者指派的受管理身分:

  • Key Vault 讀取者
  • 讀取者
  • Storage Blob 資料讀取者

在根管理群組範圍內授予這些角色。

步驟 4:指派 Microsoft Entra ID 內建角色

按照「將 Microsoft Entra 角色指派給使用者」一文中的步驟,將下列 Microsoft Entra ID 內建角色指派給使用者指派的受管理身分:

  • 目錄讀取者
  • 安全性讀取者

指派角色後,請完成 Azure 連接器設定

使用 Terraform 設定 Microsoft Azure

以下高階步驟說明如何使用 Terraform 設定 Microsoft Azure。這項程序並不完整。如要進一步瞭解如何使用 Terraform 佈建資源,請參閱 Azure 上的 Terraform 說明文件

下載 Terraform 範本

  1. 開啟您在建立 Azure 連接器時開啟的「Connect to Azure」(連線至 Azure) 頁面。

  2. 按一下「下載 Terraform 範本」。系統會下載包含多個 JSON 檔案的 azure_terraform.zip 檔案。

準備 Terraform 環境

  1. 登入 Microsoft Azure,然後使用 Bash 或 Azure PowerShell 開啟 Azure Cloud Shell。

  2. 請按照下列其中一組操作說明,根據貴機構的組織政策設定 Terraform:

  3. azure_terraform.zip 檔案複製到 Azure Cloud Shell 環境,然後解壓縮內容。您會看到下列檔案:main.tf.jsonoutputs.tf.jsonproviders.tf.jsonvariables.tf.json

  4. 在個別目錄中建立這些檔案的副本:

    1. 建立新目錄來測試 Terraform 程式碼範例,並將其設為目前目錄。
    2. 在新建的目錄中,建立所解壓縮 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 檔案中取得的程式碼。

部署執行計畫

  1. 執行下列指令,初始化 Terraform 部署作業。

    terraform init -upgrade
    
  2. 執行下列指令,建立執行計畫。

    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
  3. 執行下列指令,將執行計畫套用至 Microsoft Azure 基礎架構。

    terraform apply main.tfplan
    

完成這些步驟後,請完成 Azure 連接器設定

完成 Azure 連接器設定

  1. 請確認您具備 Microsoft Azure 使用者指派受控識別的下列資訊:

    • 用戶端 ID:指派給身分的 36 個字元值。
    • 物件 (主體) ID:指派給身分的 36 個字元值。

    如要瞭解如何尋找這項資訊,請參閱「列出使用者指派的受管理身分」。

  2. 開啟您在建立 Azure 連接器時開啟的「Connect to Azure」(連線至 Azure) 頁面。

  3. 在「Azure 受控識別詳細資料」部分,輸入下列資訊:

    • 受控識別用戶端 ID:這是用戶端 ID
    • 受控識別物件 ID:這是物件 (主體) ID
  4. 按一下「繼續」

  5. 在「測試連接器」頁面中,按一下「測試連接器」,確認 Security Command Center 可以連線至 Microsoft Azure 環境。

    如果連線成功, Google Cloud 服務代理可以擔任 Microsoft Azure 使用者指派的管理身分,並擁有必要的 Microsoft Azure 和 Microsoft Entra 權限。如果連線失敗,請參閱排解測試連線時發生的錯誤

  6. 按一下 [儲存]。系統隨即會顯示「連線器」頁面。

連接器會開始掃描並收集您指定的 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 錯誤

連線無效,因為 Google Cloud 服務代理無法擔任 Microsoft Azure 使用者指派的受管理身分,且缺少部分必要的 Microsoft Azure 或 Microsoft Entra 角色。

錯誤訊息會詳細說明使用者指派的受管理身分無法承擔哪個範圍,以及缺少哪些角色。

如要解決這個問題,請按照下列步驟操作:

其他疑難排解提示

下節說明相關行為和可能的解決步驟。

系統會針對已刪除的 Azure 資源傳回發現項目

刪除 Azure 資源後,最多可能需要 40 小時,該資源才會從 Security Command Center 資產清查系統中移除。如果您選擇刪除資源來解決發現項目,在這段時間範圍內,您可能會看到系統回報該發現項目,因為資產尚未從 Security Command Center 資產清查系統中移除。

修改現有的 Azure 連接器

您可以修改現有的 Azure 連接器,更新權限、新增或移除 Azure 訂閱項目,或調整位置。如需操作說明,請參閱「修改 Azure 連接器」。

後續步驟