Monitorare i pattern di utilizzo di chiavi e account di servizio

Questa pagina spiega come utilizzare Cloud Monitoring per visualizzare le metriche di utilizzo per gli account di servizio e le chiavi degli account di servizio. Queste metriche consentono di visualizzare e monitorare i pattern di utilizzo, utili a identificare le anomalie in modo automatico o manuale.

Gli account di servizio e le chiavi degli account di servizio vengono visualizzati in queste metriche se vengono utilizzate per chiamare qualsiasi API di Google, comprese le API che non fanno parte di Google Cloud. Le metriche includono le chiamate API riuscite e non riuscite. Ad esempio, se una chiamata API non va a buon fine perché il chiamante non è autorizzato a chiamare l'API o perché la richiesta fa riferimento a una risorsa che non esiste, nelle metriche vengono visualizzati l'account di servizio o la chiave utilizzati per la chiamata API.

Le chiavi degli account di servizio vengono visualizzate anche in queste metriche se un sistema elenca le chiavi durante il tentativo di autenticazione di una richiesta, anche se il sistema non utilizza la chiave per autenticare la richiesta. Questo comportamento è più comune quando si utilizzano URL firmati per Cloud Storage o durante l'autenticazione in applicazioni di terze parti. Di conseguenza, è possibile visualizzare le metriche di utilizzo per le chiavi che non sono state utilizzate per l'autenticazione.

Monitoring conserva le metriche degli account di servizio per 6 settimane. Se hai bisogno di accedere ai dati per un periodo di tempo più lungo, puoi esportare periodicamente i risultati in BigQuery. Per ulteriori informazioni, consulta Esportazione delle metriche di Monitoring nella documentazione delle soluzioni.

Dopo aver utilizzato un account di servizio o una chiave dell'account di servizio, le metriche sull'utilizzo sono generalmente disponibili entro pochi minuti.

Prima di iniziare

  • Abilita le API IAM and Cloud Monitoring.

    Abilita le API

Ruoli obbligatori

Per ottenere le autorizzazioni necessarie per visualizzare l'utilizzo recente di chiavi e account di servizio, chiedi all'amministratore di concederti il ruolo IAM Visualizzatore Monitoring (roles/monitoring.viewer) per il progetto. Per saperne di più sulla concessione dei ruoli, consulta Gestire l'accesso.

Potresti anche essere in grado di ottenere le autorizzazioni richieste tramite i ruoli personalizzati o altri ruoli predefiniti.

Visualizza le metriche di utilizzo per tutte le chiavi o gli account di servizio

Per visualizzare le metriche di utilizzo per gli account di servizio o le chiavi degli account di servizio, segui questi passaggi:

Console

Per visualizzare le metriche per una risorsa monitorata utilizzando Metrics Explorer, procedi come segue:

  1. Nel pannello di navigazione della console Google Cloud, seleziona Monitoring e poi  Metrics Explorer:

    Vai a Metrics Explorer

  2. Nell'elemento Metrica, espandi il menu Seleziona una metrica, inserisci IAM Service Account nella barra dei filtri, quindi utilizza i sottomenu per selezionare un tipo di risorsa e una metrica specifici:
    1. Nel menu Risorse attive, seleziona IAM Service Account (Account di servizio IAM).
    2. Nel menu Categorie di metriche attive, seleziona Service_account.
    3. Nel menu Metriche attive, seleziona una metrica dell'account di servizio. Nell'intervallo di tempo selezionato sono disponibili le seguenti metriche:
      • Per le metriche di utilizzo degli account di servizio, seleziona Eventi di autenticazione degli account di servizio.
      • Per le metriche di utilizzo delle chiavi dell'account di servizio, seleziona Eventi di autenticazione delle chiavi dell'account di servizio.
    4. Fai clic su Applica.
  3. Per rimuovere le serie temporali dal display, utilizza l'elemento Filter.

  4. Per combinare le serie temporali, utilizza i menu dell'elemento Aggregazione. Ad esempio, per visualizzare l'utilizzo della CPU per le VM, in base alla loro zona, imposta il primo menu su Media e il secondo su zone.

    Tutte le serie temporali vengono visualizzate quando il primo menu dell'elemento Aggregation è impostato su Unaggregated. Le impostazioni predefinite per l'elemento Aggregazione sono determinate dal tipo di metrica selezionato.

  5. Per la quota e altre metriche che segnalano un campione al giorno:
    1. Nel riquadro Display, imposta il Tipo di widget su Grafico a barre in pila.
    2. Imposta il periodo di tempo su almeno una settimana.

REST

Il metodo timeSeries.list dell'API Cloud Monitoring consente di accedere alle metriche di utilizzo in modo programmatico.

Prima di utilizzare i dati della richiesta, effettua le seguenti sostituzioni:

  • PROJECT_ID: l'ID del tuo progetto Google Cloud. Gli ID progetto sono stringhe alfanumeriche come my-project.
  • METRIC_TYPE: il tipo di metrica che vuoi controllare. Utilizza uno dei seguenti valori:
    • Per le metriche di utilizzo degli account di servizio, utilizza iam.googleapis.com%2Fservice_account%2Fauthn_events_count.
    • Per le metriche di utilizzo delle chiavi dell'account di servizio, utilizza iam.googleapis.com%2Fservice_account%2Fkey%2Fauthn_events_count.
  • END_TIME: la fine dell'intervallo di tempo che vuoi controllare, in formato RFC 3339 con codifica percentuale. Ad esempio, 2020-06-12T00%3A00%3A00.00Z.
  • START_TIME: l'inizio dell'intervallo di tempo che vuoi controllare, nel formato RFC 3339 con codifica percentuale. Ad esempio, 2020-04-12T00%3A00%3A00.00Z.

Metodo HTTP e URL:

GET https://monitoring.googleapis.com/v3/projects/PROJECT_ID/timeSeries?filter=metric.type%3D%22METRIC_TYPE%22&interval.endTime=END_TIME&interval.startTime=START_TIME

Per inviare la richiesta, espandi una di queste opzioni:

Per maggiori informazioni sulla lettura a livello di programmazione delle metriche di utilizzo, consulta Lettura dei dati delle metriche nella documentazione di Monitoring.

Visualizzare le metriche di utilizzo per un singolo account di servizio

Per visualizzare le metriche di utilizzo per un singolo account di servizio:

Console

  1. Nella console Google Cloud, vai alla pagina Account di servizio.

    Vai ad Account di servizio

  2. Seleziona il progetto che contiene il tuo account di servizio.

  3. Fai clic sull'indirizzo email del tuo account di servizio.

  4. Fai clic sulla scheda Metriche. Il grafico Traffico di autenticazione mostra le metriche di utilizzo per l'account di servizio.

  5. (Facoltativo) Per visualizzare il grafico nella pagina Metrics Explorer, che offre opzioni aggiuntive di filtro e visualizzazione, fai clic su  > Visualizza in Metrics Explorer.

REST

Il metodo timeSeries.list dell'API Cloud Monitoring , se utilizzato con filtri specifici, consente di ottenere metriche di utilizzo per un singolo account di servizio. Puoi quindi usare queste metriche per determinare quando è stato usato l'ultimo account.

Prima di utilizzare i dati della richiesta, effettua le seguenti sostituzioni:

  • PROJECT_ID: l'ID del tuo progetto Google Cloud. Gli ID progetto sono stringhe alfanumeriche come my-project.
  • SERVICE_ACCOUNT_ID: l'ID numerico univoco del tuo account di servizio. Per trovare l'ID numerico univoco del tuo account di servizio:
    1. Nella console Google Cloud, vai alla pagina Account di servizio.

      Vai alla pagina Account di servizio
    2. Fai clic sull'indirizzo email del tuo account di servizio. L'ID numerico univoco del tuo account di servizio è il valore nel campo ID univoco.
  • END_TIME: la fine dell'intervallo di tempo che vuoi controllare, in formato RFC 3339 con codifica percentuale. Ad esempio, 2020-06-12T00%3A00%3A00.00Z.
  • START_TIME: l'inizio dell'intervallo di tempo che vuoi controllare, nel formato RFC 3339 con codifica percentuale. Ad esempio, 2020-04-12T00%3A00%3A00.00Z.

Metodo HTTP e URL:

GET https://monitoring.googleapis.com/v3/projects/PROJECT_ID/timeSeries?filter=metric.type%3D%22iam.googleapis.com%2Fservice_account%2Fauthn_events_count%22%20AND%20resource.labels.unique_id%3D%22SERVICE_ACCOUNT_ID%22&interval.endTime=END_TIME&interval.startTime=START_TIME

Per inviare la richiesta, espandi una di queste opzioni:

La risposta contiene un oggetto timeSeries con tutti gli eventi di autenticazione recenti per l'account di servizio specificato.

Visualizza le metriche di utilizzo per una singola chiave dell'account di servizio

Per visualizzare le metriche di utilizzo per una singola chiave dell'account di servizio:

Console

  1. Nella console Google Cloud, vai alla pagina Account di servizio.

    Vai ad Account di servizio

  2. Seleziona il progetto che contiene l'account di servizio associato alla chiave.

  3. Fai clic sull'indirizzo email dell'account di servizio associato alla chiave.

  4. Fai clic sulla scheda Metriche. Il grafico Traffico di autenticazione per chiave mostra le metriche di utilizzo per tutte le chiavi associate all'account di servizio.

  5. Nella legenda del grafico, fai clic sull'ID della chiave dell'account di servizio di cui vuoi visualizzare le metriche di utilizzo. Il grafico si aggiorna mostrando le metriche solo per quella chiave dell'account di servizio.

  6. (Facoltativo) Per visualizzare il grafico nella pagina Metrics Explorer, che offre opzioni aggiuntive di filtro e visualizzazione, fai clic su  > Visualizza in Metrics Explorer.

REST

Innanzitutto, recupera l'ID della chiave dell'account di servizio.

  1. Elenca le chiavi degli account di servizio:

    Il metodo projects.serviceAccounts.keys.list elenca tutte le chiavi di un account di servizio.

    Prima di utilizzare i dati della richiesta, effettua le seguenti sostituzioni:

    • PROJECT_ID: l'ID del tuo progetto Google Cloud. Gli ID progetto sono stringhe alfanumeriche come my-project.
    • SA_NAME: il nome dell'account di servizio di cui vuoi elencare le chiavi.
    • KEY_TYPES: facoltativo. Un elenco separato da virgole di tipi di chiavi da includere nella risposta. Il tipo di chiave indica se una chiave è gestita dall'utente (USER_MANAGED) o dal sistema (SYSTEM_MANAGED). Se viene lasciata vuota, vengono restituite tutte le chiavi.

    Metodo HTTP e URL:

    GET https://iam.googleapis.com/v1/projects/PROJECT_ID/serviceAccounts/SA_NAME@PROJECT_ID.iam.gserviceaccount.com/keys?keyTypes=KEY_TYPES

    Per inviare la richiesta, espandi una di queste opzioni:

    Dovresti ricevere una risposta JSON simile alla seguente:

    {
      "keys": [
        {
          "name": "projects/my-project/serviceAccounts/my-service-account@my-project.iam.gserviceaccount.com/keys/90c48f61c65cd56224a12ab18e6ee9ca9c3aee7c",
          "validAfterTime": "2020-03-04T17:39:47Z",
          "validBeforeTime": "9999-12-31T23:59:59Z",
          "keyAlgorithm": "KEY_ALG_RSA_2048",
          "keyOrigin": "GOOGLE_PROVIDED",
          "keyType": "USER_MANAGED"
        },
        {
          "name": "projects/my-project/serviceAccounts/my-service-account@my-project.iam.gserviceaccount.com/keys/e5e3800831ac1adc8a5849da7d827b4724b1fce8",
          "validAfterTime": "2020-03-31T23:50:09Z",
          "validBeforeTime": "9999-12-31T23:59:59Z",
          "keyAlgorithm": "KEY_ALG_RSA_2048",
          "keyOrigin": "GOOGLE_PROVIDED",
          "keyType": "USER_MANAGED"
        },
        {
          "name": "projects/my-project/serviceAccounts/my-service-account@my-project.iam.gserviceaccount.com/keys/b97699f042b8eee6a846f4f96259fbcd13e2682e",
          "validAfterTime": "2020-05-17T18:58:13Z",
          "validBeforeTime": "9999-12-31T23:59:59Z",
          "keyAlgorithm": "KEY_ALG_RSA_2048",
          "keyOrigin": "GOOGLE_PROVIDED",
          "keyType": "USER_MANAGED",
          "disabled": true
        }
      ]
    }
    

  2. Utilizza i metadati nella risposta per identificare la chiave da monitorare. Poi, copia l'ID univoco della chiave dalla fine del campo name.

    Il campo name ha il seguente formato:

    "name": "projects/PROJECT_ID/serviceAccounts/SERVICE_ACCOUNT_EMAIL/keys/KEY_ID"
    

    L'ID univoco della chiave è tutto ciò che segue keys/.

    Ad esempio, l'ID univoco nel seguente nome chiave è 0f561cc41650ff521899de2fd653bd3de08e2da4:

    "name": "projects/my-project/serviceAccounts/my-account@my-project.iam.gserviceaccount.com/keys/0f561cc41650ff521899de2fd653bd3de08e2da4"
    

Utilizza quindi l'ID per visualizzare le metriche di utilizzo per la chiave dell'account di servizio.

Il metodo timeSeries.list dell'API Cloud Monitoring , se utilizzato con filtri specifici, consente di ottenere metriche di utilizzo per una singola chiave dell'account di servizio. Puoi quindi usarle per determinare quando è stato usato l'ultimo utilizzo della chiave.

Prima di utilizzare i dati della richiesta, effettua le seguenti sostituzioni:

  • PROJECT_ID: l'ID del tuo progetto Google Cloud. Gli ID progetto sono stringhe alfanumeriche come my-project.
  • KEY_ID: l'ID univoco della chiave dell'account di servizio.
  • END_TIME: la fine dell'intervallo di tempo che vuoi controllare, in formato RFC 3339 con codifica percentuale. Ad esempio, 2020-06-12T00%3A00%3A00.00Z.
  • START_TIME: l'inizio dell'intervallo di tempo che vuoi controllare, nel formato RFC 3339 con codifica percentuale. Ad esempio, 2020-04-12T00%3A00%3A00.00Z.

Metodo HTTP e URL:

GET https://monitoring.googleapis.com/v3/projects/PROJECT_ID/timeSeries?filter=metric.type%3D%22iam.googleapis.com%2Fservice_account%2Fkey%2Fauthn_events_count%22%20AND%20metric.labels.key_id%3D%22KEY_ID%22&interval.endTime=END_TIME&interval.startTime=START_TIME

Per inviare la richiesta, espandi una di queste opzioni:

La risposta contiene un oggetto timeSeries con tutti gli eventi di autenticazione recenti per la chiave dell'account di servizio specificata.

Esportazione delle metriche

Puoi usare Monitoring per esportare le metriche in BigQuery. L'esportazione delle metriche è utile per eseguire analisi a lungo termine perché Monitoring conserva le metriche solo per un periodo di tempo limitato.

Per le istruzioni, consulta Esportazione delle metriche di Monitoring nella documentazione delle soluzioni.

Passaggi successivi