Entender a Configuração de Convidado do Azure PolicyUnderstand Azure Policy's Guest Configuration

O Azure Policy pode auditar as configurações dentro de um computador, tanto para computadores em execução no Azure quanto em Computadores Conectados pelo Arc.Azure Policy can audit settings inside a machine, both for machines running in Azure and Arc Connected Machines. A validação é executada pela extensão e pelo cliente de Configuração de Convidado.The validation is performed by the Guest Configuration extension and client. A extensão, por meio do cliente, valida as configurações como:The extension, through the client, validates settings such as:

  • A configuração do sistema operacionalThe configuration of the operating system
  • Configuração ou presença do aplicativoApplication configuration or presence
  • Configurações do ambienteEnvironment settings

Neste momento, a maioria das definições de políticas de Configuração de Convidado do Azure Policy auditam somente as configurações dentro do computador.At this time, most Azure Policy Guest Configuration policy definitions only audit settings inside the machine. Elas não aplicam as configurações.They don't apply configurations. A exceção é uma política interna referenciada abaixo.The exception is one built-in policy referenced below.

Um passo a passo em vídeo sobre este documento está disponível.A video walk-through of this document is available.

Habilitar a Configuração de ConvidadoEnable Guest Configuration

Para auditar o estado dos computadores no seu ambiente, incluindo computadores no Azure e em Computadores Conectados pelo Arc, examine os detalhes a seguir.To audit the state of machines in your environment, including machines in Azure and Arc Connected Machines, review the following details.

Provedor de recursosResource provider

Antes de usar a Configuração de Convidado, você precisa registrar o provedor de recursos.Before you can use Guest Configuration, you must register the resource provider. Se a atribuição de uma política de Configuração de Convidado for feita por meio do portal ou se a assinatura estiver inscrita na Central de Segurança do Azure, o provedor de recursos será registrado automaticamente.If assignment of a Guest Configuration policy is done through the portal, or if the subscription is enrolled in Azure Security Center, the resource provider is registered automatically. Você pode registrar manualmente por meio do portal, do Azure PowerShell ou da CLI do Azure.You can manually register through the portal, Azure PowerShell, or Azure CLI.

Requisitos de implantação das máquinas virtuais do AzureDeploy requirements for Azure virtual machines

Para auditar as configurações de um computador, uma extensão de máquina virtual é habilitada e o computador precisa ter uma identidade gerenciada pelo sistema.To audit settings inside a machine, a virtual machine extension is enabled and the machine must have a system-managed identity. A extensão baixa a atribuição de política aplicável e a definição de configuração correspondente.The extension downloads applicable policy assignment and the corresponding configuration definition. A identidade é usada para autenticar o computador conforme ele lê e grava no serviço de Configuração de Convidado.The identity is used to authenticate the machine as it reads and writes to the Guest Configuration service. A extensão não é necessária para Computadores Conectados pelo Arc porque está incluída no agente do Computador Conectado pelo Arc.The extension isn't required for Arc Connected Machines because it's included in the Arc Connected Machine agent.

Importante

A extensão de Configuração de Convidado e uma identidade gerenciada são necessárias para auditar as máquinas virtuais do Azure.The Guest Configuration extension and a managed identity is required to audit Azure virtual machines. Para implantar a extensão em escala, atribua a seguinte iniciativa de política:To deploy the extension at scale, assign the following policy initiative:

Deploy prerequisites to enable Guest Configuration policies on virtual machines

Limites definidos na extensãoLimits set on the extension

Para limitar a extensão de afetar os aplicativos em execução dentro do computador, a configuração de convidado não tem permissão para exceder mais de 5% da CPU.To limit the extension from impacting applications running inside the machine, the Guest Configuration isn't allowed to exceed more than 5% of CPU. Essa limitação existe para as definições internas e personalizadas.This limitation exists for both built-in and custom definitions. O mesmo é verdadeiro para o serviço de Configuração de Convidado no agente do Computador Conectado pelo Arc.The same is true for the Guest Configuration service in Arc Connected Machine agent.

Ferramentas de validaçãoValidation tools

No computador, o cliente de Configuração de Convidado usa ferramentas locais para executar a auditoria.Inside the machine, the Guest Configuration client uses local tools to run the audit.

A tabela a seguir mostra uma lista das ferramentas locais usadas em cada sistema operacional com suporte.The following table shows a list of the local tools used on each supported operating system. Para conteúdo interno, a Configuração de Convidado gerencia o carregamento dessas ferramentas automaticamente.For built-in content, Guest Configuration handles loading these tools automatically.

Sistema operacionalOperating system Ferramenta de validaçãoValidation tool ObservaçõesNotes
WindowsWindows Desired State Configuration do PowerShell v2PowerShell Desired State Configuration v2 Transmitido por sideload a uma pasta usada apenas pelo Azure Policy.Side-loaded to a folder only used by Azure Policy. Não entra em conflito com a DSC do Windows PowerShell.Won't conflict with Windows PowerShell DSC. O PowerShell Core não é adicionado ao caminho do sistema.PowerShell Core isn't added to system path.
LinuxLinux Chef InSpecChef InSpec Instala o Chef InSpec versão 2.2.61 na localização padrão e adiciona-o ao caminho do sistema.Installs Chef InSpec version 2.2.61 in default location and added to system path. As dependências do pacote InSpec, incluindo Ruby e Python, também são instaladas.Dependencies for the InSpec package including Ruby and Python are installed as well.

Frequência de validaçãoValidation frequency

O cliente de Configuração de Convidado verifica se há atribuições de convidado novas ou alteradas a cada cinco minutos.The Guest Configuration client checks for new or changed guest assignments every 5 minutes. Depois que uma atribuição de convidado for recebida, as definições para essa configuração serão verificadas repetidamente em um intervalo de 15 minutos.Once a guest assignment is received, the settings for that configuration are rechecked on a 15-minute interval. Os resultados são enviados ao provedor de recursos de configuração do convidado quando a auditoria é concluída.Results are sent to the Guest Configuration resource provider when the audit completes. Quando ocorre um gatilho de avaliação de política, o estado do computador é gravado no provedor de recursos de Configuração do Convidado.When a policy evaluation trigger occurs, the state of the machine is written to the Guest Configuration resource provider. Essa atualização faz com que o Azure Policy avalie as propriedades do Azure Resource Manager.This update causes Azure Policy to evaluate the Azure Resource Manager properties. Uma avaliação do Azure Policy sob demanda recupera o valor mais recente do provedor de recursos de Configuração do Convidado.An on-demand Azure Policy evaluation retrieves the latest value from the Guest Configuration resource provider. No entanto, ela não dispara uma nova auditoria da configuração dentro do computador.However, it doesn't trigger a new audit of the configuration within the machine. O status é gravado simultaneamente no Azure Resource Graph.The status is simultaneously written to Azure Resource Graph.

Tipos de clientes com suporteSupported client types

As definições de políticas de Configuração de Convidado incluem novas versões.Guest Configuration policy definitions are inclusive of new versions. As versões mais antigas dos sistemas operacionais disponíveis no Azure Marketplace serão excluídas se o cliente de Configuração de Convidado não for compatível.Older versions of operating systems available in Azure Marketplace are excluded if the Guest Configuration client isn't compatible. A tabela a seguir mostra uma lista de sistemas operacionais compatíveis em imagens do Azure:The following table shows a list of supported operating systems on Azure images:

PublicadorPublisher NomeName VersõesVersions
CanônicoCanonical Ubuntu ServerUbuntu Server 14.04 a 20.0414.04 - 20.04
CredativCredativ DebianDebian 8 a 108 - 10
MicrosoftMicrosoft Windows ServerWindows Server 2012 a 20192012 - 2019
MicrosoftMicrosoft Windows ClientWindows Client Windows 10Windows 10
OpenLogicOpenLogic CentOSCentOS 7.3 a 87.3 -8
Red HatRed Hat Red Hat Enterprise LinuxRed Hat Enterprise Linux 7.4 a 87.4 - 8
SuseSuse SLESSLES 12 SP3 a SP5, 1512 SP3-SP5, 15

As imagens de máquina virtual personalizadas são compatíveis com as definições de políticas de Configuração de Convidado, desde que elas usem um dos sistemas operacionais na tabela acima.Custom virtual machine images are supported by Guest Configuration policy definitions as long as they're one of the operating systems in the table above.

Requisitos de redeNetwork requirements

As máquinas virtuais no Azure podem usar o adaptador de rede local ou um link privado para se comunicarem com o serviço de Configuração de Convidado.Virtual machines in Azure can use either their local network adapter or a private link to communicate with the Guest Configuration service.

Os computadores do Azure Arc se conectam usando a infraestrutura de rede local para acessar os serviços do Azure e relatar o status de conformidade.Azure Arc machines connect using the on-premises network infrastructure to reach Azure services and report compliance status.

Comunicação por meio de redes virtuais no AzureCommunicate over virtual networks in Azure

As máquinas virtuais que usam redes virtuais para comunicação exigirão acesso de saída aos datacenters do Azure na porta 443.Virtual machines using virtual networks for communication will require outbound access to Azure datacenters on port 443. Se você estiver usando uma rede virtual privada no Azure que não permite tráfego de saída, configure exceções com as regras do Grupo de Segurança de Rede.If you're using a private virtual network in Azure that doesn't allow outbound traffic, configure exceptions with Network Security Group rules. A tag de serviço "GuestAndHybridManagement" pode ser usada para fazer referência ao serviço de Configuração de Convidado.The service tag "GuestAndHybridManagement" can be used to reference the Guest Configuration service.

As máquinas virtuais podem usar o link privado para comunicação com o serviço de Configuração de Convidado.Virtual machines can use private link for communication to the Guest Configuration service. Aplique a marca com o nome EnablePrivateNeworkGC (sem "t" em Network) e o valor TRUE para habilitar esse recurso.Apply tag with the name EnablePrivateNeworkGC (with no "t" in Network) and value TRUE to enable this feature. A marca pode ser aplicada antes ou após as definições de política de Configuração de Convidado serem aplicadas ao computador.The tag can be applied before or after Guest Configuration policy definitions are applied to the machine.

O tráfego é roteado usando o endereço IP público virtual do Azure para estabelecer um canal seguro e autenticado com os recursos da plataforma do Azure.Traffic is routed using the Azure virtual public IP address to establish a secure, authenticated channel with Azure platform resources.

Computadores conectados pelo Azure ArcAzure Arc connected machines

Os nós localizados fora do Azure que são conectados pelo Azure Arc exigem conectividade com o serviço de Configuração de Convidado.Nodes located outside Azure that are connected by Azure Arc require connectivity to the Guest Configuration service. Detalhes sobre os requisitos de rede e proxy fornecidos na documentação do Azure Arc.Details about network and proxy requirements provided in the Azure Arc documentation.

Para se comunicar com o provedor de recursos de Configuração de Convidado no Azure, as máquinas virtuais exigem acesso de saída aos datacenters do Azure na porta 443.To communicate with the Guest Configuration resource provider in Azure, machines require outbound access to Azure datacenters on port 443. Se uma rede no Azure não permitir tráfego de saída, configure exceções com regras de grupo de segurança de rede.If a network in Azure doesn't allow outbound traffic, configure exceptions with Network Security Group rules. A tag de serviço "GuestAndHybridManagement" pode ser usada para fazer referência ao serviço de Configuração de Convidado.The service tag "GuestAndHybridManagement" can be used to reference the Guest Configuration service.

Para servidores conectados pelo Arc em data centers privados, permita o tráfego usando os seguintes padrões:For Arc connected servers in private datacenters, allow traffic using the following patterns:

  • Porta: Somente a TCP 443 é necessária para acesso à Internet de saídaPort: Only TCP 443 required for outbound internet access
  • URL global: *.guestconfiguration.azure.comGlobal URL: *.guestconfiguration.azure.com

Requisitos de identidade gerenciadaManaged identity requirements

As definições de política na iniciativa Implantar pré-requisitos para habilitar políticas de Configuração de Convidado em máquinas virtuais habilitam uma identidade gerenciada atribuída pelo sistema, caso não exista uma.Policy definitions in the initiative Deploy prerequisites to enable Guest Configuration policies on virtual machines enable a system-assigned managed identity, if one doesn't exist. Há duas definições de política na iniciativa que gerenciam a criação de identidade.There are two policy definitions in the initiative that manage identity creation. As condições IF nas definições de política garantem o comportamento correto com base no estado atual do recurso de computador no Azure.The IF conditions in the policy definitions ensure the correct behavior based on the current state of the machine resource in Azure.

Se o computador não tiver nenhuma identidade gerenciada no momento, a política efetiva será: Adicionar identidade gerenciada atribuída pelo sistema para habilitar atribuições de Configuração de Convidado em máquinas virtuais sem identidadesIf the machine doesn't currently have any managed identities, the effective policy will be: Add system-assigned managed identity to enable Guest Configuration assignments on virtual machines with no identities

Se o computador tiver atualmente uma identidade de sistema atribuída pelo usuário, a política efetiva será: Adicionar identidade gerenciada atribuída pelo sistema para habilitar atribuições de Configuração de Convidado em VMs com uma identidade atribuída pelo usuárioIf the machine currently has a user-assigned system identity, the effective policy will be: Add system-assigned managed identity to enable Guest Configuration assignments on VMs with a user-assigned identity

Requisitos de definição da Configuração de ConvidadoGuest Configuration definition requirements

Definições de política de Configuração de Convidado usam o efeito AuditIfNotExists.Guest Configuration policy definitions use the AuditIfNotExists effect. Quando a definição é atribuída, um serviço de back-end gerencia automaticamente o ciclo de vida de todos os requisitos no provedor de recursos do Azure Microsoft.GuestConfiguration.When the definition is assigned, a back-end service automatically handles the lifecycle of all requirements in the Microsoft.GuestConfiguration Azure resource provider.

As definições de política AuditIfNotExists não retornarão resultados de conformidade até que todos os requisitos sejam atendidos no computador.The AuditIfNotExists policy definitions won't return compliance results until all requirements are met on the machine. Os requisitos são descritos na seção Implantar requisitos de máquinas virtuais do AzureThe requirements are described in section Deploy requirements for Azure virtual machines

Importante

Em uma versão anterior da Configuração de Convidado, era necessária uma iniciativa para combinar as definições DeployIfNoteExists e AuditIfNotExists.In a prior release of Guest Configuration, an initiative was required to combine DeployIfNoteExists and AuditIfNotExists definitions. As definições DeployIfNotExists não são mais necessárias.DeployIfNotExists definitions are no longer required. As definições e iniciativas são rotuladas como [Deprecated], mas as atribuições existentes continuarão a funcionar.The definitions and initiatives are labeled [Deprecated] but existing assignments will continue to function. Para obter informações, confira a postagem no blog: Alteração importante liberada para políticas de auditoria de Configuração de ConvidadoFor information see the blog post: Important change released for Guest Configuration audit policies

O que é uma Atribuição de Convidado?What is a Guest Assignment?

Quando um Azure Policy é atribuído, se ele está na categoria "Configuração de Convidado", há metadados incluídos para descrever uma Atribuição de Convidado.When an Azure Policy is assigned, if it's in the category "Guest Configuration" there's metadata included to describe a Guest Assignment. Você pode considerar uma Atribuição de Convidado como um vínculo entre um computador e um cenário do Azure Policy.You can think of a Guest Assignment as a link between a machine and an Azure Policy scenario. Por exemplo, o snippet de código abaixo associa a configuração de Linha de Base do Windows do Azure com a versão mínima 1.0.0 a qualquer computador no escopo da política.For example, the snippet below associates the Azure Windows Baseline configuration with minimum version 1.0.0 to any machines in scope of the policy. Por padrão, a Atribuição de Convidado executará apenas uma auditoria do computador.By default, the Guest Assignment will only perform an audit of the machine.

"metadata": {
    "category": "Guest Configuration",
    "guestConfiguration": {
        "name": "AzureWindowsBaseline",
        "version": "1.*"
    }
//additional metadata properties exist

As atribuições de convidado são criadas automaticamente por computador pelo serviço de Configuração de Convidado.Guest Assignments are created automatically per machine by the Guest Configuration service. O tipo de recurso é Microsoft.GuestConfiguration/guestConfigurationAssignments.The resource type is Microsoft.GuestConfiguration/guestConfigurationAssignments. O Azure Policy usa a propriedade complianceStatus do recurso de Atribuição de Convidado para relatar o status de conformidade.Azure Policy uses the complianceStatus property of the Guest Assignment resource to report compliance status. Para obter mais informações, confira Obtendo dados de conformidade.For more information, see getting compliance data.

Auditar configurações do sistema operacional seguindo as linhas de base do setorAuditing operating system settings following industry baselines

Uma iniciativa no Azure Policy audita as configurações do sistema operacional seguindo uma "linha de base".One initiative in Azure Policy audits operating system settings following a "baseline". A definição [Versão prévia]: os computadores do Windows devem atender aos requisitos da linha de base de segurança do Azure inclui um conjunto de regras com base na Política de Grupo do Active Directory.The definition, [Preview]: Windows machines should meet requirements for the Azure security baseline includes a set of rules based on Active Directory Group Policy.

A maioria das configurações estão disponíveis como parâmetros.Most of the settings are available as parameters. Os parâmetros permitem que você personalize o que é auditado.Parameters allow you to customize what is audited. Alinhe a política com seus requisitos ou mapeie a política para informações de terceiros, como padrões regulatórios do setor.Align the policy with your requirements or map the policy to third-party information such as industry regulatory standards.

Alguns parâmetros dão suporte a um intervalo de valores inteiros.Some parameters support an integer value range. Por exemplo, a configuração Duração Máxima da Senha pode auditar a configuração de Política de Grupo efetiva.For example, the Maximum Password Age setting could audit the effective Group Policy setting. Um intervalo igual a "1,70" confirmaria que os usuários precisam alterar as respectivas senhas pelo menos a cada 70 dias, mas com intervalo de pelo menos um dia entre cada alteração.A "1,70" range would confirm that users are required to change their passwords at least every 70 days, but no less than one day.

Se você atribuir a política usando um modelo do ARM (Azure Resource Manager), use um arquivo de parâmetros para gerenciar as exceções.If you assign the policy using an Azure Resource Manager template (ARM template), use a parameters file to manage exceptions. Faça check-in dos arquivos para um sistema de controle de versão, por exemplo, o Git.Check in the files to a version control system such as Git. Comentários sobre alterações de arquivo fornecem evidências do motivo pelo qual uma atribuição é uma exceção para o valor esperado.Comments about file changes provide evidence why an assignment is an exception to the expected value.

Aplicando configurações usando a Configuração de ConvidadoApplying configurations using Guest Configuration

Somente a definição Configurar o fuso horário em computadores Windows faz alterações no computador configurando o fuso horário.Only the definition Configure the time zone on Windows machines makes changes to the machine by configuring the time zone. Não há suporte para definições de política personalizadas para definir configurações dentro de computadores.Custom policy definitions for configuring settings inside machines aren't supported.

Ao atribuir definições que começam com Configurar, você também deve atribuir a definição Implantar pré-requisitos para habilitar a política de Configuração de Convidado em VMs do Windows.When assigning definitions that begin with Configure, you must also assign the definition Deploy prerequisites to enable Guest Configuration Policy on Windows VMs. Você pode combinar essas definições em uma mesma iniciativa, se assim escolher.You can combine these definitions in an initiative if you choose.

Observação

A política de fuso horário interna é a única definição que dá suporte à definição de configurações em computadores e às definições de política personalizadas que definem configurações em computadores que não têm suporte.The built-in time zone policy is the only definition that supports configuring settings inside machines and custom policy definitions that configure settings inside machines aren't supported.

Atribuindo políticas a computadores fora do AzureAssigning policies to machines outside of Azure

As definições de política de auditoria disponíveis para a Configuração de Convidado incluem o tipo de recurso Microsoft.HybridCompute/machines.The Audit policy definitions available for Guest Configuration include the Microsoft.HybridCompute/machines resource type. Todos os computadores integrados ao Azure Arc para servidores que estão no escopo da atribuição de política são incluídos automaticamente.Any machines onboarded to Azure Arc for servers that are in the scope of the policy assignment are automatically included.

Solução de problemas da configuração de convidadoTroubleshooting guest configuration

Para obter mais informações sobre como solucionar problemas de Configuração de Convidado, confira Solução de problemas do Azure Policy.For more information about troubleshooting Guest Configuration, see Azure Policy troubleshooting.

Atribuições múltiplasMultiple assignments

Atualmente, as políticas de Configuração de Convidado só são compatíveis com a realização da mesma Atribuição de Convidado uma vez por computador, mesmo que a atribuição de Política use parâmetros diferentes.Guest Configuration policy definitions currently only support assigning the same Guest Assignment once per machine, even if the Policy assignment uses different parameters.

Arquivos de log do clienteClient log files

A extensão de Configuração de Convidado grava arquivos de log nos seguintes locais:The Guest Configuration extension writes log files to the following locations:

Windows: C:\ProgramData\GuestConfig\gc_agent_logs\gc_agent.logWindows: C:\ProgramData\GuestConfig\gc_agent_logs\gc_agent.log

LinuxLinux

  • VM do Azure: /var/lib/GuestConfig/gc_agent_logs/gc_agent.logAzure VM: /var/lib/GuestConfig/gc_agent_logs/gc_agent.log
  • VM do Azure: /var/lib/GuestConfig/arc_policy_logs/gc_agent.logAzure VM: /var/lib/GuestConfig/arc_policy_logs/gc_agent.log

Coletando logs remotamenteCollecting logs remotely

A primeira etapa na solução de problemas de configurações ou módulos da Configuração de Convidado deve ser usar o cmdlet Test-GuestConfigurationPackage, seguindo as etapas de como Criar uma política de auditoria de Configuração de Convidado personalizada para o Windows.The first step in troubleshooting Guest Configuration configurations or modules should be to use the Test-GuestConfigurationPackage cmdlet following the steps how to create a custom Guest Configuration audit policy for Windows. Se isso não for bem-sucedido, a coleta dos logs do cliente poderá ajudar a diagnosticar problemas.If that isn't successful, collecting client logs can help diagnose issues.

WindowsWindows

Capture informações de arquivos de log usando o comando de execução de VM do Azure. O exemplo de script do PowerShell a seguir pode ser útil.Capture information from log files using Azure VM Run Command, the following example PowerShell script can be helpful.

$linesToIncludeBeforeMatch = 0
$linesToIncludeAfterMatch = 10
$logPath = 'C:\ProgramData\GuestConfig\gc_agent_logs\gc_agent.log'
Select-String -Path $logPath -pattern 'DSCEngine','DSCManagedEngine' -CaseSensitive -Context $linesToIncludeBeforeMatch,$linesToIncludeAfterMatch | Select-Object -Last 10

LinuxLinux

Capture informações de arquivos de log usando o comando de execução de VM do Azure. O exemplo de script Bash a seguir pode ser útil.Capture information from log files using Azure VM Run Command, the following example Bash script can be helpful.

linesToIncludeBeforeMatch=0
linesToIncludeAfterMatch=10
logPath=/var/lib/GuestConfig/gc_agent_logs/gc_agent.log
egrep -B $linesToIncludeBeforeMatch -A $linesToIncludeAfterMatch 'DSCEngine|DSCManagedEngine' $logPath | tail

Arquivos do clienteClient files

O cliente de Configuração de Convidado baixa pacotes de conteúdo em um computador e extrai o conteúdo.The Guest Configuration client downloads content packages to a machine and extracts the contents. Para verificar qual conteúdo foi baixado e armazenado, veja as localizações da pasta fornecidas abaixo.To verify what content has been downloaded and stored, view the folder locations given below.

Windows: c:\programdata\guestconfig\configurationWindows: c:\programdata\guestconfig\configuration

Linux: /var/lib/GuestConfig/ConfigurationLinux: /var/lib/GuestConfig/Configuration

Exemplos de Configuração de ConvidadoGuest Configuration samples

Os exemplos de política interna de Configuração de Convidado estão disponíveis nos seguintes locais:Guest Configuration built-in policy samples are available in the following locations:

Visão geral em vídeoVideo overview

A visão geral a seguir da Configuração de Convidado do Azure Policy é proveniente do ITOps Talks 2021.The following overview of Azure Policy Guest Configuration is from ITOps Talks 2021.

Como controlar linhas de base em ambientes de servidor híbrido usando a Configuração de Convidado do Azure PolicyGoverning baselines in hybrid server environments using Azure Policy Guest Configuration

Próximas etapasNext steps