Udostępnij przez


Szybki start: przeprowadzanie inspekcji punktu odniesienia zabezpieczeń platformy Azure dla systemu Linux przy użyciu maszyny testowej

Zrzut ekranu przedstawiający raportu zgodności

W tym przewodniku użyjesz Azure Policy do przeprowadzenia inspekcji testowej maszyny wirtualnej względem punktu odniesienia zabezpieczeń platformy Azure dla systemu Linux.

W szczególności:

  1. Tworzenie pustej grupy zasobów
  2. Przypisywanie zasad inspekcji do pustej grupy zasobów
  3. Tworzenie maszyny wirtualnej w grupie zasobów i obserwowanie wyników inspekcji

Napiwek

Warunki wstępne

Przed wykonaniem czynności opisanych w tym artykule:

  1. Do utworzenia grupy zasobów, przypisania zasad i maszyny wirtualnej potrzebne będzie konto platformy Azure. Jeśli nie masz konta platformy Azure, możesz utworzyć bezpłatną wersję próbną.

  2. Wybierz sposób uzyskiwania dostępu do środowiska platformy Azure, na przykład:

    1. EASY: Azure Cloud Shell pod adresem https://shell.azure.com
    2. OR: Użyj własnej stacji roboczej i środowiska powłoki z zainstalowanym i zalogowanym interfejsem wiersza polecenia platformy Azure
    3. OR: Użyj Azure Portal pod adresem https://portal.azure.com
  3. Upewnij się, że zalogowano się do żądanego środowiska testowego platformy Azure

    Możesz użyć az account show, aby wyświetlić bieżący kontekst. Aby zalogować się lub zmienić konteksty, użyj az account login.


Krok 1: Tworzenie grupy zasobów

Napiwek

Użycie "Wschodnie stany USA" (eastus) jako przykładowej lokalizacji w tym artykule jest dowolne. Możesz wybrać dowolną dostępną lokalizację platformy Azure.

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

Krok 2: Przypisz zasady do pustej testowej grupy zasobów

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

Krok 3: Utwórz testową maszynę wirtualną i przygotuj ją do konfiguracji maszyny

  1. Tworzenie maszyny wirtualnej z systemem Linux z tożsamością przypisaną przez system

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

    Napiwek

    Zwykle otrzymujesz alert podobny do "Nie podano jeszcze dostępu...". Usługa Azure Machine Configuration wymaga tylko, aby maszyny tożsamości zarządzanej, a nie żadnego określonego dostępu do zasobów.

  2. Instalowanie agenta konfiguracji maszyny jako rozszerzenia maszyny wirtualnej platformy Azure

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

Napiwek

Kroki tożsamości zarządzanej i rozszerzenia konfiguracji maszyny zostały wykonane ręcznie w tym przewodniku, aby zmniejszyć oczekiwanie i zmniejszyć zmiany kontekstu. Na dużą skalę można je spełnić przy użyciu wymagań wstępnych dotyczących wdrażania w celu włączenia zasad konfiguracji gościa na maszynach wirtualnych z wbudowaną inicjatywą zasad.

Krok 4: Zrób sobie przerwę, zanim przejdziesz dalej

Teraz nastąpi automatyczne wykonanie kilku kroków. Każde z tych kroków może potrwać kilka minut. W związku z tym przed kontynuowaniem zaczekaj na co najmniej 15 minut.

Krok 5: Obserwuj wyniki

W poniższych przykładach pokazano, jak uzyskać:

  1. Liczba maszyn według stanu zgodności (przydatna w skali produkcyjnej, gdzie mogą istnieć tysiące maszyn)
  2. Lista maszyn ze stanem zgodności dla każdego
  3. Szczegółowa lista reguł punktu odniesienia ze stanem zgodności i dowodami (znanymi również jako Przyczyny) dla każdego z nich

Napiwek

Oczekiwano, że czerwone wyniki są niezgodne. Przypadek użycia tylko do inspekcji dotyczy odnajdywania różnicy między istniejącymi systemami a punktem odniesienia zabezpieczeń platformy Azure.

Poniższe przykłady interfejsu wiersza polecenia platformy Azure pochodzą ze środowiska powłoki bash . Aby użyć innego środowiska powłoki, może być konieczne dostosowanie przykładów zachowania zakończenia wiersza, reguł cudzysłowu, ucieczki znaków itd.

  1. Liczba maszyn według stanu zgodności:

    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. Lista maszyn ze stanem zgodności dla każdego z nich:

    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. Szczegółowa lista reguł odniesienia ze stanem zgodności i dowodami (znanymi również jako Reasons) dla każdego z nich:

    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
    

Film jest dołączony, aby dać ogólne poczucie przepływu pracy. Aby uzyskać szczegółowe informacje o zapytaniu, skorzystaj z tekstu w tym artykule.

Opcjonalnie: Dodawanie większej liczby maszyn testowych do skalowania

W tym artykule zasady zostały przypisane do grupy zasobów, która początkowo była pusta, a następnie zyskała jedną maszynę wirtualną. Chociaż pokazuje to, że system działa od początku do końca, nie zapewnia poczucia operacji na dużą skalę z listami maszyn i tak dalej.

Rozważ dodanie większej liczby maszyn testowych do grupy zasobów, niezależnie od tego, czy jest to ręczne, czy za pośrednictwem automatyzacji. Te maszyny mogą być maszynami wirtualnymi platformy Azure lub maszynami z obsługą usługi Arc. Jak widzisz, że te maszyny są zgodne (a nawet kończą się niepowodzeniem), możesz uzyskać bardziej chętny wgląd w operacjonalizacja punktu odniesienia zabezpieczeń platformy Azure na dużą skalę.

Czyszczenie zasobów

Aby uniknąć bieżących opłat, rozważ usunięcie grupy zasobów używanej w tym artykule. Na przykład polecenie interfejsu wiersza polecenia platformy Azure będzie az group delete --name "my-demo-rg".