Utilizza i criteri guest per mantenere configurazioni software coerenti tra le istanze di macchine virtuali (VM) Linux e Windows.
Per configurare un criterio guest su un insieme di VM, segui questi passaggi:
- Assegna le autorizzazioni richieste agli utenti.
- Configura la VM.
- Configura il file JSON o YAML del criterio guest.
- Crea il criterio relativo agli invitati.
Prima di iniziare
- Esamina le quote di configurazione del sistema operativo.
-
Se non l'hai ancora fatto, configura l'autenticazione.
L'autenticazione è il processo mediante il quale viene verificata l'identità per l'accesso ai servizi e alle API Google Cloud.
Per eseguire codice o esempi da un ambiente di sviluppo locale, puoi autenticarti in Compute Engine nel seguente modo.
Select the tab for how you plan to use the samples on this page:
gcloud
-
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
- Set a default region and zone.
- Per le VM scelte come target, il criterio guest si aggiorna ogni volta che l'agente effettua il check-in con il servizio. Questo controllo viene eseguito ogni 10-15 minuti.
- Con questi criteri guest del sistema operativo legacy non sono disponibili dashboard per la conformità, notifiche o servizi di avviso. Le VM che non eseguono l'agente OS Config non segnalano errori. Per ottenere risultati ottimali, utilizza questa funzionalità con il servizio OS Inventory Management o qualsiasi altro strumento di monitoraggio della conformità.
Una formula software con un nome specifico viene eseguita una sola volta quando crei un criterio guest. Per eseguire nuovamente una formula software, devi procedere nel seguente modo:
- Rinomina la formula del software.
- Elimina e ricrea il criterio guest utilizzando la formula software rinominata.
- Amministratore GuestPolicy (
roles/osconfig.guestPolicyAdmin
). Contiene le autorizzazioni per creare, eliminare, aggiornare, ottenere ed elencare i criteri guest. - Editor GuestPolicy (
roles/osconfig.guestPolicyEditor
). Contiene le autorizzazioni per scaricare, aggiornare ed elencare i criteri guest. - Visualizzatore GuestPolicy (
roles/osconfig.guestPolicyViewer
). Contiene le autorizzazioni per l'accesso di sola lettura per recuperare ed elencare i criteri guest. PROJECT_ID
: l'ID progetto.USER_ID
: nome utente Google Workspace dell'utente.- La sezione Assegna che contiene l'elenco delle VM di destinazione.
- La sezione relativa alla configurazione obbligatoria contenente lo stato che vuoi mantenere sulle VM.
- Nome istanza. Vedi l'esempio 1.
- Prefisso del nome istanza. Vedi l'esempio 2.
- Etichetta dell'istanza. Vedi l'esempio 3.
- Zona. Vedi l'esempio 4.
- Informazioni sul sistema operativo, contenenti il nome, la versione e l'architettura del sistema operativo. 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.
- Installare, rimuovere e aggiornare automaticamente pacchetti software. Vedi l'esempio 1.
- Configurare i repository di pacchetti software. Vedi esempio 1 o esempio 3.
- Installare software utilizzando formule di software.
- Per maggiori informazioni sull'assegnazione dei criteri guest per i pacchetti, consulta il documento di riferimento Rappresentazione JSON del pacchetto.
- Per maggiori informazioni sull'assegnazione dei criteri guest per i repository pacakage, consulta il documento di riferimento sulla rappresentazione JSON PackageRepository.
- Sistema operativo: Red Hat Enterprise Linux 7
- Etichetta:
color=red
- Contenere solo lettere minuscole, numeri e trattini
- Inizia con una lettera
- Deve terminare con un numero o una lettera
- Deve avere una lunghezza compresa tra 1 e 63 caratteri.
- Ogni ID criterio deve essere univoco all'interno di un progetto
POLICY_ID
: il nome del criterio guest che vuoi creare.FILE
: file JSON o YAML che contiene le specifiche dei criteri guest. Per visualizzare le configurazioni di esempio, consulta Esempi di file YAML dei criteri guest.PROJECT_ID
: il tuo ID progetto.POLICY_ID
: il nome del criterio relativo agli ospiti.- Scopri di più sui criteri guest del sistema operativo (legacy).
- Gestisci i criteri relativi agli invitati.
REST
Per utilizzare gli esempi dell'API REST in questa pagina in un ambiente di sviluppo locale, utilizza le credenziali fornite a gcloud CLI.
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
Per ulteriori informazioni, vedi Esegui l'autenticazione per l'utilizzo di REST nella documentazione sull'autenticazione di Google Cloud.
Limitazioni
Autorizzazioni
Poiché puoi utilizzare criteri guest per installare e gestire pacchetti software su una VM, la creazione e la gestione di criteri guest equivale a concedere l'accesso all'esecuzione di codice remoto su una VM.
Quando configuri i criteri guest, le autorizzazioni IAM vengono utilizzate per controllare l'accesso alla risorsa del criterio e le attività vengono audit registrate. Tuttavia, gli utenti possono comunque eseguire codice sulla VM, il che rappresenta un potenziale rischio per la sicurezza. Per limitare questo problema, ti consigliamo di fornire a ciascun utente solo l'accesso richiesto.
I proprietari di un progetto hanno accesso completo per creare e gestire i criteri. Per tutti gli altri utenti, devi concedere le autorizzazioni. Puoi concedere uno dei seguenti ruoli granulari:
Ad esempio, per concedere a un utente l'accesso amministrativo ai criteri 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:
Configura la VM
Per utilizzare i criteri guest, devi configurare VM Manager.
Configura un file YAML o JSON del criterio guest
Devi fornire le specifiche dei criteri guest utilizzando un file JSON o YAML. Per visualizzare le configurazioni di esempio, consulta la pagina relativa ai file YAML dei criteri guest di esempio.
Il file YAML o JSON contiene le seguenti due sezioni principali:
Assegnazioni
Puoi assegnare criteri guest a tutte le VM nel tuo progetto oppure utilizzare la chiave
assignment
nel file JSON o YAML per scegliere come target un gruppo specifico di VM.Ad esempio, puoi scegliere come target un gruppo di VM utilizzando una qualsiasi delle seguenti caratteristiche:
Per assegnare un criterio guest utilizzando le informazioni del 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 non sono disponibili informazioni sul sistema operativo per le VM. Per raggruppare le VM in base alle informazioni del sistema operativo, devi assicurarti che gli attributi guest e i servizi di gestione dell'inventario del sistema operativo siano abilitati. Per abilitare questi servizi, consulta Configura la tua VM.
Le configurazioni dei criteri guest vengono applicate automaticamente a tutte le nuove VM corrispondenti all'assegnazione.
Configurazione richiesta
La configurazione richiesta può essere eseguita utilizzando una qualsiasi o una combinazione delle seguenti attività:
File YAML dei criteri guest di esempio
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 maggiori informazioni sull'assegnazione dei criteri guest per i pacchetti, consulta il documento di riferimento Rappresentazione JSON del pacchetto.
Esempio 2
Installa l'agente Cloud Monitoring, utilizzando il gestore di pacchetti yum, su tutte le istanze VM che hanno uno dei seguenti prefissi nome di 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 maggiori informazioni sull'assegnazione dei criteri guest per i repository pacakage, consulta il documento di riferimento sulla rappresentazione JSON PackageRepository.
Esempio 3
Installa
my-package
e rimuovibad-package-1
ebad-package-2
dalle istanze con un set specifico di etichette. Aggiungi anche 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
Esempio 4
Installa il software da un MSI ospitato su Cloud Storage su 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 maggiori informazioni sulla configurazione dei criteri delle ricette, consulta il documento di riferimento Rappresentazione JSON SoftwareRecipe.
Esempio 5
Installa il software eseguendo uno script incorporato su tutte le istanze VM che soddisfano i seguenti requisiti:
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 maggiori informazioni sulla configurazione dei criteri delle ricette, consulta il documento di riferimento Rappresentazione JSON SoftwareRecipe.
Esempio 6
Installa l'applicazione in tutte le istanze di Windows utilizzando un programma di installazione eseguibile con il seguente prefisso del nome 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 maggiori informazioni sulla configurazione dei criteri delle ricette, consulta il documento di riferimento Rappresentazione JSON SoftwareRecipe.
Crea un criterio guest
Quando crei un criterio guest, il nome del criterio guest deve soddisfare i seguenti requisiti di denominazione:
Utilizza uno dei seguenti metodi per creare un criterio guest.
gcloud
Utilizza il comando
os-config guest-policies create
per creare un criterio guest.gcloud beta compute os-config guest-policies create POLICY_ID \ --file=FILE
Sostituisci quanto segue:
REST
Nell'API, crea una richiesta
POST
per il 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:
Per visualizzare le configurazioni di esempio, consulta i file YAML dei criteri guest di esempio.
Risoluzione dei problemi
Per risolvere i problemi relativi a un criterio guest, vedi Eseguire il debug di un criterio guest.
Che cosa succede dopo?
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 2024-10-14 UTC.
-