Este documento apresenta uma visão geral da funcionalidade principal do agente convidado, um componente essencial do ambiente convidado. O ambiente convidado contém scripts, daemons e binários que as instâncias precisam para serem executadas no Compute Engine. Para mais informações, consulte Ambiente convidado.
Como o agente convidado funciona
A partir da versão 20250901.00
, o agente convidado usa uma
arquitetura baseada em plug-ins. Esse design melhora a confiabilidade e a flexibilidade
separando as funções do agente em componentes distintos.
A arquitetura do agente convidado consiste em alguns componentes principais:
- Gerenciador de agentes convidados: o processo central na sua instância que inicia, para e monitora todos os plug-ins.
- Plug-in principal: processa os serviços essenciais que sua instância precisa para ser executada no Google Cloud. Não é possível desativar a funcionalidade dele.
- Plug-ins opcionais: são plug-ins que integram sua instância a outros serviços do Google Cloud , como o Cloud Monitoring. Você pode controlar quais desses plug-ins são executados na sua instância.
- Plano de controle do agente: é um serviço Google Cloud gerenciado que é executado na infraestrutura de back-end do Google e gerencia o ciclo de vida de plug-ins opcionais, incluindo instalação e atualizações.
Para mais informações sobre a arquitetura do agente convidado, consulte Sobre o agente convidado.
Principal recurso
O plug-in principal é responsável pelos serviços fundamentais de que sua instância precisa para funcionar no Compute Engine. A seção a seguir detalha as funções fornecidas pelo plug-in principal. É possível personalizar muitos desses recursos usando o arquivo de configuração do agente convidado.
Configuração e otimizações iniciais de instâncias
O agente convidado realiza várias tarefas de configuração para preparar a instância para execução no Compute Engine. Como mostrado na tabela a seguir, algumas tarefas são executadas apenas na primeira inicialização, enquanto outras são executadas em todas as inicializações.
Tarefa | Frequência |
---|---|
Gerar chaves de host SSH | Na primeira inicialização |
Criar a configuração boto para usar o Cloud Storage |
Na primeira inicialização |
Otimizar para SSD local | A cada inicialização |
Ativar várias filas em todos os dispositivos virtionet |
A cada inicialização |
É possível controlar essas tarefas de configuração definindo as
opções InstanceSetup
do arquivo de configuração do agente convidado. Por exemplo, é possível desativar a otimização do SSD local definindo optimize_local_ssd = false
.
Coleta de telemetria do sistema
O agente convidado registra algumas informações básicas de telemetria do sistema na inicialização e depois a cada 24 horas. As informações registradas incluem o seguinte:
- Versão e arquitetura do agente convidado
- Nome e versão do sistema operacional
- Versão e lançamento do kernel do sistema operacional
Para desativar a coleta de telemetria, defina a chave de metadados disable-guest-telemetry
como true
. Para definir metadados, consulte
Definir e remover metadados personalizados.
Sincronização do relógio (somente no Linux)
Para garantir uma marcação de tempo precisa, o agente convidado usa o componente clock_skew_daemon
para corrigir periodicamente o relógio na instância e corresponder ao
servidor físico em que ele é executado. Esse processo evita um problema chamado distorção de relógio e gera uma mensagem system time has changed
nos registros da instância, que confirma que a hora foi sincronizada.
Normalmente, o agente sincroniza o relógio após um evento de parada ou início ou após uma migração.
Para desativar o componente clock_skew_daemon
, defina
clock_skew_daemon = false
no arquivo de configuração do agente convidado.
Execução de script de metadados
É possível usar scripts de inicialização e scripts de desligamento para realizar tarefas automatizadas sempre que a instância for iniciada ou interrompida.
O agente convidado ajuda a executar esses scripts da seguinte maneira:
- Executa scripts em um shell.
- Se você especificar vários scripts (por exemplo, se usar
startup-script
estartup-script-url
), o agente vai executar os dois. - Quando vários scripts são fornecidos para o mesmo evento, o agente executa primeiro o script do URL.
- Depois que um script termina, o agente registra o status de saída.
É possível configurar a execução de scripts de metadados modificando as
opções MetadataScripts
no arquivo de configuração do agente convidado.
Gerenciamento de contas de usuário e chaves SSH
O agente convidado usa um accounts_daemon
para gerenciar contas de usuários locais e chaves SSH, que controlam o acesso à instância.
O comportamento específico varia entre os sistemas operacionais Linux e Windows.
Para modificar as opções de gerenciamento de contas, configure as
opções Accounts
no arquivo de configuração do agente convidado.
Linux
O Login do SO é usado para gerenciar o acesso SSH às instâncias usando o IAM, sem precisar criar e gerenciar chaves SSH individuais. Para mais informações sobre o Login do SO, consulte Login do SO. Em instâncias do Linux, se o Login do SO não estiver ativado, o agente vai criar e gerenciar contas de usuário locais e as chaves SSH delas usando configurações de metadados.
Quando você adiciona ou remove chaves SSH dos metadados da instância ou do projeto, o agente convidado cria ou exclui uma conta de usuário local. O agente convidado também realiza as seguintes ações para gerenciar essas contas de usuário locais:
- Mantém o arquivo
authorized_keys
de cada conta de usuário gerenciada da seguinte forma:- Quando você adiciona chaves SSH aos metadados, o agente cria um arquivo
authorized_keys
para a conta de usuário. - Quando você remove todas as chaves SSH de um usuário dos metadados, o agente exclui
o arquivo
authorized_keys
dessa conta de usuário.
- Quando você adiciona chaves SSH aos metadados, o agente cria um arquivo
- Gerencia privilégios de administrador usando o grupo
google-sudoers
do Linux. Todos os membros desse grupo recebem permissões de sudo na instância. - Adiciona todas as contas de usuário provisionadas ao grupo
google-sudoers
. - Adiciona contas de usuário a outros grupos do Linux especificados
na opção
groups
do arquivo de configuração do agente convidado.
Windows
Em instâncias do Windows, o agente cria automaticamente contas de usuário local para qualquer conta de usuário SSH especificada nas chaves SSH de metadados no nível da instância ou do projeto. O agente convidado também é responsável por criar contas de usuário e definir ou redefinir senhas. Essas contas de usuário locais são necessárias para se conectar a instâncias do Windows usando SSH.
É possível impedir o provisionamento não intencional de usuários do AD desativando o gerenciador de contas na instância do controlador do AD. Para mais informações sobre como configurar o AD no Compute Engine, consulte implantar controladores de domínio.
Configuração do Login do SO (somente Linux)
O Login do SO é usado para gerenciar o acesso SSH às instâncias usando o IAM, sem precisar criar e gerenciar chaves SSH individuais. Para mais informações sobre o Login do SO, consulte a documentação do Login do SO.
Quando você ativa o Login do SO, o agente convidado é responsável por configurar a instância para usar o Login do SO.
O agente convidado configura o Login do SO concluindo as seguintes tarefas:
- Adiciona um bloco de configuração do Google ao arquivo de configuração
SSHD
e reiniciaSSHD
. - Adiciona entradas de login do SO ao arquivo
nsswitch.conf
. - Adiciona entradas de Login do SO ao arquivo de configuração
PAM
paraSSHD
.
Se você desativar o Login do SO, as mudanças de configuração serão
removidas. As opções na seção Accounts
do arquivo de configuração SSHD
não se aplicam aos usuários do Login do SO.
Gerenciamento de rede
O agente convidado configura automaticamente as interfaces de rede da instância na inicialização. Ele lê a configuração de rede do servidor de metadados para garantir que sua instância se conecte à rede corretamente e possa acessar outros serviços do Google Cloud.
Para controlar o comportamento de gerenciamento de rede do agente, configure as opções de NetworkInterfaces
no arquivo de configuração do agente convidado. Por exemplo, é possível definir a opção manage_primary_nic = true
para que o agente gerencie a placa de rede (NIC) principal, além das NICs secundárias.
Em cada inicialização, o agente convidado realiza as seguintes tarefas principais:
- Ativa interfaces de rede: o agente detecta o gerenciador de rede ativo no SO e o usa para ativar todas as NICs de rede secundárias.
- Configura rotas IP: o agente configura as rotas IP necessárias (somente IPv4) para recursos como encaminhamento de IP e intervalos de IP de alias da seguinte maneira:
- Define rotas na interface Ethernet principal.
- Configura as rotas do Google por padrão, com o ID do protocolo de roteamento
66
. Esse ID é um namespace para endereços IP configurados do agente convidado. Esse ID pode ser mudado usando a opçãoethernet_proto_id
no arquivo de configuração do agente convidado.
- Cria uma rota para o servidor de metadados: o agente garante que a NIC principal sempre possa se comunicar com o servidor de metadados para receber informações da instância.
- Configuração da VLAN: se a instância estiver configurada para se conectar a uma
rede local virtual (VLAN),
o agente convidado vai processar a configuração automaticamente. Ele lê a configuração da VLAN no servidor de metadados e configura a interface de rede na instância para usar a tag VLAN correta. Isso garante que a instância
se comunique na rede lógica pretendida. É importante lembrar que, se a VLAN estiver anexada à NIC principal, o agente convidado a configurará mesmo que
manage_primary_nic
esteja desativado.
Seleção do gerenciador de rede
No Linux, o agente convidado detecta automaticamente qual gerenciador de rede está
disponível no sistema e o usa para configurar as interfaces de rede. O
agente verifica os gerenciadores compatíveis por ordem de prioridade, de netplan
a
dhclient
.
A tabela a seguir lista os gerenciadores de rede compatíveis, organizados pelo sistema operacional com que são mais comumente associados por padrão. Sua configuração de instância específica pode ser diferente, mas esta tabela reflete o gerenciador de rede padrão para os sistemas operacionais listados.
Gerenciador de rede | Sistema operacional | Localização da configuração | Exemplo de caminho | Observações |
---|---|---|---|---|
netplan |
|
/run/netplan/ |
/run/netplan/20-google-guest-agent-eth0.yaml |
O agente também pode usar um local de substituição em
/etc/systemd/network/ |
wicked |
|
/etc/sysconfig/network/ |
/etc/sysconfig/network/ifcfg-eth0 |
Os arquivos ifcfg atuais não são substituídos e são ignorados. |
NetworkManager |
|
/etc/NetworkManager/system-connections/ |
/etc/NetworkManager/system-connections/google-guest-agent-eth0.nmconnection |
|
systemd-networkd |
|
/usr/lib/systemd/network/ |
/usr/lib/systemd/network/20-eth0-google-guest-agent.network |
|
dhclient |
|
/run/ |
/run/dhclient.google-guest-agent.eth0.ipv4.pid |
Se nenhum dos outros gerenciadores de rede for detectado, o agente convidado
usará dhclient por padrão. |
Gerenciamento seguro de credenciais do servidor de metadados (MDS)
As VMs protegidas agora oferecem suporte à comunicação
segura com o servidor de metadados usando o endpoint HTTPS
https://metadata.google.internal/computeMetadata/v1
. Essa melhoria oferece um canal mais seguro para acesso a metadados.
Para ativar essa comunicação segura, o agente convidado recupera e armazena as credenciais necessárias no disco da instância. Essas credenciais são salvas em um local padrão, o que as torna acessíveis a qualquer aplicativo cliente em execução na instância. Para analisar esses locais, consulte Onde os certificados são armazenados.
A configuração de certificados HTTPS MDS está desativada por padrão. Para que as
VMs protegidas configurem automaticamente os certificados MDS HTTPS, defina a
chave de metadados disable-https-mds-setup
como false
na instância ou no projeto.
Para definir metadados, consulte
Definir e remover metadados personalizados.
O gerenciamento de credenciais pelo agente convidado inclui:
- Atualização inicial: o certificado raiz e as credenciais do cliente são atualizados sempre que o processo do agente convidado é iniciado.
- Atualização automática: para aumentar a segurança, o agente convidado atualiza automaticamente as credenciais do cliente a cada 48 horas.
- Período de sobreposição: o agente gera e salva novas credenciais enquanto as antigas permanecem válidas. O período de sobreposição garante que os clientes tenham tempo suficiente para fazer a transição para as novas credenciais antes que as antigas expirem. Esse período de sobreposição também permite que o agente tente novamente a aquisição de credenciais em caso de falha, garantindo que credenciais válidas estejam em vigor antes que as atuais se tornem inválidas.
- Composição: o agente convidado garante que as credenciais do cliente consistam em uma chave privada EC (curva elíptica) concatenada com o certificado do cliente.
- Unicidade: o agente convidado garante que as credenciais sejam exclusivas de uma instância e não possam ser usadas em outro lugar.
Para mais informações sobre o endpoint do servidor de metadados HTTPS, consulte Sobre o endpoint do servidor de metadados HTTPS.
Por padrão, o agente convidado grava certificados diretamente no disco. No entanto, é possível configurar o agente para integrar certificados aos armazenamentos de certificados integrados do sistema operacional. Para ativar essa integração, defina a chave de metadados enable-https-mds-native-cert-store
como true
. Para definir metadados, consulte
Definir e remover metadados personalizados.
O comportamento do agente para adicionar certificados a repositórios de confiança do SO varia de acordo com o SO, da seguinte forma:
Linux
O agente convidado executa as seguintes etapas:
- Adiciona o certificado raiz do MDS ao armazenamento confiável do sistema. O caminho específico depende da distribuição do SO. Para analisar esses locais, consulte Armazenamento de certificados raiz no repositório de confiança do SO.
- Atualize o armazenamento de confiança local executando o comando apropriado para o
SO, como
update-ca-certificates
ouupdate-ca-trust
.
Windows
O agente adiciona as credenciais do cliente a Cert:\LocalMachine\My
e o certificado raiz a Cert:\LocalMachine\Root
.
Suporte a cluster de failover do Windows (somente Windows)
O agente convidado monitora o nó ativo no cluster de failover do Windows Server e coordena com o balanceador de carga interno Google Cloud para encaminhar todo o tráfego do cluster ao nó esperado.
É possível controlar esse comportamento usando os seguintes campos nos metadados da instância ou no arquivo instance_configs.cfg
:
enable-wsfc
: quando definido comotrue
, o agente ignora todas as informações de encaminhamento de IP e começa a responder à porta de verificação de integridade. A configuração padrão éfalse
.wsfc-agent-port
: especifica a porta em que o agente responde às verificações de integridade. A configuração padrão é59998
.wsfc-addrs
: uma lista de endereços IP separados por vírgulas. Essa configuração avançada permite ter IPs de encaminhamento normais e IPs de cluster na mesma instância. Quando você define isso, o agente só ignora a configuração automática para os IPs nessa lista. Por padrão, esse valor não é definido.
A seguir
- Para saber como gerenciar o agente convidado, consulte Configurar o agente convidado.