Freigeben über


Schnellstart: Überwachen der Azure-Sicherheitsgrundwerte für Linux mit einem Testcomputer

Bildschirmausschnitt des Complianceberichts

In diesem Leitfaden verwenden Sie Azure Policy, um einen virtuellen Testcomputer (VM) anhand der Azure-Sicherheitsbaseline für Linux zu überwachen.

Insbesondere werden Sie Folgendes ausführen:

  1. Erstellen einer leeren Ressourcengruppe
  2. Zuweisen der Überwachungsrichtlinie zu der leeren Ressourcengruppe
  3. Erstellen einer VM- in der Ressourcengruppe und Beobachten der Überwachungsergebnisse

Trinkgeld

Voraussetzungen

Bevor Sie die Schritte in diesem Artikel ausführen:

  1. Sie benötigen ein Azure-Konto, um eine Ressourcengruppe, eine Richtlinienzuweisung und einen virtuellen Computer zu erstellen. Wenn Sie nicht über ein Azure-Konto verfügen, können Sie eine kostenlose Testversionerstellen.

  2. Wählen Sie aus, wie Sie auf Ihre Azure-Umgebung zugreifen möchten, z. B.:

    1. EASY: Azure Cloud Shell bei https://shell.azure.com
    2. ODER: Verwenden Sie Ihre eigene Arbeitsstations- und Shellumgebung, in der die Azure CLI installiert und angemeldet ist
    3. ODER: Verwenden Sie das Azure-Portal unter https://portal.azure.com
  3. Stellen Sie sicher, dass Sie bei der gewünschten Azure-Testumgebung angemeldet sind.

    Sie können az account show verwenden, um Ihren aktuellen Kontext anzuzeigen. Verwenden Sie az account login, um sich anzumelden oder Kontexte zu ändern.


Schritt 1: Erstellen einer Ressourcengruppe

Trinkgeld

Die Verwendung von "East US" (eastus) als Beispielspeicherort in diesem Artikel ist willkürlich. Sie können einen beliebigen verfügbaren Azure-Speicherort auswählen.

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

Schritt 2: Zuweisen der Richtlinie zu Ihrer leeren Testressourcengruppe

# 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"

Schritt 3: Erstellen einer Test-VM und Vorbereiten der VM für die Maschinenkonfiguration

  1. Erstellen einer Linux-VM mit einer system zugewiesenen Identität

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

    Trinkgeld

    Es ist normal, eine Warnung zu erhalten, die "Es wurde noch kein Zugriff gewährt...". Die Azure-Computerkonfiguration erfordert nur, dass der Computer eine verwaltete Identität, nicht über einen bestimmten Ressourcenzugriff verfügen.

  2. Installieren des Computerkonfigurations-Agents als Azure VM-Erweiterung

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

Trinkgeld

In diesem Handbuch wurden die Schritte für verwaltete Identitäts- und Computerkonfigurationserweiterungen manuell ausgeführt, um das Warten zu reduzieren und Kontextänderungen zu reduzieren. Im großen Stil können diese mit der integrierten Richtlinieninitiative Bereitstellen der Voraussetzungen zum Aktivieren von Gastkonfigurationsrichtlinien auf virtuellen Computern erfüllt werden.

Schritt 4: Machen Sie eine Pause, bevor Sie fortfahren

Mehrere Schritte werden jetzt automatisch ausgeführt. Jeder dieser Schritte kann einige Minuten dauern. Bitte warten Sie daher mindestens 15 Minuten, bevor Sie fortfahren.

Schritt 5: Ergebnisse beobachten

Die folgenden Beispiele zeigen, wie Sie folgendes abrufen:

  1. Anzahl der Computer nach Compliancestatus (nützlich bei Produktionsmaßstaben, wo Sie möglicherweise Tausende von Computern haben)
  2. Liste der Computer mit dem Konformitätsstatus für die einzelnen Computer
  3. Detaillierte Liste der Basisregeln mit Konformitätsstatus und Nachweisen (auch bekannt als Gründe) für jede

Trinkgeld

Erwarten Sie, dass rote nicht konformen Ergebnisse in den folgenden Ergebnissen angezeigt werden. Der Reinüberwachungsanwendungsfall geht es darum, den Unterschied zwischen vorhandenen Systemen und der Azure-Sicherheitsbasislinie zu ermitteln.

Die folgenden Azure CLI-Beispiele stammen aus einer bash Umgebung. Wenn Sie eine andere Shellumgebung verwenden möchten, müssen Sie möglicherweise Beispiele für das Zeilenendeverhalten, Anführungszeichenregeln, Escapezeichen usw. anpassen.

  1. Anzahl der Computer nach Compliancestatus:

    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. Liste der Computer mit Konformitätsstatus für jede:

    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. Detaillierte Liste der Basisregeln mit Konformitätsstatus und Nachweisen (auch bekannt als Gründe) für jede:

    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
    

Das Video ist enthalten, um einen Überblick über den Arbeitsablauf zu vermitteln. Weitere Informationen zu Abfragen finden Sie im Text in diesem Artikel.

Optional: Hinzufügen weiterer Testcomputer zur Skalierung der Oberfläche

In diesem Artikel wurde die Richtlinie einer Ressourcengruppe zugewiesen, die anfangs leer war und dann eine VM erhielt. Dies zeigt zwar, dass das System durchgängig funktioniert, vermittelt jedoch nicht das Gefühl von skalierbaren Vorgängen mit Listen von Computern usw.

Erwägen Sie das Hinzufügen weiterer Testcomputer zur Ressourcengruppe, unabhängig davon, ob manuell oder über automatisierung. Diese Computer können Azure-VMs oder Arc-fähige Computer sein. Wenn Sie sehen, dass diese Computer in Die Compliance kommen (oder sogar fehlschlagen), können Sie ein starkes Gefühl für die Operationalisierung von Azure-Sicherheitsgrundwerten im Großen und Umfang gewinnen.

Bereinigen von Ressourcen

Um laufende Gebühren zu vermeiden, sollten Sie die in diesem Artikel verwendete Ressourcengruppe löschen. Der Azure CLI-Befehl wäre z. B. az group delete --name "my-demo-rg".