Creare un criterio guest (legacy)

Utilizza i criteri guest per mantenere configurazioni software coerenti nelle istanze di macchine virtuali (VM) Linux e Windows.

Per configurare un criterio guest su un insieme di VM, completa i seguenti passaggi:

  1. Assegna le autorizzazioni richieste agli utenti.
  2. Configura la VM.
  3. Configura il file JSON o YAML dei criteri per gli ospiti.
  4. Crea il criterio guest.

Prima di iniziare

  • Esamina le quote di OS Config.
  • Se non l'hai già fatto, configura l'autenticazione. L'autenticazione è la procedura mediante la quale la tua identità viene verificata per l'accesso alle API e ai servizi Google Cloud. Per eseguire codice o esempi da un ambiente di sviluppo locale, puoi eseguire l'autenticazione Compute Engine come segue.

    Select the tab for how you plan to use the samples on this page:

    gcloud

    1. Install the Google Cloud CLI, then initialize it by running the following command:

      gcloud init
    2. Set a default region and zone.
    3. 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

  • Per le VM scelte come target, il criterio guest viene aggiornato ogni volta l'agente si mette in contatto con il servizio. Questo controllo viene eseguito ogni 10-15 minuti.
  • Con questi criteri guest legacy del sistema operativo non sono disponibili dashboard, notifiche o servizi di avviso per la conformità. VM che non eseguono l'agente OS Config non segnalare errori. Per risultati ottimali, utilizza questa funzionalità con OS Inventory Management o qualsiasi altro strumento di monitoraggio della conformità.
  • Una ricetta software con un nome specifico viene eseguita una sola volta quando crei un criterio invitato. Per eseguire di nuovo una ricetta software, devi procedere nel seguente modo:

    1. Rinomina la ricetta software.
    2. Elimina e ricrea il criterio ospite utilizzando la ricetta software rinominata.

Autorizzazioni

Poiché puoi utilizzare i criteri guest per installare e gestire i pacchetti software su una VM, la creazione e la gestione dei criteri guest concedendo l'accesso remoto all'esecuzione di codice 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 registrate. Tuttavia, gli utenti possono comunque di eseguire il codice sulla VM, il che rappresenta un potenziale rischio per la sicurezza. Per ridurre questo, ti consigliamo di fornire solo l'accesso richiesto a ciascun utente.

I proprietari di un progetto hanno accesso completo per creare e gestire i criteri. Dovrai concedere le autorizzazioni a tutti gli altri utenti. Puoi concedere uno dei seguenti ruoli granulari:

  • Amministratore GuestPolicy (roles/osconfig.guestPolicyAdmin). Contiene autorizzazioni per creare, eliminare, aggiornare, recuperare ed elencare i criteri guest.
  • Editor GuestPolicy (roles/osconfig.guestPolicyEditor). Contiene le autorizzazioni per recuperare, aggiornare ed elencare i criteri per gli ospiti.
  • Visualizzatore GuestPolicy (roles/osconfig.guestPolicyViewer). Contiene autorizzazioni per l'accesso di sola lettura per recuperare ed elencare i criteri guest.

Ad esempio, per concedere a un utente amministratore l'accesso ai criteri ospite, esegui il seguente 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 progetto.
  • USER_ID: il nome utente Google Workspace dell'utente.

Configura la VM

Per utilizzare i criteri guest, è necessario configurare VM Manager.

Configura un file yaml o JSON dei criteri guest

Devi fornire le specifiche dei criteri per gli ospiti utilizzando un file JSON o YAML. Per visualizzare configurazioni di esempio, consulta file YAML di criteri per gli ospiti di esempio.

Il file YAML o JSON contiene le seguenti due sezioni principali:

Compiti

Puoi assegnare i criteri guest a tutte le VM del progetto oppure puoi 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 uno dei seguenti caratteristiche:

  • Nome dell'istanza. Vedi l'esempio 1.
  • Prefisso nome istanza. Vedi l'esempio 2.
  • Etichetta istanza. Vedi l'esempio 3.
  • Zona. Vedi l'esempio 4.
  • Informazioni sul sistema operativo, che contengono il nome, la versione e l'architettura del sistema operativo. Vedi l'esempio 5. La os-inventory describe per determinare il nome del sistema operativo, la versione e l'architettura delle VM.

Per assegnare un criterio guest utilizzando le informazioni del sistema operativo, L'agente di configurazione deve inviare le informazioni sul sistema operativo all'ospite per la VM. Per garantire la privacy, per impostazione predefinita le informazioni sul sistema operativo per le VM non sono disponibili. Raggruppare le VM per informazioni sul sistema operativo, devi assicurarti che gli attributi guest e il I servizi di gestione dell'inventario sono abilitati. Per abilitare questi servizi, vedi Configura la tua VM.

Le configurazioni dei criteri guest vengono applicate automaticamente a tutte le nuove VM che corrispondono al compito.

Configurazione obbligatoria

La configurazione richiesta può essere eseguita utilizzando una o più delle seguenti attività:

  • Installa, rimuovi e aggiorna automaticamente i pacchetti software. Vedi l'esempio 1.
  • Configura i repository dei pacchetti software. Consulta l'esempio 1 o l'esempio 3.
  • Installa il software utilizzando le ricette software.

File YAML di esempio per le norme relative agli ospiti

Esempio 1

Installa il pacchetto my-package che deve essere mantenuto aggiornato sulle seguenti istanze VM: my-instance-1 e my-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 norme per gli ospiti per i pacchetti, consulta il documento di riferimento sulla rappresentazione JSON dei pacchetti.

Esempio 2

Installa l'agente Cloud Monitoring utilizzando il gestore di pacchetti yum su tutte le istanze VM che avere uno dei seguenti prefissi di nomi istanza: test-instance- o dev-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 dei criteri guest per i repository dei pacchetti, consulta il documento di riferimento sulla rappresentazione JSON di PackageRepository.

Esempio 3

Installa my-package e rimuovi bad-package-1 e bad-package-2 dalle istanze con un insieme specifico di etichette. Aggiungi anche i repository per i gestori dei 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 software da un file MSI ospitato su Cloud Storage su tutte le istanze in us-east1-b e us-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 dei criteri delle ricette, 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 dei criteri delle ricette, consulta il documento di riferimento Rappresentazione JSON di SoftwareRecipe.

Esempio 6

Installa l'applicazione su tutte le istanze di Windows utilizzando un programma di installazione eseguibile che presenta quanto segue prefisso 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 ulteriori informazioni sulla configurazione dei criteri delle ricette, consulta il documento di riferimento Rappresentazione JSON di SoftwareRecipe.

Crea un criterio guest

Quando crei un criterio guest, il nome deve soddisfare i seguenti requisiti di denominazione:

  • Deve 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

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:

  • POLICY_ID: il nome del criterio per gli ospiti che vuoi creare.
  • FILE: file JSON o YAML contenente le specifiche dei criteri per gli ospiti. Per visualizzare configurazioni di esempio, consulta Esempi di file YAML di criteri guest.

REST

Nell'API, crea una richiesta POST al metodo projects.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 progetto.
  • POLICY_ID: il nome del criterio guest.

Per visualizzare configurazioni di esempio, consulta gli esempi di file YAML dei criteri per gli ospiti.

Risoluzione dei problemi

Per risolvere i problemi relativi a un criterio guest, vedi Eseguire il debug di un criterio guest.

Passaggi successivi