Utilizza le policy guest per mantenere configurazioni software coerenti nelle istanze di macchine virtuali (VM) Linux e Windows.
Per configurare una policy guest in un insieme di VM, completa i seguenti passaggi:
- Assegna le autorizzazioni richieste agli utenti.
- Configura la VM.
- Configura il file JSON o YAML della policy guest.
- Crea la policy guest.
Prima di iniziare
- Esamina le quote di OS Config.
-
Se non l'hai ancora fatto, configura l'autenticazione.
L'autenticazione è il processo mediante il quale la tua identità viene verificata per l'accesso a servizi e API di Trusted Cloud by S3NS .
Per eseguire codice o esempi da un ambiente di sviluppo locale, puoi autenticarti su Compute Engine selezionando una delle seguenti opzioni:
Select the tab for how you plan to use the samples on this page:
gcloud
-
Install the Google Cloud CLI, and then sign in to the gcloud CLI with your federated identity. After signing in, initialize the Google Cloud CLI by running the following command:
gcloud init
- Set a default region and zone.
REST
Per utilizzare gli esempi di API REST in questa pagina in un ambiente di sviluppo locale, devi utilizzare le credenziali che fornisci a gcloud CLI.
Install the Google Cloud CLI, and then sign in to the gcloud CLI with your federated identity. After signing in, initialize the Google Cloud CLI by running the following command:
gcloud init
Per saperne di più, consulta Autenticarsi per l'utilizzo di REST nella documentazione sull'autenticazione di Trusted Cloud .
Limitazioni
- Per le VM target, la policy guest si aggiorna ogni volta che l'agente esegue il check-in con il servizio. Questo controllo viene eseguito ogni 10-15 minuti.
- Con questo tipo di policy guest del sistema operativo legacy non sono disponibili dashboard, notifiche o servizi di avviso per la conformità. Le VM su cui non è in esecuzione l'agente OS Config non segnalano errori. Per risultati ottimali, utilizza questa funzionalità con il servizio OS Inventory Management o con qualsiasi altro strumento di monitoraggio della conformità.
Una formula software con un nome specifico viene eseguita una sola volta quando crei una policy guest. Per eseguire di nuovo una formula software, devi procedere nel seguente modo:
- Rinomina la formula software.
- Elimina e ricrea la policy guest utilizzando la formula software rinominata.
Autorizzazioni
Poiché puoi utilizzare le policy guest per installare e gestire i pacchetti software su una VM, la creazione e la gestione di queste policy è equivalente alla concessione dell'accesso all'esecuzione di codice remoto su una VM.
Quando configuri le policy guest, le autorizzazioni IAM vengono utilizzate per controllare l'accesso alla risorsa della policy e le attività vengono registrate nell'audit log. Tuttavia, gli utenti possono comunque eseguire il codice sulla VM, il che rappresenta un potenziale rischio per la sicurezza. Per mitigare questo problema, ti consigliamo di fornire a ogni utente solo l'accesso necessario.
I proprietari di un progetto hanno accesso completo per creare e gestire le policy. Per tutti gli altri utenti, devi concedere le autorizzazioni. Puoi concedere uno dei seguenti ruoli granulari:
- GuestPolicy Admin (
roles/osconfig.guestPolicyAdmin
): include le autorizzazioni per creare, eliminare, aggiornare, recuperare ed elencare le policy guest. - GuestPolicy Editor (
roles/osconfig.guestPolicyEditor
): include le autorizzazioni per ottenere, aggiornare ed elencare le policy guest. - GuestPolicy Viewer (
roles/osconfig.guestPolicyViewer
): include le autorizzazioni per l'accesso di sola lettura al fine di ottenere ed elencare le policy guest.
Ad esempio, per concedere a un utente amministratore l'accesso alle policy guest, esegui questo comando:
gcloud projects add-iam-policy-binding PROJECT_ID \ --member user:USER_ID@gmail.com \ --role roles/osconfig.guestPolicyAdmin
Sostituisci quanto segue:
PROJECT_ID
: l'ID progettoUSER_ID
: il nome utente di Google Workspace dell'utente
Configura la VM
Per utilizzare le policy guest, devi configurare VM Manager.
Configura un file yaml o JSON per una policy guest
Devi fornire le specifiche della policy guest utilizzando un file JSON o YAML. Per visualizzare configurazioni di esempio, fai riferimento alla sezione File YAML di esempio per una policy guest.
Il file YAML o JSON contiene le seguenti due sezioni principali:
- La sezione di assegnazione che contiene l'elenco delle VM target
- La sezione di configurazione richiesta che contiene lo stato che vuoi mantenere sulle VM
Assegnazioni
Puoi assegnare policy guest a tutte le VM del progetto oppure puoi utilizzare la chiave
assignment
nel file JSON o YAML per individuare un gruppo specifico di VM.Ad esempio, puoi scegliere un gruppo specifico di VM utilizzando una delle seguenti caratteristiche:
- Nome dell'istanza. Vedi esempio 1.
- Prefisso del nome dell'istanza. Vedi esempio 2.
- Etichetta dell'istanza. Vedi esempio 3.
- Zona. Vedi esempio 4.
- Informazioni sul sistema operativo, riguardanti il nome, la versione e l'architettura. Vedi esempio 5. Il comando os-inventory describe può essere utilizzato per determinare il nome, la versione e l'architettura del sistema operativo delle VM.
Per assegnare una policy guest utilizzando le informazioni sul sistema operativo, l'agente OS Configuration deve inviare le informazioni sul sistema operativo all'endpoint degli attributi guest per la VM. Per garantire la privacy, per impostazione predefinita le informazioni sul sistema operativo per le VM non sono disponibili. Per raggruppare le VM in base alle informazioni sul sistema operativo, devi assicurarti che gli attributi guest e i servizi di OS Inventory Management siano abilitati. Per attivare questi servizi, vedi Configura la VM.
Le configurazioni delle policy guest vengono applicate automaticamente a tutte le nuove VM che soddisfano l'assegnazione.
Configurazione richiesta
La configurazione richiesta può essere eseguita utilizzando una o più delle seguenti attività:
- Installa, rimuovi e aggiorna automaticamente i pacchetti software. Vedi esempio 1.
- Configura i repository dei pacchetti software. Vedi l'esempio 1 o l'esempio 3.
- Installa il software utilizzando le rispettive formule.
File YAML di esempio per una policy guest
Esempio 1
Installa il pacchetto
my-package
che deve essere mantenuto aggiornato sulle seguenti istanze 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
Per ulteriori informazioni sull'assegnazione delle policy guest per i pacchetti, vedi il documento di riferimento sulla rappresentazione JSON del pacchetto.
Esempio 2
Installa l'agente Cloud Monitoring utilizzando il gestore di pacchetti yum su tutte le istanze VM che presentano uno dei seguenti prefissi del nome dell'istanza:
test-instance-
odev-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
Per ulteriori informazioni sull'assegnazione delle policy guest per i repository dei pacchetti, consulta il documento di riferimento sulla rappresentazione JSON di PackageRepository.
Esempio 3
Installa
my-package
e rimuovibad-package-1
ebad-package-2
dalle istanze con un insieme specifico di etichette. Aggiungi anche i repository per i gestori di pacchetti 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
- Per ulteriori informazioni sull'assegnazione delle policy guest per i pacchetti, vedi il documento di riferimento sulla rappresentazione JSON del pacchetto.
- Per ulteriori informazioni sull'assegnazione delle policy guest per i repository dei pacchetti, consulta il documento di riferimento sulla rappresentazione JSON di PackageRepository.
Esempio 4
Installa il software da un file MSI ospitato su Cloud Storage in tutte le istanze in
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"
Per ulteriori informazioni sulla configurazione delle policy della formula, consulta il documento di riferimento Rappresentazione JSON di SoftwareRecipe.
Esempio 5
Installa il software eseguendo uno script in linea su tutte le istanze VM che soddisfano i seguenti requisiti:
- Sistema operativo: Red Hat Enterprise Linux 7
- Etichetta:
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
Per ulteriori informazioni sulla configurazione delle policy della formula, consulta il documento di riferimento Rappresentazione JSON di SoftwareRecipe.
Esempio 6
Installa l'applicazione su tutte le istanze Windows utilizzando un programma di installazione eseguibile con il seguente prefisso del nome dell'istanza:
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
Per ulteriori informazioni sulla configurazione delle policy della formula, consulta il documento di riferimento Rappresentazione JSON di SoftwareRecipe.
Crea una policy guest
Quando crei una policy guest, il nome deve soddisfare i seguenti requisiti di denominazione:
- Deve contenere solo lettere minuscole, numeri e trattini.
- Deve iniziare con una lettera.
- Deve terminare con un numero o una lettera.
- Deve avere una lunghezza compresa tra 1 e 63 caratteri.
- Ogni ID della policy deve essere univoco all'interno di un progetto.
Per creare una policy guest, utilizza uno dei seguenti metodi.
gcloud
Utilizza il comando
os-config guest-policies create
per creare una policy guest.gcloud beta compute os-config guest-policies create POLICY_ID \ --file=FILE
Sostituisci quanto segue:
POLICY_ID
: il nome della policy guest che vuoi creareFILE
: il file JSON o YAML contenente le specifiche della policy guest. Per visualizzare configurazioni di esempio, fai riferimento alla sezione File YAML di esempio per una policy guest.
REST
Nell'API, crea una richiesta
POST
al metodoprojects.guestPolicies.create
.POST https://osconfig.googleapis.com/v1beta/projects/PROJECT_ID/guestPolicies?guestPolicyId=POLICY_ID { For more information, see Guest policy JSON }
Sostituisci quanto segue:
PROJECT_ID
: il tuo ID progettoPOLICY_ID
: il nome della policy guest
Per visualizzare configurazioni di esempio, fai riferimento alla sezione File YAML di esempio per una policy guest.
Risoluzione dei problemi
Per risolvere i problemi relativi a una policy guest, vedi Eseguire il debug di una policy guest.
Passaggi successivi
- Scopri di più sulle policy guest del sistema operativo (legacy).
- Gestisci le policy guest.
Salvo quando diversamente specificato, i contenuti di questa pagina sono concessi in base alla licenza Creative Commons Attribution 4.0, mentre gli esempi di codice sono concessi in base alla licenza Apache 2.0. Per ulteriori dettagli, consulta le norme del sito di Google Developers. Java è un marchio registrato di Oracle e/o delle sue consociate.
Ultimo aggiornamento 2025-08-11 UTC.
[[["Facile da capire","easyToUnderstand","thumb-up"],["Il problema è stato risolto","solvedMyProblem","thumb-up"],["Altra","otherUp","thumb-up"]],[["Mancano le informazioni di cui ho bisogno","missingTheInformationINeed","thumb-down"],["Troppo complicato/troppi passaggi","tooComplicatedTooManySteps","thumb-down"],["Obsoleti","outOfDate","thumb-down"],["Problema di traduzione","translationIssue","thumb-down"],["Problema relativo a esempi/codice","samplesCodeIssue","thumb-down"],["Altra","otherDown","thumb-down"]],["Ultimo aggiornamento 2025-08-11 UTC."],[[["This page outlines how to use legacy OS guest policies for maintaining consistent software configurations across virtual machines (VMs)."],["Setting up guest policies involves assigning user permissions, preparing the VM, configuring a guest policy file (JSON or YAML), and then creating the guest policy."],["Guest policies can target specific VMs using criteria such as instance name, label, zone, or operating system, and they support tasks like installing, removing, and updating software packages."],["Creating a guest policy requires a unique policy ID within your project and involves using either the `gcloud` command-line tool or a REST API `POST` request."],["It is important to note that a newer, Generally Available (GA) version of OS policies exists, and this page is specific to the legacy policies, with limited support, and no compliance dashboards, notifications, or alerting."]]],[]] -