Utilizza i criteri del sistema operativo per mantenere configurazioni software coerenti tra le istanze di macchine virtuali (VM) Linux e Windows.
Prima di iniziare
- Rivedi Criteri del sistema operativo e assegnazione dei criteri del sistema operativo.
- 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.
Seleziona la scheda relativa a come prevedi di utilizzare gli esempi in questa pagina:
Console
Quando utilizzi la console Google Cloud per accedere ai servizi e alle API di Google Cloud, non devi configurare l'autenticazione.
gcloud
-
Installa Google Cloud CLI, quindi initialize eseguendo questo comando:
gcloud init
- Imposta una regione e una zona predefinite.
Terraform
Per utilizzare gli esempi Terraform in questa pagina da un ambiente di sviluppo locale, installa e inizializza gcloud CLI, quindi configura Credenziali predefinite dell'applicazione con le tue credenziali utente.
- Installa Google Cloud CLI.
-
Per initialize gcloud CLI, esegui questo comando:
gcloud init
-
Crea credenziali di autenticazione locali per il tuo Account Google:
gcloud auth application-default login
Per ulteriori informazioni, 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, devi utilizzare le credenziali che fornisci a gcloud CLI.
Installa Google Cloud CLI, quindi initialize eseguendo questo comando:
gcloud init
-
Sistemi operativi supportati
Per un elenco completo dei sistemi operativi e delle versioni che supportano i criteri del sistema operativo, vedi Dettagli del sistema operativo.
Autorizzazioni
Poiché puoi utilizzare i criteri del sistema operativo per installare e gestire pacchetti software su una VM, la creazione e la gestione dei criteri del sistema operativo equivale a concedere l'accesso all'esecuzione di codice remoto su una VM. Quando configuri i criteri del sistema operativo, le autorizzazioni IAM vengono utilizzate per controllare l'accesso alle risorse dei criteri e le attività vengono audit registrate.
I proprietari di un progetto hanno accesso completo per creare e gestire le assegnazioni dei criteri 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, ottenere ed elencare le assegnazioni dei criteri del sistema operativo. - OSPolicyAssignment Editor (
roles/osconfig.osPolicyAssignmentEditor
). Contiene le autorizzazioni per aggiornare, recuperare ed elencare le assegnazioni dei criteri del sistema operativo. - OSPolicyAssignment Viewer (
roles/osconfig.osPolicyAssignmentViewer
). Contiene le autorizzazioni per l'accesso di sola lettura per recuperare ed elencare le assegnazioni dei criteri del sistema operativo.
Comando di esempio per impostare le autorizzazioni
Per concedere a un utente l'accesso amministrativo per le assegnazioni dei criteri 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
: nome utente Google Workspace dell'utente
Crea un'assegnazione dei criteri del sistema operativo
Per creare e implementare un'assegnazione dei criteri del sistema operativo, completa i seguenti passaggi:
- Configura VM Manager.
- Assegna le autorizzazioni richieste agli utenti.
- Esamina l'assegnazione dei criteri del sistema operativo e dei criteri del sistema operativo.
- Crea le risorse dei criteri del sistema operativo.
Per creare e implementare l'assegnazione dei criteri del sistema operativo, utilizza uno dei seguenti metodi:
Console
Per creare e implementare un'assegnazione dei criteri del sistema operativo, completa i seguenti passaggi:
- Sul client locale, crea o scarica un criterio di sistema operativo. Deve essere un file JSON o YAML. Per ulteriori informazioni sulla creazione dei criteri del sistema operativo o per visualizzare i criteri di esempio del sistema operativo, consulta Criteri del sistema operativo.
Nella console Google Cloud, vai alla pagina Criteri del sistema operativo.
Fai clic su Crea assegnazione criteri del sistema operativo.
Nella sezione ID assegnazione, fornisci un nome per l'assegnazione dei criteri di sistema operativo. Consulta Convenzione di denominazione delle risorse.
Nella sezione Criteri del sistema operativo, carica il file dei criteri del sistema operativo.
Nella sezione Istanze VM di destinazione, specifica le VM di destinazione.
- Seleziona la zona che contiene le VM a cui vuoi applicare il criterio.
- 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 che eseguono Google Kubernetes Engine specificando quanto segue:
- Famiglia sistema operativo:
ubuntu
- Includi:
env:test
,env:staging
- Escludi:
goog-gke-node
Specifica un piano di implementazione.
- Specifica la dimensione dell'onda (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 dei criteri del sistema operativo in una zona, segui questi passaggi:
Crea una risorsa di assegnazione dei criteri del sistema operativo in formato JSON o YAML. Questo file definisce i criteri del sistema operativo che vuoi applicare alle VM, le VM di destinazione a cui vuoi applicarli e la frequenza di implementazione dei criteri di sistema operativo. Per ulteriori informazioni su questo file e sulle assegnazioni di esempio, consulta Assegnazione dei criteri del sistema operativo.
Utilizza il comando
os-config os-policy-assignments create
per creare e implementare l'assegnazione dei criteri 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
: nome dell'assegnazione dei criteri del sistema operativo. Consulta Convenzione di denominazione delle risorse.ZONE
: zona in cui creare l'assegnazione dei criteri del sistema operativo.OS_POLICY_ASSIGNMENT_FILE
: il percorso assoluto al file di assegnazione dei criteri 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 \ --async
L'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 completo della risorsa per l'operazione. Nell'esempio precedente, il nome completo della risorsa è:
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'implementazione o per annullare un'implementazione. Vedi Implementazioni.
Terraform
Per creare un'assegnazione dei criteri del sistema operativo, utilizza la risorsa
google_os_config_os_policy_assignment
.L'esempio seguente verifica se il server web Apache è in esecuzione su VM CentOS.
Per scoprire come applicare o rimuovere una configurazione Terraform, consulta Comandi Terraform di base.
REST
Per creare un'assegnazione dei criteri del sistema operativo sul client locale, completa i seguenti passaggi:
Crea un'assegnazione dei criteri del sistema operativo. Deve essere un file JSON. Per ulteriori informazioni sulla creazione di assegnazioni dei criteri del sistema operativo o per visualizzare esempi di assegnazioni dei criteri del sistema operativo, consulta Assegnazione dei criteri del sistema operativo.
Se vuoi utilizzare l'assegnazione dei criteri del sistema operativo YAML di esempio, devi convertirla in JSON.
Nell'API, crea una richiesta
POST
per il metodoprojects.locations.osPolicyAssignments.create
.Nel corpo della richiesta, incolla le specifiche di assegnazione dei criteri 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
: nome dell'assegnazione dei criteri del sistema operativoJSON_OS_POLICY
: le specifiche di assegnazione dei criteri del sistema operativo create nel passaggio precedente. Deve essere in formato JSON. Per ulteriori informazioni su parametri e formato, consultaResource: OSPolicyAssignment
.ZONE
: zona in cui creare l'assegnazione dei criteri del sistema operativo
Esempio
Ad esempio, per creare un'assegnazione dei criteri del sistema operativo per Google Cloud Observability che installi agenti di monitoraggio e logging sulle VM selezionate utilizzando l'assegnazione dei criteri di esempio del sistema operativo, completa i seguenti passaggi:
- Converti l'esempio in JSON
- Effettua 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
Il deployment delle assegnazioni dei criteri del sistema operativo viene eseguito 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 la possibilità di intervenire e annullare un'implementazione se le nuove modifiche causano regressioni.
Quando il completamento delle chiamate di metodo a un'API potrebbe richiedere molto tempo, l'API restituisce una LRO (a lunga esecuzione). Per maggiori informazioni sugli LRO, consulta Operazioni a lunga esecuzione.
L'API OS Config crea un LRO ogni volta che crei, aggiorni o elimini un'assegnazione dei criteri del sistema operativo. Ogni LRO restituisce una risorsa dell'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 dei criteri del sistema operativo. Per visualizzare le revisioni di un'assegnazione dei criteri del sistema operativo, consulta Elencare le revisioni delle assegnazioni dei criteri del sistema operativo.
Puoi utilizzare Google Cloud CLI per ottenere i dettagli di un'implementazione o per annullarne un'implementazione.
Visualizza i dettagli di un'implementazione
Per ottenere i dettagli di un'implementazione, usa 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 completo
della risorsa corrispondente all'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 Criteri del sistema operativo.
Fai clic sulla scheda Assegnazioni dei criteri del sistema operativo.
In corrispondenza dell'assegnazione dei criteri del sistema operativo per cui vuoi annullare l'implementazione, fai clic su Azione (> Annulla implementazione.
)Fai clic su Annulla implementazione.
gcloud
Per annullare un'implementazione, 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 completo
della risorsa corrispondente all'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.
Che cosa succede dopo?
- Scopri di più sui criteri del sistema operativo.
- Gestisci le assegnazioni dei criteri del sistema operativo.