Configura l'accesso granulare all'interno delle VM


In Compute Engine, puoi utilizzare OS Login per concedere agli utenti l'accesso alle VM e limitare gli utenti con accesso sudo. Se vuoi controllare quali utenti possono visualizzare o eseguire file ed eseguibili specifici nelle VM, puoi utilizzare le policy del sistema operativo per implementare policy che automatizzano e centralizzano la gestione dei file all'interno del tuo parco VM.

Questo tutorial mostra come concedere l'accesso in visualizzazione al file auth.log (/var/log/auth.log) su più VM a un gruppo di utenti che non dispongono dell'accesso sudo utilizzando i gruppi OS Login e le policy del sistema operativo.

Nella maggior parte delle configurazioni predefinite, i permessi dei file auth.log sono impostati su 640 e il file è di proprietà del gruppo adm. Un utente a cui non è stato concesso il ruolo IAM roles/compute.osAdminLogin non fa parte del gruppo adm, non ha accesso sudo e, di conseguenza, non ha accesso in lettura al file.

Sebbene questo tutorial si concentri sulla gestione delle autorizzazioni dell'utente per un file specifico, il workflow può essere modificato e utilizzato per impostare le autorizzazioni su altri file o eseguibili su una VM.

Obiettivi

In questo tutorial imparerai:

  • Come creare un gruppo Linux di OS Login
  • Come utilizzare un'assegnazione delle policy del sistema operativo per modificare le autorizzazioni di gruppo di un file in più VM contemporaneamente

Costi

In questo documento, utilizzi i seguenti componenti fatturabili di Google Cloud:

Per generare una stima dei costi in base all'utilizzo previsto, utilizza il calcolatore prezzi.

I nuovi Google Cloud utenti potrebbero avere diritto a una prova gratuita.

Al termine delle attività descritte in questo documento, puoi evitare l'addebito di ulteriori costi eliminando le risorse che hai creato. Per ulteriori informazioni, vedi Pulizia.

Prima di iniziare

  1. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  2. Make sure that billing is enabled for your Google Cloud project.

  3. Installa o esegui l'aggiornamento all'ultima versione di Google Cloud CLI.
  4. Assicurati di essere un amministratore di Gruppi Cloud Identity per la tua organizzazione. Se non sei un amministratore di Gruppi, chiedi all'amministratore di Gruppi della tua organizzazione di creare un gruppo Linux di OS Login per te.
  5. Abilita VM Manager

Prepara l'ambiente

Prima di poter concedere l'accesso al file auth.log, devi creare alcune VM.

Crea tre VM utilizzando il comando gcloud compute instances bulk create:

gcloud compute instances bulk create \
    --name-pattern=tutorial-# \
    --zone=us-west1-a \
    --count=3 \
    --labels=vm=tutorial \
    --metadata=enable-oslogin=TRUE

Viene visualizzato un messaggio simile al seguente:

`Bulk create request finished with status message: [VM instances created: 3, failed: 0.]`

Imposta le autorizzazioni di gruppo per il file auth.log

Per concedere a un utente l'accesso in lettura al file auth.log senza concedergli il ruolo IAM roles/compute.osAdminLogin, modifica il gruppo proprietario del file in un gruppo Linux di cui l'utente è membro.

Crea un gruppo Linux di OS Login

Puoi creare un gruppo Linux di OS Login per aggiungere un gruppo Linux supplementare visualizzato su ogni VM su cui è abilitato OS Login. Creando un gruppo Linux di OS Login anziché un gruppo Linux supplementare locale, puoi controllare il gruppo Linux su tutte le VM in modo unificato.

Per creare un gruppo Linux di OS Login, utilizza il comando gcloud beta identity groups create:

gcloud beta identity groups create logaccess@ORGANIZATION_DOMAIN \
    --organization=ORGANIZATION_DOMAIN \
    --posix-group=gid=12345,name=logaccess

Sostituisci ORGANIZATION_DOMAIN con il dominio (example.com) associato alla tua organizzazione.

Crea un'assegnazione delle policy del sistema operativo

Puoi utilizzare le policy del sistema operativo per automatizzare e centralizzare la configurazione delle VM. Puoi applicare le policy del sistema operativo alle VM utilizzando le assegnazioni delle policy del sistema operativo. Creando un'assegnazione delle policy del sistema operativo con una policy del sistema operativo che modifica il gruppo predefinito del file auth.log, puoi modificare il gruppo predefinito del file auth.log in più VM contemporaneamente, anziché applicare la modifica a una VM alla volta.

Per creare un'assegnazione delle policy del sistema operativo:

  1. Apri un terminale sulla tua workstation.

  2. Crea un file .yaml di assegnazione delle policy del sistema operativo eseguendo il seguente comando:

    touch tutorial-os-policy-assignment.yaml
    
  3. Apri il file tutorial-os-policy-assignment.yaml in un editor di testo e aggiungi le seguenti specifiche:

    # OS policy assignment that sets the /var/log/auth.log group to logaccess.
    osPolicies:
     - id: log-access-policy
       mode: ENFORCEMENT
       resourceGroups:
           resources:
             - id: grant-log-access
               exec:
                 validate:
                   # Checks if the group is logaccess. If yes, exits  with code 100. If no,
                   # exits with code 101 and proceeds to the `enforce` step.
                   script:
                     if stat -c '%G' /var/log/auth.log | grep -q 'logaccess'; then exit 100; else exit 101; fi
                   interpreter: SHELL
                 enforce:
                   # Changes the group to logaccess and exits with code 100.
                   script:
                     chgrp logaccess /var/log/auth.log && exit 100
    instanceFilter:
     inclusionLabels:
       - labels:
           vm: tutorial
    rollout:
     disruptionBudget:
       fixed: 10
     minWaitDuration: 30s
    

Applica l'assegnazione delle policy del sistema operativo alle VM

Per applicare l'assegnazione delle policy del sistema operativo alle VM, segui questi passaggi:

  1. Applica la policy del sistema operativo utilizzando il comando gcloud compute os-config os-policy-assignments create:

    gcloud compute os-config os-policy-assignments create log-access-assignment \
       --location=us-west1-a \
       --file=log-access-os-policy-assignment.yaml \
       --async
    

    L'assegnazione delle policy del sistema operativo viene resa disponibile nelle VM in base alle specifiche di implementazione riportate nel file tutorial-os-policy-assignment.yaml.

  2. Verifica che l'assegnazione delle policy del sistema operativo sia stata implementata correttamente nelle VM e che il gruppo predefinito sia stato aggiornato correttamente utilizzando il comando gcloud compute os-config os-policy-assignment-reports list:

    gcloud compute os-config os-policy-assignment-reports list --location=us-west1-a
    

Aggiungi utenti al gruppo Linux di OS Login

Quando aggiungi un utente a un gruppo Linux di OS Login, l'utente eredita le autorizzazioni del gruppo in tutte le VM in cui è abilitato OS Login. Per questo tutorial, qualsiasi utente aggiunto al gruppo logaccess può visualizzare il file auth.log senza il ruolo IAM roles/compute.osAdminLogin.

Consulta la documentazione della guida di Cloud Identity per scoprire come aggiungere un utente al gruppo logaccess.

Libera spazio

Per evitare che al tuo account Google Cloud vengano addebitati costi relativi alle risorse utilizzate in questo tutorial, elimina il progetto che contiene le risorse oppure mantieni il progetto ed elimina le singole risorse.

Elimina il progetto

  1. In the Google Cloud console, go to the Manage resources page.

    Go to Manage resources

  2. In the project list, select the project that you want to delete, and then click Delete.
  3. In the dialog, type the project ID, and then click Shut down to delete the project.

Elimina singole risorse

Elimina le VM che hai creato utilizzando il comando gcloud compute instances delete:

gcloud compute instances delete tutorial-1 tutorial-2 tutorial-3 \
    --zone=us-west1-a

Passaggi successivi