共用方式為


快速入門:使用測試機器稽核適用於Linux的 Azure 安全性基準

合規性報告的螢幕代碼段

在本指南中,您將使用 Azure 原則,根據適用於 Linux 的 Azure 安全性基準稽核測試虛擬機器 (VM)。

具體來說,您將:

  1. 建立空白 資源群組
  2. 將稽核 原則 指派給空的資源群組
  3. 在資源群組中建立 VM,並觀察稽核結果

提示

先決條件

在嘗試本文中的步驟之前:

  1. 您將需要 Azure 帳戶來建立資源群組、原則指派和虛擬機器。 如果您沒有 Azure 帳戶,您可以 建立免費試用

  2. 選擇存取 Azure 環境的方式,例如:

    1. EASY:Azure Cloud Shell 位於 https://shell.azure.com
    2. :使用您自己的工作站和殼層環境,並安裝並登入 Azure CLI
    3. :使用 Azure 入口網站 https://portal.azure.com
  3. 請確定您已登入所需的 Azure 測試環境

    您可以使用 az account show 來查看目前的內容。 若要登入或變更內容,請使用 az account login


步驟 1:建立資源群組

提示

使用「美國東部」(eastus)作為本文中範例位置是任意的。 您可以選擇任何可用的 Azure 位置。

az group create --name my-demo-rg --location eastus

步驟 2:將原則指派給空的測試資源群組

# Note this example is from a bash shell. Other shells may require different handling of special characters and variables
RG_ID=$(az group show --resource-group my-demo-rg --query id --output tsv)
az policy assignment create --policy "fc9b3da7-8347-4380-8e70-0a0361d8dedd" --display-name "Linux machines should meet requirements for the Azure compute security baseline" --scope "$RG_ID"

步驟 3:建立測試 VM 並準備機器設定

  1. 建立具有系統指派身分識別的Linux VM

    az vm create --name my-demo-vm-01 --resource-group my-demo-rg --image Ubuntu2204 --assign-identity [system] --size Standard_B2s
    

    提示

    通常會收到類似 「尚未提供存取權...」的警示,。 Azure 機器組態只需要電腦 受控識別,而不是任何特定的資源存取權。

  2. 安裝計算機設定代理程式,作為 Azure VM 擴充功能

    az vm extension set --resource-group my-demo-rg --vm-name my-demo-vm-01 --name ConfigurationForLinux --publisher Microsoft.GuestConfiguration --enable-auto-upgrade
    

提示

本指南中手動執行受控識別和機器設定擴充功能步驟,以減少等候和減少內容變更。 大規模而言,可以使用部署 必要條件來在虛擬機器內建原則計劃上啟用客體組態原則 來滿足這些需求。

第 4 步:繼續前休息一下

現在會自動執行數個步驟。 這些步驟可能需要幾分鐘的時間。 因此,請至少等候 15 分鐘,然後再繼續進行。

第 5 步:觀察結果

下列範例示範如何取得:

  1. 依合規性狀態計算的計算機計數(適用於生產規模,您可能會有數千部機器)
  2. 每個機器的合規性狀態清單
  3. 具有合規性狀態和辨識項的基準規則詳細清單(也稱為 原因

提示

預期會看到紅色 不符合規範的 結果如下。 僅限稽核的使用案例是探索現有系統與 Azure 安全性基準之間的差異。

下列 Azure CLI 範例來自 bash 環境。 若要使用另一個殼層環境,您可能需要調整行尾行為、引號規則、字元逸出等範例。

  1. 依合規性狀態的電腦計數:

    QUERY='
    // Returns one record per observed compliance status bucket, with machine counts for each
    guestconfigurationresources
    | where name contains "AzureLinuxBaseline"
    | extend ["> ComplianceStatus"] = tostring(properties.complianceStatus)
    | summarize MachineCount = count() by ["> ComplianceStatus"]'
    az graph query --graph-query "$QUERY" --query data --output yamlc
    
  2. 每個機器的合規性狀態清單:

    QUERY='
    // returns one record per machine, with status
    guestconfigurationresources
    | where name contains "AzureLinuxBaseline"
    | project ["> Machine"] = split(properties.targetResourceId,"/")[-1],
      ComplianceStatus = properties.complianceStatus,
      LastComplianceCheck = properties.lastComplianceStatusChecked'
    az graph query --graph-query "$QUERY" --query data --output yamlc
    
  3. 每個基準規則的詳細清單,其中包含合規性狀態和辨識項(也稱為 原因):

    QUERY='
    // Returns one record per baseline rule (around 200 per machine) with status for each
    GuestConfigurationResources
    | where name contains "AzureLinuxBaseline"
    | project Report = properties.latestAssignmentReport,
      Machine = split(properties.targetResourceId,"/")[-1],
      LastComplianceCheck=properties.lastComplianceStatusChecked
    | mv-expand Report.resources
    | project ["> Machine"] = Machine,
      ["> Rule"] = Report_resources.resourceId,
      RuleComplianceStatus = Report_resources.complianceStatus,
      RuleComplianceReason = Report_resources.reasons[0].phrase,
      LastComplianceCheck'
    
    az graph query --graph-query "$QUERY" --query data --output yamlc
    

包含該視頻是為了給人一種工作流程的整體感覺。 如需查詢詳細資料,請參閱本文中的文字。

選擇性:新增更多測試機器以體驗調整規模

在本文中,原則已指派給資源群組,該群組一開始是空的,然後取得一個 VM。 雖然這示範了系統端對端運作,但它無法提供具有機器清單等的大規模作業感。

請考慮手動或透過自動化,將更多測試機器新增至資源群組。 這些機器可以是 Azure VM 或已啟用 Arc 的機器。 當您看到這些機器符合規範(或甚至失敗)時,您可以更敏銳地大規模運作 Azure 安全性基準。

清除資源

若要避免持續產生費用,請考慮刪除本文中使用的資源群組。 例如,Azure CLI 命令會 az group delete --name "my-demo-rg"