Esegui gli agenti VM su ogni nodo GKE delle organizzazioni


Questa pagina descrive come assicurarsi che VM Manager sia abilitato su tutte le istanze Compute Engine, incluse le VM Google Kubernetes Engine in un'organizzazione, una cartella o un progetto, utilizzando Organization Policy Service.

Questa guida è destinata ai team di sicurezza che vogliono assicurarsi che tutti i programmi richiesti, come gli agenti di sicurezza e monitoraggio, vengano eseguiti su tutte le istanze di un'organizzazione, una cartella o un progetto. Per applicare la configurazione solo con i criteri dell'organizzazione, utilizza questa guida. Per un approccio di configurazione come codice, utilizza Config Sync. Config Sync ti consente di configurare e controllare molti aspetti dei tuoi cluster e offre un valore aggiunto rispetto ai criteri dell'organizzazione.

Prima di leggere questa pagina, assicurati di avere familiarità con VM Manager e i vincoli di Resource Manager.

Questa guida mostra come applicare l'utilizzo di VM Manager in ogni progetto di un'organizzazione o una cartella. Questa guida non mostra come configurare e utilizzare VM Manager con le policy del sistema operativo. Per queste istruzioni, vedi Creare un'assegnazione delle policy del sistema operativo.

Informazioni su VM Manager

VM Manager è una suite di strumenti che possono gestire sistemi operativi per grandi gruppi di macchine virtuali (VM) che eseguono Windows e Linux su Compute Engine. Puoi utilizzare VM Manager per applicare le policy del sistema operativo per personalizzare i programmi eseguiti sulle VM. Ad esempio, puoi definire una policy per installare un agente su una risorsa e riutilizzare questa policy in più risorse. VM Manager è disabilitato per impostazione predefinita nei progettiGoogle Cloud .

Puoi perfezionare la posizione in cui VM Manager applica le policy utilizzando OSPolicyAssignments, che ti consente di limitare l'ambito delle policy del sistema operativo a VM specifiche utilizzando i selettori. Ad esempio, tutte le VM dei nodi GKE hanno l'etichetta goog-gke-node, che puoi scegliere come target con un'assegnazione di policy del sistema operativo.

Criteri dell'organizzazione e VM Manager

Se la tua organizzazione Google Cloud ha più livelli di gerarchia come cartelle e sottocartelle, l'abilitazione manuale di VM Manager in tutti questi progetti potrebbe causare un sovraccarico di gestione non necessario. Puoi richiedere che tutti i progetti nelle cartelle o in un'organizzazione abilitino VM Manager su tutte le VM utilizzando il servizio Organization Policy con il vincolo constraints/compute.requireOsConfig. Alcuni vantaggi dell'applicazione di VM Manager utilizzando una policy dell'organizzazione includono:

  • Tutti i nuovi progetti aggiungono l'etichetta dei metadati enable-osconfig=TRUE a ogni progetto e VM.
  • Se qualcuno tenta di rimuovere questa etichetta o di impostarla su un valore diverso da true, la modifica viene rifiutata.
  • Se qualcuno tenta di creare o aggiornare una VM in modo da impostare la chiave dei metadati enable-osconfig su un valore diverso da true, la modifica viene rifiutata.

Prima di iniziare

Prima di iniziare, assicurati di aver eseguito le seguenti operazioni:

  • Attiva l'API Google Kubernetes Engine.
  • Attiva l'API Google Kubernetes Engine
  • Se vuoi utilizzare Google Cloud CLI per questa attività, installala e poi inizializza gcloud CLI. Se hai già installato gcloud CLI, scarica l'ultima versione eseguendo gcloud components update.
  • Assicurati di utilizzare già VM Manager con le policy del sistema operativo e le assegnazioni delle policy del sistema operativo per eseguire gli agenti sulle VM. Per istruzioni, vedi Crea un'assegnazione delle policy del sistema operativo.
  • Enable the Cloud Resource Manager API, OS Config API APIs.

    Enable the APIs

Limitazioni

Il criterio dell'organizzazione constraints/compute.requireOsConfig presenta le seguenti limitazioni:

  • Le risorse con violazioni preesistenti non vengono modificate dal nuovo criterio dell'organizzazione. Puoi impostare i metadati per il criterio manualmente o utilizzando gcloud sulle risorse esistenti.
  • Chiunque disponga dell'autorizzazione per modificare i metadati sulle istanze Compute Engine nel progetto può disattivare osconfig-agent sulla VM impostando il campo dei metadati osconfig-disabled-features.
  • Se osconfig-agent non è in esecuzione, la VM viene visualizzata come non conforme nella dashboard di VM Manager. Ad esempio, questo potrebbe accadere se un utente ha disattivato manualmente l'agente.

Ruoli obbligatori

Per ottenere le autorizzazioni necessarie per gestire le policy dell'organizzazione, chiedi all'amministratore di concederti il ruolo IAM Amministratore delle policy dell'organizzazione (roles/orgpolicy.policyAdmin) nell'organizzazione. Per saperne di più sulla concessione dei ruoli, consulta Gestisci l'accesso a progetti, cartelle e organizzazioni.

Potresti anche riuscire a ottenere le autorizzazioni richieste tramite i ruoli personalizzati o altri ruoli predefiniti.

Abilita compute.requireOsConfig in un'organizzazione

Dopo aver abilitato VM Manager e definito l'ambito di un OSPolicyAssignment per le tue VM, puoi assicurarti che VM Manager sia abilitato per impostazione predefinita su tutti i nuovi progetti con la policy dell'organizzazione constraints/compute.requireOsConfig. La modalità di applicazione di constraints/compute.requireOsConfig dipende dalla versione dell'API che utilizzi.

API Organization Policy v2

Puoi applicare il vincolo constraints/compute.requireOsConfig a una risorsaGoogle Cloud come una cartella o un'organizzazione utilizzando gcloud CLI o la console Google Cloud .

gcloud

  1. Verifica che il vincolo compute.requireOsConfig non sia già applicato:

    gcloud org-policies describe \
        constraints/compute.requireOsConfig \
        --organization=ORGANIZATION_ID
    

    Sostituisci ORGANIZATION_ID con il tuo ID organizzazione.

    Se un criterio non è impostato, questo comando restituisce un errore NOT_FOUND:

    ERROR: (gcloud.org-policies.describe) NOT_FOUND: Requested entity was not found.
    

    Se la policy esiste, il comando restituisce la policy corrente. L'applicazione di una nuova policy sovrascrive quella esistente, se presente.

  2. Crea un file temporaneo /tmp/policy.yaml per archiviare il criterio:

    name: organizations/ORGANIZATION_ID/policies/constraints/compute.requireOsConfig
    spec:
      rules:
      - enforce: true
    
  3. Esegui il comando set-policy:

    gcloud org-policies set-policy /tmp/policy.yaml
    
  4. Verifica che il nuovo criterio sia applicato:

    gcloud org-policies describe \
        constraints/compute.requireOsConfig --effective \
        --organization=ORGANIZATION_ID
    

    L'output di questo comando è simile al seguente:

    name: organizations/ORGANIZATION_ID/policies/constraints/compute.requireOsConfig
    spec:
      rules:
      - enforce: true
    

console

  1. Nella console Google Cloud , vai alla pagina Policy dell'organizzazione.

    Vai a Policy dell'organizzazione

  2. Nel selettore di progetti, seleziona il progetto, la cartella o l'organizzazione per cui vuoi modificare le policy dell'organizzazione.

  3. Nella pagina Policy dell'organizzazione, utilizza il filtro per cercare compute.requireOsConfig.

  4. Fai clic sul nome della norma per aprire la pagina Dettagli norma.

  5. Fai clic su Gestisci policy per aggiornare la policy dell'organizzazione per questa risorsa.

  6. Nella pagina Modifica policy, seleziona Esegui override della policy dell'unità organizzativa principale.

  7. Seleziona Aggiungi una regola.

  8. In Applicazione, attiva l'applicazione di questa policy dell'organizzazione.

  9. Per applicare la policy, fai clic su Imposta policy.

API Resource Manager v1

  1. Verifica che il vincolo compute.requireOsConfig non sia già applicato:

    gcloud resource-manager org-policies describe constraints/compute.requireOsConfig \
        --organization ORGANIZATION_ID
    

    Sostituisci ORGANIZATION_ID con il tuo ID organizzazione.

    Se non è impostata una policy, questo comando restituisce una policy incompleta, come il seguente esempio:

    constraint: "constraints/compute.requireOsConfig"
    etag: BwVJi0OOESU=
    

    Se la policy esiste, il comando restituisce la policy corrente. L'applicazione di una nuova policy sovrascrive quella esistente, se presente.

  2. Imposta la policy da applicare all'organizzazione:

    gcloud resource-manager org-policies enable-enforce constraints/compute.requireOsConfig \
        --organization ORGANIZATION_ID
    

    L'output di questo comando è simile al seguente:

    booleanPolicy:
      enforced: true
    constraint: constraints/compute.requireOsConfig
    etag: BwVJitxdiwY=
    
  3. Verifica che il nuovo criterio sia applicato:

    gcloud resource-manager org-policies describe constraints/compute.requireOsConfig \
        --effective \
        --organization ORGANIZATION_ID
    

    L'output di questo comando è simile al seguente:

    booleanPolicy:
      enforced: true
    constraint: constraints/compute.requireOsConfig
    

L'applicazione completa delle modifiche alle norme dell'organizzazione può richiedere fino a 15 minuti.

Per ulteriori informazioni su altre norme che puoi applicare o su come modificare o eliminare le norme, consulta la documentazione di Resource Manager.

Passaggi successivi

Scopri di più sui log di controllo di GKE.