Gerenciar a conformidade da máquina virtual

Azure Policy

Este artigo descreve como gerenciar a conformidade da máquina virtual sem prejudicar as práticas de DevOps. Use o Construtor de Imagens de VM do Azure e a Galeria de Computação do Azure para minimizar o risco de imagens do sistema.

Arquitetura

A solução é composta por dois projetos:

  • Processo de publicação de imagens douradas
  • O processo de controle de conformidade da máquina virtual (VM)

Architecture diagram showing how the solution manages Azure Marketplace images. Illustrated steps include customization, tracking, testing, and publishing.

Baixe um Arquivo Visio dessa arquitetura.

Fluxo de dados

O processo de publicação de imagens douradas é executado mensalmente e contém estas etapas:

  1. Processo captura uma imagem base do Azure Marketplace.
  2. O Construtor de Imagens de VM personaliza a imagem.
  3. O processo de retografia de imagem rastreia informações sobre versões da imagem, como data de origem e publicação.
  4. Testes automatizados validam a imagem.
  5. Se a imagem falhar em qualquer um dos testes, retornará à etapa de personalização para reparos.
  6. O processo publica a imagem finalizada.
  7. A Galeria de Computação disponibiliza a imagem para equipes de DevOps.

Architecture diagram showing how the solution manages compliance by assigning policy definitions, evaluating machines, and displaying data in a dashboard.

Baixe um Arquivo Visio dessa arquitetura.

O processo de acompanhamento da conformidade da VM contém estas etapas:

  1. O Azure Policy atribui definições de política a VMs e avalia essas VMs quanto à conformidade.
  2. O Azure Policy publica dados de conformidade para as VMs e outros recursos do Azure no painel do Azure Policy.

Componentes

  • O Construtor de Imagens de VM é um serviço gerenciado para personalizar imagens do sistema. Esse serviço cria e distribui as imagens que as equipes de DevOps usam.

  • A Galeria de Computação ajuda a estruturar e organizar imagens personalizadas. Armazenando imagens em repositórios, esse serviço fornece acesso controlado a essas imagens. Os usuários podem estar dentro e fora da sua organização.

  • O Azure Policy oferece definições de política. Elas podem ser usadas para impor os padrões da sua organização e avaliar a conformidade em escala. O painel do Azure Policy exibe os resultados de avaliações do Azure Policy. Esses dados o mantêm informado sobre o status de conformidade dos seus recursos.

  • O recurso Configuração de Máquina do Gerenciamento Automatizado do Azure do Azure Policy apresenta uma maneira dinâmica de auditar ou atribuir configurações a máquinas por meio de código. As configurações geralmente incluem configurações de ambiente ou de sistema operacional.

Alternativas

  • Você pode usar uma ferramenta de terceiros para gerenciar a conformidade. Porém, com esse tipo de ferramenta, geralmente é preciso precisa instalar um agente na VM de destino. Você também pode ter que pagar uma taxa de licenciamento.

  • É possível usar extensões de script personalizado para instalar software em VMs ou configurá-las após a implantação. Mas cada VM ou Conjunto de Dimensionamento de Máquinas Virtuais pode ter apenas uma extensão de script personalizada. Se você usar extensões de script personalizadas, impedirá que equipes de DevOps personalizem seus aplicativos.

Detalhes do cenário

Cada empresa tem padrões e regulamentos próprios de conformidade. Em relação à segurança, cada uma tem seu próprio apetite de risco. Os padrões de segurança podem diferir em cada organização e região.

Seguir padrões diferentes pode ser mais desafiador em ambientes de nuvem com escala dinâmica do que em sistemas locais. Quando as equipes usam práticas de DevOps, geralmente há menos restrições quanto a quem pode criar recursos do Azure, como VMs. Esse fato complica os desafios de conformidade.

Usando o Azure Policy e atribuições de controle de acesso baseadas em função, as empresas podem impor padrões em recursos do Azure. Com as VMs, esses mecanismos afetam apenas o plano de controle ou a rota para a VM. As imagens do sistema executadas em uma VM ainda representam uma ameaça de segurança. Algumas empresas impedem que desenvolvedores acessem VMs. Essa abordagem prejudica a agilidade, dificultando o acompanhamento práticas de DevOps.

Este artigo apresenta uma solução para gerenciar a conformidade das VMs executadas no Azure. Além de acompanhar a conformidade, a solução também minimiza o risco de imagens do sistema executadas em VMs. Ao mesmo tempo, ela é compatível com práticas de DevOps. Os principais componentes incluem o Construtor de Imagens de VM do Azure, a Galeria de Computação do Azure e o Azure Policy.

Possíveis casos de uso

Essa solução se aplica a organizações com zonas de destino do Azure que executam estas tarefas:

  • Fornecendo imagens douradas para equipes de DevOps. Uma imagem dourada é a versão publicada de uma imagem do marketplace.
  • Testando e validando imagens antes de disponibilizá-las para equipes de DevOps.
  • Rastreando qual imagem cada equipe de DevOps usa.
  • Impondo padrões da empresa sem degradar a produtividade.
  • Garantindo que as equipes de DevOps usem as versões mais recentes da imagem.
  • Gerenciando a conformidade de servidores “pet”, que recebem manutenção intensiva e servidores “gado”, facilmente substituíveis.

Abordagem

As seções a seguir descrevem detalhadamente a abordagem da solução.

Identificar “pets” e “gado”

As equipes de DevOps usam a analogia com “pets” e “gado” para definir modelos de serviço. Para rastrear a conformidade de uma VM, primeiro determine se ela é um servidor pet” ou “gado”:

  • Servidores “pet” exigem muita atenção. O trabalho com eles não é fácil. A recuperação de um servidor “pet” requer um investimento considerável de tempo e recursos financeiros. Por exemplo, um servidor que execute SAP pode ser do tipo “pet”. Além do software executado no servidor, outras considerações também podem determinar o modelo de serviço. Se você tiver baixa tolerância a falhas, os servidores de produção em sistemas em tempo real e quase em tempo real também poderão ser “pets”.

  • Servidores “gado” integram um grupo idêntico. Você pode substituí-los facilmente. Por exemplo, as VMs executadas em um Conjunto de Dimensionamento de Máquinas Virtuais são do tipo “gado”. Se houver VMs suficientes no conjunto, o sistema continuará em execução e você não precisa saber o nome de cada uma delas. Os servidores de ambiente de teste que cumprem as condições a seguir são outro exemplo de “gado”:

    • Use um procedimento automatizado para criar os servidores do zero.
    • Após concluir os testes, descomissione os servidores.

Um ambiente pode conter apenas servidores “pet” ou “gado”. Por outro lado, um conjunto de VMs em um ambiente pode ser “pet”. Um conjunto diferente de VMs nesse mesmo ambiente pode ser “gado”.

Para gerenciar a conformidade:

  • O acompanhamento da conformidade de servidores “pet” pode ser mais desafiador do que no caso de servidores “gado”. Normalmente, apenas equipes de DevOps podem rastrear e manter a conformidade de ambientes e servidores “pet”. Mas a solução proposta neste artigo aumenta a visibilidade do status de cada um deles, tornando mais fácil para todos na organização rastrear sua conformidade.
  • Para ambientes de servidores “gado”, atualize as VMs e recompile-as do zero regularmente. Essas etapas devem ser adequadas à conformidade. Você pode alinhar esse ciclo de atualização com a frequência regular de lançamento de versões por parte da equipe de DevOps.

Restringir imagens

Não permita que equipes de DevOps usem imagens de VM do Azure Marketplace. Permita apenas imagens de VM publicadas pela Galeria de Computação. Essa restrição é essencial para garantir a conformidade da VM. Você pode usar uma política personalizada no Azure Policy para impor essa restrição. Para ver um exemplo, consulte Permitir editores de imagem.

Como parte dessa solução, o Construtor de Imagens de VM deve usar uma imagem do Azure Marketplace. É essencial usar a imagem mais recente disponível no Azure Marketplace. Aplique todas as personalizações sobre essa imagem. As imagens do Azure Marketplace são atualizadas com frequência, cada uma delas com determinadas configurações predefinidas, garantindo que suas imagens sejam protegidas por padrão.

Personalizar imagens

Uma imagem dourada é a versão de uma imagem do marketplace publicada na Galeria de Computação. As imagens douradas estão disponíveis para consumo por equipes de DevOps. Antes que a imagem seja publicada, ocorre a personalização. As atividades de personalização são exclusivas de cada empresa. As atividades comuns incluem:

  • Proteção do sistema operacional.
  • Implantação de agentes personalizados para software de terceiros.
  • Instalação de certificados raiz da AC (autoridade de certificação) corporativa.

Você pode usar o Construtor de Imagens de VM para personalizar imagens ajustando configurações do sistema operacional e executando scripts e comandos personalizados. O Construtor de Imagens de VM oferece suporte a imagens Windows e Linux. Para obter mais informações sobre como personalizar imagens, consulte Controles de Conformidade Regulatória do Azure Policy para Máquinas Virtuais do Azure.

Rastrear retografias de imagens

A retografia de imagem é o processo de manter o controle de todas as informações de controle de versão de imagem que uma VM usa. Essas informações são valiosas durante a solução de problemas e podem incluir:

  • A origem da imagem, como nome e versão do editor.
  • A cadeia de caracteres de versão do sistema operacional, que será necessária se houver uma atualização em andamento.
  • A versão da sua imagem personalizada.
  • Sua data de publicação.

O volume e o tipo de informações que você acompanha depende do nível de conformidade da sua organização.

Para a retografia de imagem em VMs Windows, configure um registro personalizado. Adicione todas as informações necessárias a esse caminho do Registro como pares chave-valor. Em VMs do Linux, insira dados de retografia de imagem em variáveis de ambiente ou em um arquivo. Coloque o arquivo na pasta /etc/, na qual ele não entre em conflito com o trabalho do desenvolvedor ou os aplicativos. Se você quiser usar o Azure Policy para acompanhar dados de retografia ou elaborar relatórios sobre eles, armazene cada dado como um par chave-valor exclusivo. Para obter informações sobre como determinar a versão de uma imagem do Marketplace, consulte Como encontrar uma versão de imagem do Marketplace.

Validar imagens douradas com testes automatizados

Em geral, você deve atualizar imagens douradas mensalmente para manter-se em dia com as atualizações e alterações mais recentes das imagens do Azure Marketplace. Use um procedimento de teste recorrente para essa finalidade. Como parte do processo de criação de imagem, use um pipeline do Azure ou outro fluxo de trabalho automatizado para teste. Configure o pipeline para implantar uma nova VM para a execução de testes antes do início de cada mês. Os testes devem confirmar imagens emparelhadas antes de publicá-las para consumo. Automatize testes usando uma solução de automação de teste ou executando comandos ou lotes na VM.

Alguns cenários de teste comuns são:

  • Validação do tempo de inicialização da VM.
  • Confirmação de qualquer personalização da imagem, como definições de configuração do sistema operacional ou implantações de agente.

A falha em um teste deve interromper o processo. Repita o teste após eliminar a causa raiz do problema. Se os testes forem executados sem problemas, a automatização do processo de teste reduz o esforço de manutenção do estado de integridade.

Publicar imagens douradas

Publique as imagens finais na Galeria de Computação como imagem gerenciada ou VHD (disco rígido virtual) que as equipes de DevOps que as equipes possam usar. Marque todas as imagens anteriores como antigas. Se você ainda não definiu uma data de fim da vida útil para uma versão de imagem na Galeria de Computação, é aconselhável descontinuar a imagem mais antiga. Essa decisão depende das políticas da sua empresa.

Para obter informações sobre limites aplicáveis ao uso da Galeria de Computação, consulte Armazenar e compartilhar imagens em uma Galeria de Computação do Azure.

Também é recomendável publicar as imagens mais recentes em diferentes regiões. Com a Galeria de Computação, você pode gerenciar o ciclo de vida e replicação de suas imagens em diferentes regiões do Azure.

Para obter mais informações sobre a Galeria de Computação, consulte Armazenar e compartilhar imagens em uma Galeria de Computação do Azure.

Atualizar imagens douradas

Quando uma imagem é usada para um aplicativo, pode ser difícil atualizar a imagem do sistema operacional subjacente com as alterações de conformidade recentes. Requisitos de negócios rígidos podem complicar o processo de atualização da VM subjacente. A atualização também é complexa quando a VM é crítica para os negócios.

Como os servidores do tipo “gado” são dispensáveis, você pode coordenar ações com as equipes de DevOps para atualizá-los em uma janela de manutenção planejada como atividade comercial rotineira.

É mais desafiador atualizar servidores “pet”. Descontinuar uma imagem pode colocar aplicativos em risco. Em cenários de expansão, o Azure não consegue encontrar as respectivas imagens, o que resulta em falhas.

Considere estas diretrizes ao atualizar servidores “pet”:

Melhorar a visibilidade

Em geral, você deve usar o Azure Policy para gerenciar qualquer atividade de conformidade do plano de controle. Você também pode usar o Azure Policy para:

  • Acompanhar a conformidade da VM.
  • Instalar agentes do Azure.
  • Capturar logs de diagnóstico.
  • Aumentar a visibilidade da conformidade de VMs.

Use o recurso Configuração de Máquina do Gerenciamento Automatizado do Azure do Azure Policy para auditar as alterações na configuração feitas durante a personalização da imagem. Quando há descompasso, o painel do Azure Policy lista a VM afetada como não compatível. O Azure Policy pode usar informações de retografia de imagem para rastrear o uso de imagens ou sistemas operacionais desatualizados.

Audite servidores “pet” em cada aplicativo. Usando as Políticas do Azure com efeito de auditoria, você pode melhorar a visibilidade desses servidores. Ajuste o processo de auditoria segundo o apetite de risco e os processos internos de gerenciamento de riscos da sua empresa.

Cada equipe de DevOps pode acompanhar os níveis de conformidade dos seus aplicativos no painel do Azure Policy e adotar as ações corretivas corretas. Ao atribuir essas políticas a um grupo de gerenciamento ou uma assinatura, dê à descrição da atribuição uma URL que leve a um wiki de toda a empresa. Você também pode usar uma URL curta, como aka.ms/policy-21. No wiki, liste as etapas que as equipes de DevOps devem seguir para compatibilizar suas VMs.

Os gerentes de riscos e os gerentes de segurança de TI também podem usar o painel do Azure Policy para gerenciar riscos da empresa segundo o apetite de risco da empresa.

Usando o recurso Configuração de Máquina do Gerenciamento Automatizado do Azure do Azure Policy com opções de correção, você pode aplicar ações corretivas automaticamente. Mas interrogar ou alterar frequentemente uma VM usada para um aplicativo comercialmente crítico pode prejudicar o desempenho. Planeje cuidadosamente ações de correção para cargas de trabalho de produção. Atribua a uma equipe de DevOps a propriedade da conformidade de aplicativos em todos os ambientes. Essa abordagem é essencial para servidores e ambientes “pet”, que, em geral, são componentes de longo prazo do Azure.

Considerações

Essas considerações implementam os pilares do Azure Well-Architected Framework, que é um conjunto de princípios de orientação que podem ser usados para aprimorar a qualidade de uma carga de trabalho. Para obter mais informações, confira Microsoft Azure Well-Architected Framework.

Escalabilidade

Você pode configurar o número de réplicas de cada imagem armazenadas pela Galeria de cada imagem. Um número maior de réplicas minimiza o risco de uma limitação quando você provisiona várias VMs simultaneamente. Para obter diretrizes gerais sobre como dimensionar e configurar um número apropriado de réplicas, consulte Dimensionamento para a Galeria de Computação do Azure.

Resiliência

Essa solução usa componentes gerenciados automaticamente resilientes em nível regional. Para obter diretrizes gerais sobre como criar soluções resilientes, confira Projetando aplicativos resilientes para o Azure.

Otimização de custo

A otimização de custos é a análise de maneiras de reduzir as despesas desnecessárias e melhorar a eficiência operacional. Para obter mais informações, confira Visão geral do pilar de otimização de custo.

A menos que você use um serviço de terceiros, como o Ansible ou o Terraform, essa abordagem é quase gratuita. Podem ser aplicados custos de armazenamento e de saída. Outros encargos potenciais envolvem esses componentes:

  • O Azure Policy e a configuração de Máquina do Gerenciamento Automatizado do Azure são gratuitos para recursos do Azure. Se sua empresa usar uma abordagem híbrida, haverá encargos adicionais para recursos do Azure Arc.

  • Durante o período de visualização pública, o Construtor de Imagens de VM está usando um único tipo de instância de computação com 1 vCPU e 3,5 GB de RAM. Podem ser aplicados encargos ao armazenamento e à transferência de dados.

  • A Galeria de Computação não tem encargos, exceto:

    • O custo do armazenamento de réplicas.
    • Encargos de saída de rede para replicação de imagens.

Colaboradores

Esse artigo é mantido pela Microsoft. Ele foi originalmente escrito pelos colaboradores a seguir.

Autor principal:

Para ver perfis não públicos do LinkedIn, entre no LinkedIn.

Próximas etapas