Utilizza le policy del sistema operativo per mantenere configurazioni software coerenti nelle istanze di macchine virtuali (VM) Linux e Windows.
Prima di iniziare
- Rivedi Policy del sistema operativo e assegnazione delle policy.
- Esamina le quote di OS Config.
- Per generare audit log per gli eventi di VM Manager, attiva gli audit log di accesso ai dati.
-
Se non l'hai ancora fatto, configura l'autenticazione.
L'autenticazione verifica la tua identità per l'accesso ad API e servizi Google Cloud . Per eseguire
codice o esempi da un ambiente di sviluppo locale, puoi autenticarti su
Compute Engine selezionando una delle seguenti opzioni:
Seleziona la scheda relativa a come intendi utilizzare i campioni in questa pagina:
Console
Quando utilizzi la console Google Cloud per accedere ai servizi Google Cloud e alle API, non devi configurare l'autenticazione.
gcloud
-
Installa Google Cloud CLI. Dopo l'installazione, inizializza Google Cloud CLI eseguendo il comando seguente:
gcloud initSe utilizzi un provider di identità (IdP) esterno, devi prima accedere a gcloud CLI con la tua identità federata.
-
- Imposta una regione e una zona predefinite.
-
Installa Google Cloud CLI.
-
Se utilizzi un provider di identità (IdP) esterno, devi prima accedere a gcloud CLI con la tua identità federata.
-
Se utilizzi una shell locale, crea credenziali di autenticazione locali per il tuo account utente:
gcloud auth application-default login
Non è necessario eseguire questa operazione se utilizzi Cloud Shell.
Se viene restituito un errore di autenticazione e utilizzi un provider di identità (IdP) esterno, verifica di aver acceduto a gcloud CLI con la tua identità federata.
Terraform
Per utilizzare gli esempi di Terraform in questa pagina in un ambiente di sviluppo locale, installa e inizializza gcloud CLI, quindi configura Credenziali predefinite dell'applicazione con le tue credenziali utente.
Per saperne di più, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
REST
Per utilizzare gli esempi di API REST in questa pagina in un ambiente di sviluppo locale, utilizzi le credenziali che fornisci a gcloud CLI.
Installa Google Cloud CLI.
Se utilizzi un provider di identità (IdP) esterno, devi prima accedere a gcloud CLI con la tua identità federata.
Per saperne di più, consulta Autenticati per usare REST nella documentazione sull'autenticazione di Google Cloud .
Sistemi operativi supportati
Per un elenco completo dei sistemi operativi e delle versioni che supportano le policy del sistema operativo, consulta Dettagli del sistema operativo.
Autorizzazioni
Poiché puoi utilizzare le policy del sistema operativo 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 del sistema operativo, le autorizzazioni IAM vengono utilizzate per controllare l'accesso alle risorse delle policy e le attività vengono registrate nell'audit log.
I proprietari di un progetto hanno accesso completo per creare e gestire le assegnazioni delle policy del sistema operativo. Per tutti gli altri utenti, devi concedere le autorizzazioni. Puoi concedere uno dei seguenti ruoli granulari:
- OSPolicyAssignment Admin (
roles/osconfig.osPolicyAssignmentAdmin). Contiene le autorizzazioni per creare, eliminare, aggiornare, recuperare ed elencare le assegnazioni delle policy del sistema operativo. - OSPolicyAssignment Editor (
roles/osconfig.osPolicyAssignmentEditor). Contiene le autorizzazioni per aggiornare, recuperare ed elencare le assegnazioni delle policy del sistema operativo. - OSPolicyAssignment Viewer (
roles/osconfig.osPolicyAssignmentViewer). Contiene le autorizzazioni per l'accesso di sola lettura per ottenere ed elencare le assegnazioni delle policy del sistema operativo.
Esempio di comando per impostare le autorizzazioni
Per concedere a un utente l'accesso amministrativo alle assegnazioni delle policy del sistema operativo, esegui questo comando:
gcloud projects add-iam-policy-binding PROJECT_ID \
--member user:USER_ID@gmail.com \
--role roles/osconfig.osPolicyAssignmentAdmin
Sostituisci quanto segue:
PROJECT_ID: l'ID progettoUSER_ID: il nome utente di Google Workspace dell'utente
Crea un'assegnazione delle policy del sistema operativo
Per creare ed eseguire il rollout di un'assegnazione di policy del sistema operativo, completa i seguenti passaggi:
- Configura VM Manager.
- Assegna le autorizzazioni richieste agli utenti.
- Rivedi Policy del sistema operativo e assegnazione delle policy.
- Crea le risorse delle policy del sistema operativo.
Per creare e implementare l'assegnazione delle policy del sistema operativo, utilizza uno dei seguenti metodi:
Console
Per creare e implementare un'assegnazione di policy del sistema operativo, completa i seguenti passaggi:
- Sul client locale, crea o scarica una policy del sistema operativo. Deve essere un file JSON o YAML. Per ulteriori informazioni sulla creazione di policy del sistema operativo o per visualizzare policy del sistema operativo di esempio, consulta Policy del sistema operativo.
Nella console Google Cloud , vai alla pagina Policy del sistema operativo.
Fai clic su Crea zonale.
Nella sezione ID assegnazione, fornisci un nome per l'assegnazione della policy del sistema operativo. Consulta Convenzione di denominazione delle risorse.
Nella sezione Policy del sistema operativo, carica il rispettivo file.
Nella sezione Istanze VM di destinazione, specifica le VM di destinazione.
- Seleziona la zona contenente le VM a cui vuoi applicare la policy.
- Seleziona le famiglie di sistemi operativi.
- (Facoltativo) Puoi filtrare ulteriormente le VM specificando le etichette di inclusione ed esclusione.
Ad esempio, puoi selezionare tutte le VM Ubuntu nel tuo ambiente di test ed escludere quelle su cui è in esecuzione Google Kubernetes Engine specificando quanto segue:
- Nome breve del sistema operativo:
ubuntu - Includi:
env:test,env:staging - Escludi:
goog-gke-node

Specifica un piano di rollout.
- Specifica la dimensione di wave (detta anche budget di interruzione). Ad esempio: 10%.
- Specifica il tempo di attesa. Ad esempio, 15 minuti.

Fai clic su Avvia implementazione.
gcloud
Per creare e implementare un'assegnazione delle policy del sistema operativo in una zona, completa i seguenti passaggi:
Crea una risorsa di assegnazione delle policy del sistema operativo in formato JSON o YAML. Questo file definisce le policy del sistema operativo da applicare alle VM, le VM di destinazione a cui applicare le policy e la velocità di implementazione con cui applicare le policy del sistema operativo. Per ulteriori informazioni su questo file e sugli esempi di assegnazione, consulta Assegnazione delle policy del sistema operativo.
Utilizza il comando
os-config os-policy-assignments createper creare e implementare l'assegnazione delle policy del sistema operativo in una località specificata.gcloud compute os-config os-policy-assignments create OS_POLICY_ASSIGNMENT_ID \ --location=ZONE \ --file=OS_POLICY_ASSIGNMENT_FILE \ --async
Sostituisci quanto segue:
OS_POLICY_ASSIGNMENT_ID: il nome dell'assegnazione delle policy del sistema operativo. Consulta Convenzione di denominazione delle risorse.ZONE: la zona in cui creare l'assegnazione delle policy del sistema operativo.OS_POLICY_ASSIGNMENT_FILE: il percorso assoluto del file di assegnazione delle policy del sistema operativo creato nel passaggio precedente.
Esempio
gcloud compute os-config os-policy-assignments create my-os-policy-assignment \ --location=asia-south1-a \ --file=/downloads/assignment-config.yaml \ --asyncL'output è simile al seguente:
Create request issued for: [my-os-policy-assignment] Check operation [projects/384123488288/locations/asia-south1-a/osPolicyAssignments/my-os-policy-assignment/operations/fb2011d6-61de-46f1-afdb-bc96bdb3fbaa] for status.
Prendi nota del nome risorsa completo dell'operazione. Nell'esempio precedente, il nome risorsa completo è:
projects/384123488288/locations/asia-south1-a/osPolicyAssignments/my-os-policy-assignment/operations/fb2011d6-61de-46f1-afdb-bc96bdb3fbaa
Puoi utilizzare questo nome completo della risorsa per ottenere i dettagli di un rollout o per annullarlo. Vedi Implementazioni.
Terraform
Per creare un'assegnazione delle policy del sistema operativo, utilizza la risorsa
google_os_config_os_policy_assignment.L'esempio seguente verifica se il server web Apache è in esecuzione sulle VM CentOS.
Per scoprire come applicare o rimuovere una configurazione Terraform, consulta Comandi Terraform di base.
REST
Per creare un'assegnazione di policy del sistema operativo sul client locale, completa i seguenti passaggi:
Crea un'assegnazione delle policy del sistema operativo. Deve essere un file JSON. Per ulteriori informazioni sulla creazione di assegnazioni delle policy del sistema operativo o per visualizzare esempi di assegnazioni delle policy del sistema operativo, consulta Assegnazione delle policy del sistema operativo.
Se vuoi utilizzare l'assegnazione delle policy del sistema operativo YAML di esempio, devi convertirla in JSON.
Nell'API, crea una richiesta
POSTal metodoprojects.locations.osPolicyAssignments.create.Nel corpo della richiesta, incolla le specifiche di assegnazione delle policy del sistema operativo del passaggio precedente.
POST https://osconfig.googleapis.com/v1/projects/PROJECT_ID/locations/ZONE/osPolicyAssignments?osPolicyAssignmentId=OS_POLICY_ASSIGNMENT_ID { JSON_OS_POLICY }Sostituisci quanto segue:
PROJECT_ID: il tuo ID progettoOS_POLICY_ASSIGNMENT_ID: il nome dell'assegnazione delle policy del sistema operativoJSON_OS_POLICY: le specifiche dell'assegnazione delle policy del sistema operativo create nel passaggio precedente. Deve essere in formato JSON. Per ulteriori informazioni sui parametri e sul formato, vediResource: OSPolicyAssignmentZONE: la zona in cui creare l'assegnazione delle policy del sistema operativo
Esempio
Ad esempio, per creare un'assegnazione delle policy del sistema operativo per Google Cloud Observability che installi agenti di monitoraggio e logging sulle VM selezionate utilizzando l'assegnazione delle policy del sistema operativo di esempio, completa i seguenti passaggi:
- Converti il campione in JSON
- Invia la seguente richiesta:
POST https://osconfig.googleapis.com/v1/projects/PROJECT_ID/locations/ZONE/osPolicyAssignments?osPolicyAssignmentId=OS_POLICY_ASSIGNMENT_ID { "osPolicies": [ { "id": "setup-repo-and-install-package-policy", "mode": "ENFORCEMENT", "resourceGroups": [ { "resources": [ { "id": "setup-repo", "repository": { "yum": { "id": "google-cloud-monitoring", "displayName": "Google Cloud Monitoring Agent Repository", "baseUrl": "https://packages.cloud.google.com/yum/repos/google-cloud-monitoring-el8-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" ] } } }, { "id": "install-pkg", "pkg": { "desiredState": "INSTALLED", "yum": { "name": "stackdriver-agent" } } } ] } ] } ], "instanceFilter": { "inclusionLabels": [ { "labels": { "used_for": "testing" } } ] }, "rollout": { "disruptionBudget": { "fixed": 10 }, "minWaitDuration": { "seconds": 300 } } }
Implementazioni
Le assegnazioni delle policy del sistema operativo vengono implementate in base a una frequenza di implementazione. Ciò significa che le assegnazioni che hanno come target un insieme di VM possono essere implementate gradualmente e non vengono applicate immediatamente a tutte le VM. Le modifiche vengono implementate gradualmente per darti l'opportunità di intervenire e annullare un'implementazione se le nuove modifiche causano regressioni.
Quando le chiamate di metodi a un'API potrebbero richiedere molto tempo per essere completate, l'API restituisce un'operazione a lunga esecuzione (LRO). Per saperne di più sulle operazioni a lunga esecuzione, consulta Operazioni a lunga esecuzione.
L'API OS Config crea un'operazione di lunga durata ogni volta che crei, aggiorni o elimini un'assegnazione di policy del sistema operativo. Ogni LRO restituisce una risorsa di operazione. Questa risorsa dell'operazione è simile alla seguente:
Create request issued for: [my-os-policy-assignment] Check operation [projects/384123488288/locations/asia-south1-a/osPolicyAssignments/my-os-policy-assignment/operations/fb2011d6-61de-46f1-afdb-bc96bdb3fbaa] for status.
Ogni operazione di creazione, aggiornamento o eliminazione genera anche una nuova revisione dell'assegnazione delle policy del sistema operativo. Per visualizzare le revisioni di un'assegnazione delle policy del sistema operativo, consulta Elenca le revisioni di un'assegnazione delle policy del sistema operativo.
Puoi utilizzare Google Cloud CLI per ottenere i dettagli di un rollout o per annullarlo.
Visualizzare i dettagli di un'implementazione
Per ottenere i dettagli di un'implementazione, utilizza il
comando os-config os-policy-assignments operations describe.
gcloud compute os-config os-policy-assignments operations describe FULLY_QUALIFIED_OPERATION_NAME
Sostituisci FULLY_QUALIFIED_OPERATION_NAME con il nome della risorsa
completamente qualificato per l'operazione restituita dall'operazione di creazione, aggiornamento o eliminazione.
Esempio
gcloud compute os-config os-policy-assignments operations describe \
projects/384123488288/locations/asia-south1-a/osPolicyAssignments/my-os-policy-assignment/operations/fb2011d6-61de-46f1-afdb-bc96bdb3fbaa
Output di esempio
done: true
metadata:
'@type': type.googleapis.com/google.cloud.osconfig.$$api-version$$.OSPolicyAssignmentOperationMetadata
apiMethod: CREATE
osPolicyAssignment: projects/3841234882888/locations/asia-south1-a/osPolicyAssignments/my-os-policy-assignment@cfb78790-41d8-40d1-b8a1-1eaf6011b909
rolloutStartTime: '2021-04-15T00:53:52.963569Z'
rolloutState: SUCCEEDED
rolloutUpdateTime: '2021-04-15T00:53:53.094041Z'
name: projects/3841234882888/locations/asia-south1-a/osPolicyAssignments/my-os-policy-assignment/operations/cfb78790-41d8-40d1-b8a1-1eaf6011b909
response:
'@type': type.googleapis.com/google.cloud.osconfig.$$api-version$$.OSPolicyAssignment
baseline: true
description: My test policy
instanceFilter:
inclusionLabels:
- labels:
label-key-not-targeting-instances: label-value-not-targeting-instances
name: projects/3841234882888/locations/asia-south1-a/osPolicyAssignments/my-os-policy-assignment
osPolicies:
- id: q-test-policy
mode: ENFORCEMENT
resourceGroups:
- osFilter:
osShortName: centos
osVersion: '7'
resources:
- id: add-repo
repository:
yum:
baseUrl: https://packages.cloud.google.com/yum/repos/google-cloud-ops-agent-el7-x86_64-all
Annullare un'implementazione
Console
Nella console Google Cloud , vai alla pagina Policy del sistema operativo.
Fai clic sulla scheda Assegnazioni zonali.
Per l'assegnazione delle policy del sistema operativo di cui vuoi annullare l'implementazione, fai clic su Azione () > Annulla implementazione.
Fai clic su Annulla implementazione.
gcloud
Per annullare un rollout, utilizza il
comando gcloud compute os-config os-policy-assignments operations cancel.
gcloud compute os-config os-policy-assignments operations cancel FULLY_QUALIFIED_OPERATION_NAME
Sostituisci FULLY_QUALIFIED_OPERATION_NAME con il nome della risorsa
completamente qualificato per l'operazione restituita dall'operazione di creazione, aggiornamento o eliminazione.
Esempio
gcloud compute os-config os-policy-assignments operations cancel \
projects/384123488288/locations/asia-south1-a/osPolicyAssignments/my-os-policy-assignment/operations/fb2011d6-61de-46f1-afdb-bc96bdb3fbaa
Se il comando ha esito positivo, non viene restituito alcun output.
Passaggi successivi
- Scopri di più sulle policy del sistema operativo.
- Gestisci le assegnazioni delle policy del sistema operativo.