Aggrega e archivia i log dell'organizzazione

Questo documento descrive come gestire le voci di log generate dalle risorse contenute nella tua organizzazione Google Cloud utilizzando un'area di destinazione aggregata non intercettante.

Puoi configurare un sink aggregato in modo che intercetti o meno le voci di log, a seconda che tu voglia controllare quali voci di log possono essere sottoposte a query o indirizzate tramite i sink nelle risorse secondarie. In questo tutorial, creerai un sink aggregato che instrada gli audit log dell'organizzazione a un progetto Google Cloud, che quindi instrada gli audit log aggregati in un bucket di log.

Per ulteriori informazioni sui sink aggregati, consulta Facolta e instrada i log a livello di organizzazione e cartella verso le destinazioni supportate.

In questo tutorial, esegui i seguenti passaggi:

  1. Per iniziare, crea un bucket di log e un sink di log nel progetto Google Cloud in cui vuoi archiviare le voci di log aggregate.

  2. Quindi, creerai un sink aggregato non intercettato a livello di organizzazione per instradare le voci di log al progetto Google Cloud che contiene di log del bucket.

  3. Poi, configura l'accesso in lettura alle visualizzazioni log nel nuovo bucket dei log.

  4. Infine, puoi eseguire query e visualizzare le voci di log dalla pagina Esplora log.

di Gemini Advanced.

Prima di iniziare

Verifica quanto segue:

  • Per ottenere le autorizzazioni necessarie per configurare un canale aggregato, chiedi all'amministratore di concederti i seguenti ruoli IAM nella tua organizzazione:

    • Per creare bucket di log e sink in un progetto: Writer configurazione log (roles/logging.configWriter) - il tuo progetto
    • Per creare un sink aggregato: Writer configurazione log (roles/logging.configWriter) - la tua organizzazione
    • Per concedere i ruoli alle entità: Proprietario (roles/owner) - il tuo progetto

    Per saperne di più sulla concessione dei ruoli, consulta Gestire l'accesso a progetti, cartelle e organizzazioni.

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

  • Se utilizzi Controlli di servizio VPC, devi aggiungere una regola di ingresso al perimetro di servizio. Per ulteriori informazioni Limitazioni dei Controlli di servizio VPC; consulta Sink aggregati e limitazioni di Controlli di servizio VPC.
  • In the Google Cloud console, activate Cloud Shell.

    Activate Cloud Shell

    At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.

Crea un bucket di log

I bucket di log archiviano le voci di log instradate da altri progetti, cartelle o organizzazioni Google Cloud. Per ulteriori informazioni, consulta la pagina sulla configurazione dei bucket dei log.

Per creare il bucket di log nel progetto Google Cloud che vuoi e aggregare le voci di log, completa i seguenti passaggi:

  1. Vai alla console Google Cloud:

    Vai alla console Google Cloud

  2. In un terminale Cloud Shell, esegui Comando gcloud logging buckets create.

    Prima di eseguire questo comando, esegui le seguenti operazioni sostituzioni:

    • BUCKET_NAME: il nome del bucket di log.
    • LOCATION: la località del bucket di log. Dopo aver creato il bucket di log, non puoi cambiarne la posizione.
    • PROJECT_ID: l'identificatore del progetto in cui creare di log del bucket.

    Esegui il comando gcloud logging buckets create:

     gcloud logging buckets create BUCKET_NAME \
       --location=LOCATION --project=PROJECT_ID
    
  3. Verifica che il bucket di log sia stato creato:

    gcloud logging buckets list --project=PROJECT_ID
    

    La risposta del comando è un elenco dei bucket di log nel progetto.

  4. I bucket di log hanno periodi di conservazione configurabili. Se vuoi impostare il periodo di conservazione delle voci di log nel bucket di log, utilizza il comando gcloud logging buckets update. Ad esempio, il comando estende la conservazione delle voci di log di 365 giorni:

    gcloud logging buckets update BUCKET_NAME \
       --location=LOCATION --project=PROJECT_ID \
       --retention-days=365
    

    Per ulteriori informazioni sulle opzioni, consulta gcloud logging buckets update.

Crea il sink di log a livello di progetto

Puoi instradare le voci di log a un bucket di log creando un sink. Un lavello include un filtro di inclusione, i filtri di esclusione e una destinazione. In questo configuri un filtro di inclusione e la destinazione nel nuovo bucket di log. Il sink non contiene filtri di esclusione. Per ulteriori informazioni sui sink, consulta Esegui il routing dei log alle destinazioni supportate.

Per creare un sink che indirizzi le voci di log al bucket di log appena creato, esegui il comando gcloud logging sinks create.

Prima di eseguire il comando seguente, effettua le seguenti sostituzione:

  • PROJECT_LEVEL_SINK_NAME: il nome dell'account a livello di progetto nel sink di log.
  • SINK_DESTINATION: il bucket di log in cui vengono instradate le voci di log. La per un bucket di log è il seguente:

    logging.googleapis.com/projects/PROJECT_ID/locations/LOCATION/buckets/BUCKET_NAME
    
  • PROJECT_ID: l'identificatore del progetto in cui creare il sink dei log. Imposta questa opzione sullo stesso progetto in cui hai creato il log di sincronizzare la directory di una VM con un bucket.

  • Includi le seguenti opzioni:

    • --log-filter : utilizza questa opzione per impostare un filtro corrispondente al log da includere nel sink. In questo tutorial, il filtro è impostato per selezionare tutte le voci del log di controllo. Se non imposti un filtro, tutte le voci di log del tuo progetto Google Cloud vengono inoltrate alla destinazione.
    • --description: utilizza questa opzione per descrivere lo scopo o il caso d'uso del canale.

Esegui la gcloud logging sinks create :

gcloud logging sinks create PROJECT_LEVEL_SINK_NAME SINK_DESTINATION
--project=PROJECT_ID
--log-filter='logName:cloudaudit.googleapis.com' \
--description="Audit logs from my organization" \

Crea il sink aggregato

I sink aggregati combinano e instradano voci di log dalle risorse contenute di un'organizzazione o una cartella in una destinazione.

In questo tutorial viene creato un sink aggregato non intercettante. Ciò significa che ogni voce di log inoltrata dal sink aggregato viene inoltrata anche dai sink nella risorsa da cui ha origine la voce di log. Ad esempio, un che ha origine in un progetto viene instradato dal sink aggregato in quel progetto. Pertanto, puoi archiviare più di una voce di log.

Puoi creare sink di intercettazione. Per ulteriori informazioni, vedi Facolta e instrada i log a livello di organizzazione e cartella verso le destinazioni supportate.

Configura il sink a livello di organizzazione

Per creare un'area di destinazione aggregata non intercettante che inoltra le voci di log a un progetto:

  1. Esegui l' gcloud logging sinks create .

    Prima di eseguire il comando seguente, apporta le seguenti sostituzione:

    • SINK_NAME: il nome del sink di log. Non puoi modificare il nome di un sink dopo averlo creato.
    • PROJECT_ID: l'identificatore del progetto che memorizza il bucket dei log.
    • ORGANIZATION_ID: l'identificatore dell'organizzazione.

    Esegui il comando gcloud logging sinks create:

    gcloud logging sinks create SINK_NAME \
    logging.googleapis.com/projects/PROJECT_ID  \
      --log-filter='logName:cloudaudit.googleapis.com' \
      --description="Audit logs from my organization" \
      --organization=ORGANIZATION_ID \
      --include-children
    

    L'opzione --include-children è importante. Questa opzione garantisce che le voci di log di tutte le cartelle e di tutti i progetti Google Cloud all'interno della tua organizzazione vengano instradate. Per ulteriori informazioni, vedi Facolta e instrada i log a livello di organizzazione verso le destinazioni supportate.

  2. Verifica che il sink sia stato creato:

    gcloud logging sinks list --organization=ORGANIZATION_ID
    
  3. Ottieni il nome dell'account di servizio:

    gcloud logging sinks describe SINK_NAME --organization=ORGANIZATION_ID
    

    L'output è simile al seguente:

    writerIdentity: serviceAccount:o1234567890-ORGANIZATION_ID@gcp-sa-logging.iam.gserviceaccount.com
    
  4. Copia il valore del campo serviceAccount negli appunti.

Concedi l'accesso al sink

Dopo aver creato l'eseguibile sink aggregato, devi concedere l'autorizzazione per scrivere voci di log nel progetto impostato come destinazione. Puoi concedere l'autorizzazione utilizzando la console Google Cloud o modificando il criterio IAM (Identity and Access Management), come descritto in Impostare le autorizzazioni di destinazione.

Per concedere al sink l'autorizzazione a scrivere voci di log, segui questi passaggi:

  1. Nella console Google Cloud, vai alla pagina IAM:

    Vai a IAM

    Se utilizzi la barra di ricerca per trovare questa pagina, seleziona il risultato con il sottotitolo IAM e Console di amministrazione.

  2. Seleziona il progetto Google Cloud che contiene il bucket dei log.

  3. Fai clic su Concedi l'accesso e aggiungi il account di servizio come nuova entità. Non includere il prefisso serviceAccount:.

  4. Nel menu Seleziona un ruolo, scegli Writer log.

  5. Fai clic su Salva.

Genera voci di log per facilitare la verifica del sink

Per verificare che lo scommettitore aggregato sia configurato correttamente, prova quanto segue:

  1. Genera le voci di audit log che devono essere instradate al bucket di log.

    • Se nella tua organizzazione sono presenti molti progetti Google Cloud, potresti avere un volume di traffico sufficiente per i log di controllo da non doverli creare per la convalida. Vai al passaggio successivo.

    • In caso contrario, vai a un progetto diverso, crea un'istanza VM di Compute Engine e poi elimina l'istanza che hai creato. Gli audit log vengono scritti quando viene creata, avviata ed eliminata una VM.

  2. Per visualizzare i log di controllo, segui la procedura descritta nella sezione Visualizzare i log nella pagina Esplora log. Assicurati di selezionare la visualizzazione _AllLogs.

Configurare l'accesso in lettura a una visualizzazione del log su un bucket di log

Quando crei un bucket di log, Cloud Logging crea automaticamente una vista log denominata _AllLogs. Questa visualizzazione include ogni voce di log archiviata nel bucket di log.

Per limitare un'entità ad avere accesso solo a voci di log specifiche, crea una visualizzazione dei log e poi esegui una delle seguenti operazioni:

  • Concedi il ruolo roles/logging.viewAccessor insieme a una condizione IAM che limiti la concessione alla visualizzazione dei log.

  • Nel criterio IAM associato alla visualizzazione del log, per concedere l'accesso a un'entità. Consigliamo questo approccio quando crei un numero elevato di visualizzazioni di log.

Per ulteriori informazioni su questi due approcci, vedi Controllare l'accesso a una visualizzazione del log.

Nei passaggi successivi, concedi a un'entità il ruolo roles/logging.viewAccessor e una condizione IAM che limita la concessione alla vista denominata _AllLogs:

  1. Nella console Google Cloud, vai alla pagina IAM:

    Vai a IAM

    Se utilizzi la barra di ricerca per trovare questa pagina, seleziona il risultato con il sottotitolo IAM e Console di amministrazione.

  2. Seleziona il progetto Google Cloud che contiene il bucket dei log.

  3. Fai clic su Aggiungi.

  4. Aggiungi un'entità nel campo Nuova entità.

  5. Nel menu Seleziona un ruolo, scegli Funzione di accesso delle viste log.

    Se non aggiungi una condizione a questo ruolo, l'entità ha accesso a tutte le visualizzazioni dei log in tutti i bucket dei log definiti dall'utente nel progetto Google Cloud.

  6. Aggiungi una condizione IAM all'associazione:

    1. Fai clic su Aggiungi condizione, inserisci un titolo e una descrizione.
    2. Nel menu Tipo di condizione, scorri fino a Risorsa e poi seleziona Nome.
    3. Nel menu Operatore, seleziona Termina con.
    4. Nel campo Valore, inserisci il nome completo della visualizzazione del log:

      locations/LOCATION/buckets/BUCKET_NAME/views/_AllLogs
      
    5. Fai clic su Salva per salvare la condizione.

  7. Fai clic su Salva per salvare la rilegatura.

Visualizzare le voci di log nella pagina Esplora log

Per visualizzare le voci di log nel bucket di log, segui questi passaggi:

  1. Nella console Google Cloud, vai alla pagina Esplora log:

    Vai a Esplora log

    Se utilizzi la barra di ricerca per trovare questa pagina, seleziona il risultato con il sottotitolo Logging.

  2. Seleziona Perfeziona ambito.

  3. Nel riquadro Perfeziona ambito, seleziona Visualizzazione log.

  4. Seleziona la visualizzazione o le visualizzazioni di log di cui vuoi visualizzare le voci. Ad esempio, per visualizzare tutte le voci di log, seleziona la visualizzazione denominata _AllLogs.

  5. Fai clic su Applica.

    Esplora log viene aggiornato per mostrare le voci di log del bucket di log. Per informazioni sull'utilizzo di Esplora log, consulta Utilizzo di Esplora log.