Partilhar via


Guia de início rápido: auditar a linha de base de segurança do Azure para Linux com uma máquina de teste

Trecho de tela do relatório de conformidade

Neste guia, você usará a Política do Azure para auditar uma máquina virtual (VM) de teste em relação à linha de base de segurança do Azure para Linux.

Especificamente, irá:

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

Dica

Pré-requisitos

Antes de tentar as etapas neste artigo:

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

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

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

    • da CLI do Azure
    • do portal do Azure

    Você pode usar az account show para ver seu contexto atual. Para iniciar sessão ou alterar contextos, utilize az account login.


Etapa 1: Criar um grupo de recursos

Dica

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

  • da CLI do Azure
  • do portal do Azure
az group create --name my-demo-rg --location eastus

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

  • da CLI do Azure
  • do portal do Azure
# 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 da Máquina

  • da CLI do Azure
  • do portal do Azure
  1. Criar uma VM Linux com uma identidade atribuída ao sistema

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

    Dica

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

  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
    

Dica

As etapas de extensão de identidade gerenciada e Configuração da Máquina foram executadas manualmente neste guia para reduzir a espera e as alterações de contexto. Em escala, eles podem ser satisfeitos usando a iniciativa de política interna Implantar pré-requisitos para habilitar políticas de Configuração de Convidado em máquinas virtuais .

Passo 4: Faça uma pausa antes de prosseguir

Várias etapas agora acontecerão automaticamente. Cada um destes passos pode demorar alguns minutos. Por conseguinte, aguarde pelo menos 15 minutos antes de prosseguir.

Passo 5: Observar os resultados

Os exemplos a seguir mostram como obter:

  1. Contagem de máquinas por estado de conformidade (útil em escalas de produção, onde você pode ter milhares de máquinas)
  2. Lista de máquinas com estado de conformidade para cada
  3. Lista detalhada das regras de base com o estado de conformidade e as provas (também conhecidas como Reasons) para cada uma delas

Dica

Espere ver resultados de vermelhos não compatíveis nos seguintes resultados. O caso de uso somente auditoria é sobre descobrir a diferença entre os sistemas existentes e a linha de base de segurança do Azure.

  • da CLI do Azure
  • do portal do Azure

Os exemplos de CLI do Azure a seguir são de um ambiente de bash . Para usar outro ambiente de shell, talvez seja necessário ajustar exemplos para comportamento de terminação de linha, regras de aspas, fuga de caracteres e assim por diante.

  1. Contagem de máquinas 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 máquinas com estado de conformidade para cada uma:

    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 das regras de base com o estado de conformidade e as provas (também conhecidas como Reasons) para cada uma delas:

    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 ideia geral do fluxo de trabalho. Para obter detalhes da consulta, confie no texto deste artigo.

Opcional: adicione mais máquinas de teste para experimentar a escala

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

Considere adicionar mais máquinas de teste ao grupo de recursos, seja manualmente ou por meio de automação. Essas máquinas podem ser VMs do Azure ou máquinas habilitadas para Arc. À medida que você vê essas máquinas entrarem em conformidade (ou até mesmo falharem), você pode obter uma noção mais apurada de operacionalização da linha de base de segurança do Azure em escala.

Limpar recursos

Para evitar cobranças contínuas, 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".