Abilitazione degli audit log

Questo documento descrive come abilitare e utilizzare gli audit log di Cloud per i cluster Anthos su Bare Metal. I cluster Anthos su Bare Metal utilizzano l'audit logging di Kubernetes, per mantenere un record cronologico delle chiamate effettuate a un server API Kubernetes di un cluster. Gli audit log sono utili per analizzare le richieste API sospette e per raccogliere statistiche.

Se gli audit log di Cloud sono abilitati, gli audit log vengono scritti in Cloud Audit Logs nel tuo progetto Google Cloud. La scrittura negli audit log di Cloud ha diversi vantaggi rispetto alla scrittura su disco o persino all'acquisizione dei log in un sistema di logging on-premise:

  • Gli audit log per tutti i cluster Anthos possono essere centralizzati.
  • Le voci di log scritte in Cloud Audit Logs sono immutabili.
  • Le voci degli audit log di Cloud vengono conservate per 400 giorni.
  • Gli audit log di Cloud sono inclusi nel prezzo di Anthos.
  • Puoi configurare i cluster Anthos su Bare Metal per scrivere i log su disco o su Cloud Audit Logs.

Audit logging basato su disco

Per impostazione predefinita, gli audit log nei cluster Anthos su Bare Metal vengono scritti in un disco permanente in modo che i cluster si riavviino e gli upgrade non scompaiano i log. I cluster Anthos su Bare Metal conservano fino a 1 GB di voci di log di controllo.

Puoi accedere agli audit log basati su disco accedendo ai nodi del piano di controllo. I log si trovano nella directory /var/log/apiserver/.

Cloud Audit Logs

Se sono abilitati gli audit log di Cloud, le voci degli audit log per le attività di amministrazione di tutti i server API Kubernetes vengono inviate a Google Cloud. Queste voci di log sono archiviate sotto il nome del progetto e la località del cluster. Per eseguire il buffer e scrivere voci di log in Cloud Audit Logs, i cluster Anthos su Bare Metal eseguono il deployment di un pod audit-proxy nel cluster di amministrazione. Questo pod è disponibile anche come container sidecar sui cluster utente.

Limitazioni

Audit log di Cloud per i cluster Anthos su Bare Metal è una funzionalità di anteprima e presenta le seguenti limitazioni:

  • Il logging dell'accesso ai dati non è supportato.
  • La modifica del criterio di controllo di Kubernetes non è supportata.
  • Gli audit log di Cloud non sono resilienti alle interruzioni di rete estese. Se le voci di log non possono essere esportate in Google Cloud, vengono memorizzate nella cache in un buffer di disco da 10 GB. Se il buffer si riempie, le voci successive vengono eliminate.
  • Gli audit log di Cloud possono essere abilitati solo quando si creano nuovi cluster 1.8.0. L'abilitazione degli audit log di Cloud sui cluster esistenti tramite l'upgrade non è supportata per l'anteprima delle funzionalità.

Crea un account di servizio per Cloud Audit Logs

Prima di poter abilitare Cloud Logging e Cloud Monitoring con i cluster Anthos su Bare Metal, devi configurare quanto segue:

  1. Crea un'area di lavoro di Cloud Monitoring all'interno del progetto Google Cloud, se non ne hai già uno.

    Tutto questo è possibile in Google Cloud Console. Fai clic sul pulsante seguente e segui il flusso di lavoro.

    Vai a Monitoring

  2. Fai clic sui seguenti pulsanti per abilitare le API richieste:

    Abilita l'API Anthos Audit

    Abilita l'API Stackdriver

    Abilita l'API Monitoring

    Abilita l'API Logging

  3. Assegna i seguenti ruoli IAM all'account di servizio utilizzato dagli agenti Stackdriver:

    • logging.logWriter
    • monitoring.metricWriter
    • stackdriver.resourceMetadata.writer
    • monitoring.dashboardEditor

Abilita audit log di Cloud durante la creazione di un cluster

Per utilizzare gli audit log di Cloud con i cluster Anthos su Bare Metal, segui le normali istruzioni di creazione del cluster, ma apporta la seguente modifica al file di configurazione del cluster prima di eseguire il comando bmctl create cluster:

  1. Rimuovi il commento dal campo disableCloudAuditLogging nel file di configurazione del cluster e assicurati che sia impostato su false come mostrato nell'esempio seguente:

    ...
    clusterOperations:
        # Cloud project for logs and metrics.
        projectID: `PROJECT_ID`
        # Cloud location for logs and metrics.
        location: us-central1
        # Enable Cloud Audit Logging if uncommented and set to false.
        disableCloudAuditLogging: false
    ...
    

    Il resto del processo di creazione del cluster è lo stesso. Per ulteriori informazioni e link alle istruzioni, consulta Creazione di cluster: panoramica.

Audit log di Cloud

console

  1. Nella console Google Cloud, vai alla pagina Log nel menu Logging.

    Vai alla pagina Log

  2. Nella casella Filtra per etichetta o testo, fai clic sulla freccia giù per aprire il menu a discesa. Dal menu, scegli Converti in filtro avanzato.

  3. Compila la casella di testo con il seguente filtro:

    resource.type="k8s_cluster"
    logName="projects/PROJECT_ID/logs/externalaudit.googleapis.com%2Factivity"
    protoPayload.serviceName="anthosgke.googleapis.com"
    

    Sostituisci PROJECT_ID con l'ID progetto.

  4. Fai clic su Invia filtro per visualizzare tutti gli audit log dei cluster Anthos su VMware configurati per l'accesso a questo progetto.

gcloud

Elenca le prime due voci di log nel log Attività dell'amministratore del tuo progetto che si applicano al tipo di risorsa k8s_cluster:

gcloud logging read \
    'logName="projects/PROJECT_ID/logs/externalaudit.googleapis.com%2Factivity" \
    AND resource.type="k8s_cluster" \
    AND protoPayload.serviceName="anthosgke.googleapis.com" ' \
    --limit 2 \
    --freshness 300d

Sostituisci PROJECT_ID con l'ID progetto.

L'output mostra due voci di log. Tieni presente che per ogni voce di log, il valore del campo logName è
projects/<var>PROJECT_ID</var>/logs/externalaudit.googleapis.com%2Factivity e protoPayload.serviceName è uguale a anthosgke.googleapis.com.

Criteri di audit

Il comportamento degli audit log di Cloud è determinato da un criterio di audit logging di Kubernetes configurato in modo statico. La modifica di questo criterio non è attualmente supportato, ma sarà disponibile in una release futura.