Use políticas de convidados para manter configurações de software consistentes em instâncias de máquinas virtuais (VM) Linux e Windows.
Para configurar uma política de convidados em um conjunto de VMs, conclua as etapas a seguir:
- Atribua as permissões necessárias aos usuários.
- Configure sua VM .
- Configure o arquivo JSON ou YAML da política de convidado.
- Crie a política de convidados .
Antes de começar
- Revise as cotas de configuração do sistema operacional .
- Se ainda não o fez, configure a autenticação. Autenticação é o processo pelo qual sua identidade é verificada para acesso a Google Cloud serviços e APIs. Para executar códigos ou amostras em um ambiente de desenvolvimento local, você pode se autenticar no Compute Engine selecionando uma das seguintes opções:
Select the tab for how you plan to use the samples on this page:
gcloud
-
After installing the Google Cloud CLI, initialize it by running the following command:
gcloud init
If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
- Set a default region and zone.
- Para VMs direcionadas, a política de convidado é atualizada sempre que o agente faz check-in no serviço. Essa verificação acontece a cada 10 a 15 minutos.
- Não há painéis de conformidade, notificações ou serviços de alerta disponíveis com as políticas de convidado deste sistema operacional legado. As VMs que não estão executando o agente de configuração do SO não relatam falhas. Para obter melhores resultados, use esse recurso com o serviço de gerenciamento de inventário de SO ou qualquer outra ferramenta de monitoramento de conformidade.
Uma receita de software, com um nome específico, é executada apenas uma vez quando você cria uma política de convidados. Para executar novamente uma receita de software, você deve fazer o seguinte:
- Renomeie a receita do software.
- Exclua e recrie a política de convidado usando a receita de software renomeada.
- Administrador de GuestPolicy (
roles/osconfig.guestPolicyAdmin
). Contém permissões para criar, excluir, atualizar, obter e listar políticas de convidados. - Editor GuestPolicy (
roles/osconfig.guestPolicyEditor
). Contém permissões para obter, atualizar e listar políticas de convidados. - Visualizador GuestPolicy (
roles/osconfig.guestPolicyViewer
). Contém permissões de acesso somente leitura para obter e listar políticas de convidados. -
PROJECT_ID
: o ID do projeto. -
USER_ID
: o nome de usuário do Google Workspace do usuário. - A seção de atribuição que contém a lista de VMs de destino.
- A seção de configuração necessária que contém o estado que você deseja manter nas VMs.
- Nome da instância. Veja o exemplo 1 .
- Prefixo do nome da instância. Veja o exemplo 2 .
- Rótulo da instância. Veja o exemplo 3 .
- Zona. Veja o exemplo 4 .
- Informações do sistema operacional, que contêm nome, versão e arquitetura do sistema operacional. Veja o exemplo 5 . O comando os-inventory description pode ser usado para determinar o nome do sistema operacional, a versão e a arquitetura das VMs.
- Instale, remova e atualize automaticamente pacotes de software. Veja o exemplo 1 .
- Configure repositórios de pacotes de software. Veja o exemplo 1 ou o exemplo 3 .
- Instale software usando receitas de software.
- Para VMs Linux, consulte o exemplo 5 .
- Para VMs do Windows, consulte o exemplo 4 ou o exemplo 6 .
- Para obter mais informações sobre como atribuir políticas de convidados para pacotes, consulte o documento de referência de representação JSON do pacote .
- Para obter mais informações sobre como atribuir políticas de convidados para repositórios pacakage, consulte o documento de referência de representação JSON PackageRepository .
- Sistema operacional: Red Hat Enterprise Linux 7
- Rótulo:
color=red
- Conter apenas letras minúsculas, números e hifens
- Comece com uma carta
- Termine com um número ou uma letra
- Ter entre 1 e 63 caracteres
- Cada ID de política deve ser exclusivo em um projeto
-
POLICY_ID
: o nome da política de convidado que você deseja criar. -
FILE
: arquivo JSON ou YAML que contém as especificações da política de convidado. Para visualizar configurações de amostra, consulte Exemplo de arquivos YAML de política de convidado . -
PROJECT_ID
: seu ID do projeto. -
POLICY_ID
: o nome da sua política de convidados. - Saiba mais sobre as políticas de convidados do SO (herdadas) .
- Gerenciar políticas de convidados .
REST
Para usar as amostras da API REST nesta página em um ambiente de desenvolvimento local, use as credenciais fornecidas para gcloud CLI.
After installing the Google Cloud CLI, initialize it by running the following command:
gcloud init
If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
Para mais informações, consulte Autenticar para usar REST na documentação de autenticação do Google Cloud.
Limitações
Permissões
Como você pode usar políticas de convidados para instalar e gerenciar pacotes de software em uma VM, a criação e o gerenciamento de políticas de convidados equivalem a conceder acesso de execução remota de código em uma VM.
Ao configurar políticas de convidados, as permissões do IAM são usadas para controlar o acesso ao recurso de política e as atividades são registradas em auditoria. No entanto, os usuários ainda podem executar código na VM, o que representa um risco potencial à segurança. Para atenuar isso, recomendamos que você forneça apenas o acesso necessário a cada usuário.
Os proprietários de um projeto têm acesso total para criar e gerenciar políticas. Para todos os outros usuários, você precisa conceder permissões. Você pode conceder uma das seguintes funções granulares:
Por exemplo, para conceder a um usuário acesso de administrador às políticas de convidados, execute o seguinte comando:
gcloud projects add-iam-policy-binding PROJECT_ID \ --member user:USER_ID@gmail.com \ --role roles/osconfig.guestPolicyAdmin
Substitua o seguinte:
Configure sua VM
Para usar políticas de convidados, você precisa configurar o VM Manager .
Configurar um arquivo yaml ou JSON de política de convidado
Você deve fornecer especificações de política de convidado usando um arquivo JSON ou YAML. Para visualizar configurações de amostra, consulte exemplos de arquivos YAML de política de convidado .
O arquivo YAML ou JSON contém as duas seções principais a seguir:
Tarefas
Você pode atribuir políticas de convidado a todas as VMs do seu projeto ou usar a chave
assignment
no seu arquivo JSON ou YAML para direcionar um grupo específico de VMs.Por exemplo, você pode direcionar um grupo de VMs usando qualquer uma das seguintes características:
Para atribuir uma política de convidado usando informações do sistema operacional, o agente de configuração do sistema operacional deve enviar informações do sistema operacional para o ponto final de atributos de convidado da VM. Para garantir a privacidade, por padrão, as informações do sistema operacional para VMs estão indisponíveis. Para agrupar VMs por informações do sistema operacional, você deve garantir que os atributos do convidado e os serviços do OS Inventory Management estejam ativados. Para ativar esses serviços, consulte Configurar sua VM .
As configurações de política de convidados são aplicadas automaticamente a todas as novas VMs que correspondam à atribuição.
Configuração necessária
A configuração necessária pode ser realizada usando qualquer uma ou uma combinação das seguintes tarefas:
Exemplo de arquivos YAML de política de convidado
Exemplo 1
Instale o pacote
my-package
que deve ser mantido atualizado nas seguintes instâncias de VM:my-instance-1
emy-instance-2
.assignment: instances: - zones/us-east1-c/instances/my-instance-1 - zones/us-east1-c/instances/my-instance-2 packages: - name: "my-package" desiredState: UPDATED
Para obter mais informações sobre como atribuir políticas de convidados para pacotes, consulte o documento de referência de representação JSON do pacote .
Exemplo 2
Instale o agente do Cloud Monitoring usando o gerenciador de pacotes yum em todas as instâncias de VM que tenham um dos seguintes prefixos de nome de instância:
test-instance-
oudev-instance-
.assignment: instanceNamePrefixes: - "test-instance-" - "dev-instance-" packages: - name: "stackdriver-agent" desiredState: INSTALLED manager: YUM packageRepositories: - yum: id: google-cloud-monitoring displayName: "Google Cloud Monitoring Agent Repository" baseUrl: https://packages.cloud.google.com/yum/repos/google-cloud-monitoring-el7-x86_64-all gpgKeys: - https://packages.cloud.google.com/yum/doc/yum-key.gpg - https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg
Para obter mais informações sobre como atribuir políticas de convidados para repositórios pacakage, consulte o documento de referência de representação JSON PackageRepository .
Exemplo 3
Instale
my-package
e removabad-package-1
ebad-package-2
de instâncias com um conjunto específico de rótulos. Adicione também repositórios para os gerenciadores de pacotes apt e yum.assignment: # Assign to VM instances where `(label.color=red AND label.env=test) OR (label.color=blue AND label.env=test)` groupLabels: - labels: color: red env: test - labels: color: blue env: test packages: - name: "my-package" desiredState: INSTALLED - name: "bad-package-1" desiredState: REMOVED - name: "bad-package-2" desiredState: REMOVED manager: APT # Only apply this to systems with APT. packageRepositories: - apt: # Only apply this to systems with APT. uri: "https://packages.cloud.google.com/apt" archiveType: DEB distribution: cloud-sdk-stretch components: - main - yum: # Only apply this to systems with YUM. id: google-cloud-sdk displayName: "Google Cloud SDK" baseUrl: https://packages.cloud.google.com/yum/repos/cloud-sdk-el7-x86_64 gpgKeys: - https://packages.cloud.google.com/yum/doc/yum-key.gpg - https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg
Exemplo 4
Instale o software de um MSI hospedado no Cloud Storage em todas as instâncias em
us-east1-b
eus-east1-d
.assignment: zones: - us-east1-b - us-east1-d recipes: - name: "swr-msi-gcs" desiredState: INSTALLED artifacts: - id: "the-msi" gcs: bucket: "my-bucket" object: "executable.msi" # full URI gs://my-bucket/executable.msi#nnnnn generation: 1546030865175603 installSteps: - msiInstallation: artifactId: "the-msi"
Para obter mais informações sobre como configurar políticas de receita, consulte o documento de referência de representação JSON do SoftwareRecipe .
Exemplo 5
Instale o software executando um script in-line em todas as instâncias de VM que atendem aos seguintes requisitos:
assignment: osTypes: - osShortName: rhel osVersion: "7" groupLabels: - labels: color: red recipes: - name: recipe-runscript desiredState: INSTALLED installSteps: - scriptRun: script: |- #!/bin/bash touch /TOUCH_FILE
Para obter mais informações sobre como configurar políticas de receita, consulte o documento de referência de representação JSON do SoftwareRecipe .
Exemplo 6
Instala o aplicativo em todas as instâncias do Windows usando um instalador executável que possui o seguinte prefixo de nome de instância:
test-instance-
.assignment: instanceNamePrefixes: - "test-instance-" osTypes: - osShortName: WINDOWS recipes: - name: windows-install-exe-example desiredState: INSTALLED artifacts: - id: installer gcs: bucket: my-bucket generation: '1597013478912389' object: MyApp.Installer.x64.exe installSteps: - fileExec: artifactId: installer args: - /S # Installation must be silent
Para obter mais informações sobre como configurar políticas de receita, consulte o documento de referência de representação JSON do SoftwareRecipe .
Crie uma política de convidados
Ao criar uma política de convidado, o nome da política de convidado deverá atender aos seguintes requisitos de nomenclatura:
Use um dos métodos a seguir para criar uma política de convidado.
gcloud
Use o comando
os-config guest-policies create
para criar uma política de convidado.gcloud beta compute os-config guest-policies create POLICY_ID \ --file=FILE
Substitua o seguinte:
DESCANSAR
Na API, crie uma solicitação
POST
para o métodoprojects.guestPolicies.create
.POST https://osconfig.googleapis.com/v1beta/projects/PROJECT_ID/guestPolicies?guestPolicyId=POLICY_ID { For more information, see Guest policy JSON }
Substitua o seguinte:
Para visualizar configurações de amostra, consulte exemplos de arquivos YAML de política de convidado .
Solução de problemas
Para solucionar problemas de uma política de convidado, consulte Depurando uma política de convidado .
O que vem a seguir?
Exceto em caso de indicação contrária, o conteúdo desta página é licenciado de acordo com a Licença de atribuição 4.0 do Creative Commons, e as amostras de código são licenciadas de acordo com a Licença Apache 2.0. Para mais detalhes, consulte as políticas do site do Google Developers. Java é uma marca registrada da Oracle e/ou afiliadas.
Última atualização 2025-04-21 UTC.
-