Compartilhar via


Início Rápido: Auditar a linha de base de segurança do Azure para Linux com um computador de teste

trecho de tela do relatório de conformidade

Neste guia, você usará o Azure Policy para auditar uma VM (Máquina Virtual) de teste em relação à linha de base de segurança do Azure para Linux.

Especificamente, você vai:

  1. Criar um grupo de recursos de vazio
  2. Atribuir a política de auditoria ao grupo de recursos vazio
  3. Criar uma VM no grupo de recursos e observar os resultados da auditoria

Ponta

Pré-requisitos

Antes de tentar as etapas deste artigo:

  1. Você precisará de uma conta do Azure para criar um grupo de recursos, uma atribuição de política e uma máquina virtual. Se você não tiver uma conta do Azure, poderá criar uma avaliação gratuita.

  2. Escolha como você acessará seu ambiente do Azure, por exemplo:

    1. FÁCIL: Azure Cloud Shell em https://shell.azure.com
    2. OU: use sua própria estação de trabalho e ambiente de shell com a CLI do Azure instalada e conectada
    3. OU: use o portal do Azure em https://portal.azure.com
  3. Verifique se você está conectado ao ambiente de teste do Azure desejado

    Você pode usar az account show para ver o contexto atual. Para entrar ou alterar contextos, use az account login.


Etapa 1: Criar um grupo de recursos

Ponta

O uso de "Leste dos EUA" (eastus) como um local de exemplo ao longo deste artigo é arbitrário. Você pode escolher qualquer local disponível do Azure.

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

Etapa 2: Atribuir a política ao grupo de recursos de teste vazio

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

Etapa 3: Criar uma VM de teste e prepará-la para a Configuração do Computador

  1. Criar uma VM do Linux com uma identidade atribuída pelo sistema

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

    Ponta

    É normal receber um alerta semelhante ao "Nenhum acesso foi dado ainda...". A Configuração de Máquina do Azure requer apenas que o computador tenha uma identidade gerenciada, não qualquer acesso específico a recursos.

  2. Instalar o agente de Configuração de Máquina, como uma extensão de VM do Azure

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

Ponta

As etapas de extensão de configuração de máquina e identidade gerenciada foram executadas manualmente neste guia para reduzir a espera e reduzir as alterações de contexto. Em escala, eles podem ser atendidos usando os pré-requisitos de implantação para habilitar políticas de configuração de convidado na iniciativa de política interna de máquinas virtuais.

Passo 4: Faça uma pausa antes de prosseguir

Várias etapas agora ocorrerão automaticamente. Cada uma dessas etapas pode levar alguns minutos. Portanto, aguarde pelo menos 15 minutos antes de prosseguir.

Etapa 5: observe os resultados

Os exemplos a seguir mostram como obter:

  1. Contagem de computadores por estado de conformidade (útil em escalas de produção, em que você pode ter milhares de computadores)
  2. Lista de computadores com estado de conformidade para cada
  3. Lista detalhada de regras de linha de base com estado de conformidade e evidência (também conhecida como Razões) para cada

Ponta

Espere ver vermelho não compatível resultados no seguinte. O caso de uso somente auditoria é sobre a descoberta da diferença entre os sistemas existentes e a linha de base de segurança do Azure.

Os exemplos da CLI do Azure a seguir são de um ambiente de de bash. Para usar outro ambiente de shell, talvez seja necessário ajustar exemplos de comportamento de término de linha, regras de aspas, escape de caracteres e assim por diante.

  1. Contagem de computadores por estado de conformidade:

    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 de computadores com estado de conformidade para cada um:

    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. Lista detalhada de regras de linha de base com estado de conformidade e evidência (também conhecida como Razões) para cada um:

    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
    

O vídeo está incluído para dar uma noção geral do fluxo de trabalho. Para obter detalhes da consulta, confie no texto deste artigo.

Opcional: adicionar mais computadores de teste para experimentar a escala

Neste artigo, a política foi atribuída a um grupo de recursos que inicialmente estava vazio e ganhou uma VM. Embora isso demonstre que o sistema funciona de ponta a ponta, não fornece uma sensação de operações em escala com listas de máquinas e assim por diante.

Considere adicionar mais computadores de teste ao grupo de recursos, seja manualmente ou por meio da automação. Esses computadores podem ser VMs do Azure ou computadores habilitados para Arc. Ao ver que esses computadores entram em conformidade (ou até mesmo falham), você pode obter uma noção mais profunda de operacionalização da linha de base de segurança do Azure em escala.

Limpar recursos

Para evitar encargos contínuos, considere excluir o grupo de recursos usado neste artigo. Por exemplo, o comando da CLI do Azure seria az group delete --name "my-demo-rg".