Use políticas de SO convidado para manter configurações de software consistentes em instâncias de máquinas virtuais (VM) Linux e Windows.
Para configurar uma política de hóspedes num conjunto de VMs, conclua os seguintes passos:
- Atribua as autorizações necessárias aos utilizadores.
- Configure a sua VM.
- Configure o ficheiro JSON ou YAML da política de convidado.
- Crie a política de hóspedes.
Antes de começar
- Reveja as quotas de configuração do SO.
-
Se ainda não o tiver feito, configure a autenticação.
A autenticação valida a sua identidade para aceder a Trusted Cloud by S3NS serviços e APIs. Para executar código ou exemplos a partir de um ambiente de desenvolvimento local, pode autenticar-se no Compute Engine selecionando uma das seguintes opções:
Select the tab for how you plan to use the samples on this page:
gcloud
-
Instale a CLI Google Cloud e, em seguida, inicie sessão na CLI gcloud com a sua identidade federada. Depois de iniciar sessão, inicialize a CLI gcloud executando o seguinte comando:
gcloud init
- Set a default region and zone.
REST
Para usar os exemplos da API REST nesta página num ambiente de desenvolvimento local, usa as credenciais que fornece à CLI gcloud.
Instale a CLI Google Cloud e, em seguida, inicie sessão na CLI gcloud com a sua identidade federada. Depois de iniciar sessão, inicialize a CLI gcloud executando o seguinte comando:
gcloud init
Para mais informações, consulte o artigo Autenticar para usar REST na Trusted Cloud documentação de autenticação.
Limitações
- Para VMs segmentadas, a política de SO convidado é atualizada sempre que o agente comunica com o serviço. Esta verificação ocorre a cada 10 a 15 minutos.
- Não existem painéis de controlo de conformidade, notificações nem serviços de alerta disponíveis com estas políticas de SO convidado antigas. As VMs que não estão a executar o agente de configuração do SO não comunicam falhas. Para obter os melhores resultados, use esta funcionalidade com o serviço de gestão de inventário de SO ou qualquer outra ferramenta de monitorização da conformidade.
Uma receita de software, com um nome específico, só é executada uma vez quando cria uma política de convidados. Para voltar a executar uma receita de software, tem de fazer o seguinte:
- Mude o nome da receita de software.
- Elimine e recrie a política de convidados com a receita de software renomeada.
Autorizações
Uma vez que pode usar políticas de convidados para instalar e gerir pacotes de software numa VM, a criação e a gestão de políticas de convidados equivalem a conceder acesso à execução de código remoto numa VM.
Quando configura políticas de convidados, as autorizações de IAM são usadas para controlar o acesso ao recurso de política e as atividades são registadas em registos de auditoria. No entanto, os utilizadores podem continuar a executar código na VM, o que representa um potencial risco de segurança. Para mitigar este problema, recomendamos que conceda apenas o acesso necessário a cada utilizador.
Os proprietários de um projeto têm acesso total para criar e gerir políticas. Para todos os outros utilizadores, tem de conceder autorizações. Pode conceder uma das seguintes funções detalhadas:
- Administrador da GuestPolicy (
roles/osconfig.guestPolicyAdmin
). Contém autorizações para criar, eliminar, atualizar, obter e listar políticas de hóspedes. - GuestPolicy Editor (
roles/osconfig.guestPolicyEditor
). Contém autorizações para obter, atualizar e listar políticas de hóspedes. - GuestPolicy Viewer (
roles/osconfig.guestPolicyViewer
). Contém autorizações para acesso só de leitura para obter e listar políticas de convidados.
Por exemplo, para conceder a um utilizador 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:
PROJECT_ID
: o ID do projeto.USER_ID
: o nome de utilizador do Google Workspace do utilizador.
Configure a sua VM
Para usar políticas de convidados, tem de configurar o VM Manager.
Configure um ficheiro YAML ou JSON de política de convidado
Tem de fornecer as especificações da política de hóspedes através de um ficheiro JSON ou YAML. Para ver exemplos de configurações, consulte os ficheiros YAML de políticas de convidados de exemplo.
O ficheiro YAML ou JSON contém as seguintes duas secções principais:
- A secção de atribuição, que contém a lista de VMs de destino.
- A secção de configuração obrigatória que contém o estado que quer manter nas VMs.
Tarefas
Pode atribuir políticas de convidados a todas as VMs no seu projeto ou pode usar a chave
assignment
no seu ficheiro JSON ou YAML para segmentar um grupo específico de VMs.Por exemplo, pode segmentar um grupo de VMs usando qualquer uma das seguintes características:
- Nome da instância. Veja o exemplo 1.
- Prefixo do nome da instância. Veja o exemplo 2.
- Etiqueta de instância. Consulte o exemplo 3.
- Zona. Veja o exemplo 4.
- Informações do sistema operativo, que contêm o nome, a versão e a arquitetura do SO. Veja o exemplo 5. O comando os-inventory describe pode ser usado para determinar o nome, a versão e a arquitetura do SO das VMs.
Para atribuir uma política de convidado através de informações do sistema operativo, o agente de configuração do SO tem de enviar informações do sistema operativo para o ponto final de atributos do convidado para a VM. Para garantir a privacidade, por predefinição, as informações do sistema operativo das VMs estão indisponíveis. Para agrupar VMs por informações do sistema operativo, tem de garantir que os atributos de convidado e os serviços de gestão de inventário do SO estão ativados. Para ativar estes serviços, consulte o artigo Configure a sua MV.
As configurações da política de hóspedes são aplicadas automaticamente a todas as novas VMs que correspondem à atribuição.
Configuração necessária
A configuração necessária pode ser realizada através de qualquer uma ou uma combinação das seguintes tarefas:
- Instalar, remover e atualizar automaticamente pacotes de software. Veja o exemplo 1.
- Configure repositórios de pacotes de software. Consulte o exemplo 1 ou o exemplo 3.
- Instale software através de receitas de software.
Exemplos de ficheiros YAML de políticas de hóspedes
Exemplo 1
Instale o pacote
my-package
, que tem de 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 mais informações sobre a atribuição de políticas de hóspedes a pacotes, consulte o documento de referência Representação JSON de pacotes.
Exemplo 2
Instale o agente do Cloud Monitoring, através do gestor 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 mais informações sobre a atribuição de políticas de convidados para repositórios de pacotes, consulte o documento de referência Representação JSON de PackageRepository.
Exemplo 3
Instale
my-package
e removabad-package-1
ebad-package-2
de instâncias com um conjunto específico de etiquetas. Adicione também repositórios para os gestores 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
- Para mais informações sobre a atribuição de políticas de hóspedes a pacotes, consulte o documento de referência Representação JSON de pacotes.
- Para mais informações sobre a atribuição de políticas de convidados para repositórios de pacotes, consulte o documento de referência Representação JSON de PackageRepository.
Exemplo 4
Instale software a partir de um MSI alojado 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 mais informações sobre a configuração de políticas de receitas, consulte o documento de referência Representação JSON de SoftwareRecipe.
Exemplo 5
Instale software executando um script inline em todas as instâncias de VM que cumpram os seguintes requisitos:
- Sistema operativo: Red Hat Enterprise Linux 7
- Etiqueta:
color=red
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 mais informações sobre a configuração de políticas de receitas, consulte o documento de referência Representação JSON de SoftwareRecipe.
Exemplo 6
Instala a aplicação em todas as instâncias do Windows através de um instalador executável com o seguinte prefixo do nome da 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 mais informações sobre a configuração de políticas de receitas, consulte o documento de referência Representação JSON de SoftwareRecipe.
Crie uma política de convidado
Quando cria uma política de convidado, o nome da política de convidado tem de cumprir os seguintes requisitos de nomenclatura:
- Contêm apenas letras minúsculas, números e hífenes
- Começar com uma letra
- Terminar com um número ou uma letra
- Ter entre 1 e 63 carateres
- Cada ID da política tem de ser exclusivo num projeto
Use um dos seguintes métodos para criar uma política de hóspedes.
gcloud
Use o comando
os-config guest-policies create
para criar uma política de hóspedes.gcloud beta compute os-config guest-policies create POLICY_ID \ --file=FILE
Substitua o seguinte:
POLICY_ID
: o nome da política de hóspedes que quer criar.FILE
: ficheiro JSON ou YAML que contém as especificações da política de hóspedes. Para ver exemplos de configurações, consulte os ficheiros YAML de políticas de convidados de exemplo.
REST
Na API, crie um pedido
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:
PROJECT_ID
: o ID do seu projeto.POLICY_ID
: o nome da política de hóspedes.
Para ver exemplos de configurações, consulte os ficheiros YAML de políticas de convidados de exemplo.
Resolução de problemas
Para resolver problemas de uma política de convidado, consulte o artigo Resolução de problemas de uma política de convidado.
O que se segue?
- Saiba mais acerca das políticas de convidados do SO (antigas).
- Faça a gestão das políticas de hóspedes.
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-09-29 UTC.
[[["Fácil de entender","easyToUnderstand","thumb-up"],["Meu problema foi resolvido","solvedMyProblem","thumb-up"],["Outro","otherUp","thumb-up"]],[["Não contém as informações de que eu preciso","missingTheInformationINeed","thumb-down"],["Muito complicado / etapas demais","tooComplicatedTooManySteps","thumb-down"],["Desatualizado","outOfDate","thumb-down"],["Problema na tradução","translationIssue","thumb-down"],["Problema com as amostras / o código","samplesCodeIssue","thumb-down"],["Outro","otherDown","thumb-down"]],["Última atualização 2025-09-29 UTC."],[],[],null,[]] -