Configurare 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 i criteri del sistema operativo per implementare criteri che automatizzano e centralizzano la gestione dei file all'interno del tuo parco di 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 hanno sudo l'accesso mediante gruppi di OS Login e criteri del sistema operativo.

Nella maggior parte delle configurazioni predefinite, le autorizzazioni dei file auth.log sono impostate su 640 e che il file appartiene al gruppo adm. Un utente a cui non è stato concesso Il ruolo IAM roles/compute.osAdminLogin non fa parte del gruppo adm e non ne dispone sudo e pertanto non dispone dell'accesso in lettura al file.

Sebbene questo tutorial sia incentrato sulla gestione delle autorizzazioni utente per un file specifico, flusso di lavoro può essere modificato e utilizzato per impostare le autorizzazioni su altri file eseguibili su una VM.

Obiettivi

In questo tutorial imparerai a:

  • Come creare un gruppo Linux OS Login
  • Come utilizzare un'assegnazione di criteri 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 basata sull'utilizzo previsto, utilizza il Calcolatore prezzi. I nuovi utenti di Google Cloud potrebbero essere idonei per una prova gratuita.

Una volta completate le attività descritte in questo documento, puoi evitare la fatturazione continua eliminando le risorse che hai creato. Per ulteriori informazioni, consulta la pagina Pulizia.

I nuovi utenti di Google Cloud potrebbero essere idonei per una prova gratuita.

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. Installare o aggiornare 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 al tuo amministratore di Gruppi dell'organizzazione crea un gruppo Linux 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 OS Login

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

Per creare un gruppo Linux OS Login, utilizza la 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 dei criteri del sistema operativo

Puoi utilizzare la modalità Criteri del sistema operativo per automatizzare e centralizzare la configurazione delle VM. Puoi applicare i criteri del sistema operativo alle VM utilizzando le assegnazioni dei criteri del sistema operativo. Creando un'assegnazione di criteri del sistema operativo con un criterio 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 dei criteri del sistema operativo:

  1. Apri un terminale sulla workstation.

  2. Crea un file .yaml di assegnazione del criterio 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 dei criteri del sistema operativo alle VM

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

  1. Applica il criterio 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 dei criteri del sistema operativo viene implementata nelle VM in base alle specifiche di implementazione riportate nel file tutorial-os-policy-assignment.yaml.

  2. Verifica che l'assegnazione dei criteri del sistema operativo sia stata eseguita 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 OS Login

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

Visualizza la documentazione della Guida di Cloud Identity per scoprire come aggiungi un utente al gruppo logaccess.

Esegui la pulizia

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 Comando gcloud compute instances delete:

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

Passaggi successivi