Nutzungsmuster für Dienstkonten und Schlüssel überwachen

Auf dieser Seite wird erläutert, wie Sie mit Cloud Monitoring Nutzungsmesswerte für Ihre Dienstkonten und Dienstkontoschlüssel aufrufen. Mit diesen Messwerten können Sie Nutzungsmuster anzeigen und verfolgen, um Anomalien zu erkennen – entweder automatisch oder manuell.

Dienstkonten und Dienstkontoschlüssel werden in diesen Messwerten dann angegeben, wenn sie zum Aufrufen einer beliebigen Google API verwendet werden, einschließlich APIs, die nicht Teil von Google Cloud sind. Die Messwerte enthalten sowohl erfolgreiche als auch fehlgeschlagene API-Aufrufe. Wenn beispielsweise ein API-Aufruf fehlschlägt, weil der Aufrufer nicht berechtigt ist, diese API aufzurufen, oder weil die Anfrage auf eine Ressource verwiesen hat, die nicht existiert, wird das Dienstkonto oder der Schlüssel, der für den API-Aufruf verwendet wurde, in den Messwerten angegeben.

Dienstkontoschlüssel werden auch in diesen Messwerten angezeigt, wenn ein System die Schlüssel beim Authentifizierung einer Anfrage auflistet, auch wenn das System den Schlüssel zur Authentifizierung der Anfrage nicht verwendet. Dieses Verhalten ist besonders häufig bei der Verwendung signierter URLs für Cloud Storage oder bei der Authentifizierung der Anwendungen von Drittanbietern. Daher können Sie Nutzungsmesswerte für Schlüssel anzeigen, die nicht für die Authentifizierung verwendet wurden.

Monitoring speichert die Dienstkontomesswerte 6 Wochen lang. Wenn Sie für einen längeren Zeitraum auf Daten zugreifen müssen, können Sie die Ergebnisse regelmäßig nach BigQuery exportieren. Weitere Informationen finden Sie unter Monitoring-Messwerte exportieren in der Lösungsdokumentation.

Nachdem Sie ein Dienstkonto oder einen Dienstkontoschlüssel verwendet haben, sind Nutzungsmesswerte normalerweise innerhalb weniger Minuten verfügbar.

Vorbereitung

  • Enable the IAM and Cloud Monitoring APIs.

    Enable the APIs

Erforderliche Rollen

Bitten Sie Ihren Administrator, Ihnen die IAM-Rolle Monitoring Viewer (roles/monitoring.viewer) für das Projekt zuzuweisen, um die Berechtigungen zu erhalten, die Sie benötigen, um die aktuelle Nutzung für Dienstkonten und Schlüssel aufzurufen. Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff auf Projekte, Ordner und Organisationen verwalten.

Sie können die erforderlichen Berechtigungen auch über benutzerdefinierte Rollen oder andere vordefinierte Rollen erhalten.

Nutzungsmesswerte für alle Dienstkonten oder Schlüssel ansehen

So rufen Sie die Nutzungsmesswerte für Ihre Dienstkonten oder Dienstkontoschlüssel auf:

Console

So rufen Sie mit dem Metrics Explorer die Messwerte für eine überwachte Ressource auf:

  1. Rufen Sie in der Google Cloud Console die Seite  Metrics Explorer auf:

    Zum Metrics Explorer

    Wenn Sie diese Seite über die Suchleiste suchen, wählen Sie das Ergebnis aus, dessen Zwischenüberschrift Monitoring ist.

  2. Maximieren Sie im Element Messwert das Menü Messwert auswählen, geben Sie IAM Service Account in die Filterleiste ein und wählen Sie dann über die Untermenüs einen bestimmten Ressourcentyp und Messwert aus:
    1. Wählen Sie im Menü Aktive Ressourcen die Option IAM-Dienstkonto aus.
    2. Wählen Sie im Menü Aktive Messwertkategorien die Option Dienstkonto aus.
    3. Wählen Sie im Menü Aktive Messwerte einen Dienstkontomesswert aus. Die folgenden Messwerte sind im ausgewählten Zeitintervall verfügbar:
      • Wählen Sie für Messwerte zur Dienstkontonutzung die Option Dienstkontoauthentifizierungsereignisse aus.
      • Wählen Sie für die Nutzungsmesswerte des Dienstkontoschlüssels die Option Authentifizierungsereignisse für den Dienstkontoschlüssel aus.
    4. Klicken Sie auf Anwenden.
  3. Verwenden Sie das Element Filter, um Zeitreihen aus der Anzeige zu entfernen.

  4. Verwenden Sie zum Kombinieren von Zeitreihen die Menüs im Element Aggregation. Wenn Sie beispielsweise die CPU-Auslastung für Ihre VMs basierend auf ihrer Zone anzeigen möchten, legen Sie das erste Menü auf Mittelwert und das zweite Menü auf Zone fest.

    Alle Zeitreihen werden angezeigt, wenn das erste Menü des Elements Aggregation auf Nicht aggregiert gesetzt ist. Die Standardeinstellungen für das Element Aggregation werden durch den ausgewählten Messwerttyp bestimmt.

  5. Gehen Sie für Kontingente und andere Messwerte, die eine Stichprobe pro Tag melden, so vor:
    1. Legen Sie im Bereich Anzeige den Widget-Typ auf Gestapeltes Balkendiagramm fest.
    2. Legen Sie als Zeitraum mindestens eine Woche fest.

REST

Die Methode timeSeries.list der Cloud Monitoring API ermöglicht den programmatischen Zugriff auf Nutzungsmesswerte.

Ersetzen Sie diese Werte in den folgenden Anfragedaten:

  • PROJECT_ID: Ihre Google Cloud-Projekt-ID. Projekt-IDs sind alphanumerische Strings, wie my-project.
  • METRIC_TYPE: Der Messwerttyp, den Sie prüfen möchten. Verwenden Sie einen der folgenden Werte:
    • Verwenden Sie iam.googleapis.com%2Fservice_account%2Fauthn_events_count für die Nutzungsmesswerte von Dienstkonten.
    • Verwenden Sie iam.googleapis.com%2Fservice_account%2Fkey%2Fauthn_events_count für die Nutzungsmesswerte von Dienstkontoschlüsseln.
  • END_TIME: Das Ende des Zeitintervalls, das Sie prüfen möchten, im prozentcodierten Format gemäß RFC 3339. Beispiel: 2020-06-12T00%3A00%3A00.00Z.
  • START_TIME: Der Beginn des Zeitintervalls, das Sie prüfen möchten, im prozentcodierten Format gemäß RFC 3339. Beispiel: 2020-04-12T00%3A00%3A00.00Z.

HTTP-Methode und 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

Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:

Weitere Informationen zum programmatischen Lesen von Nutzungsmesswerten finden Sie unter Messwertdaten lesen in der Monitoring-Dokumentation.

Nutzungsmesswerte für ein einzelnes Dienstkonto aufrufen

So können Sie Nutzungsmesswerte für ein einzelnes Dienstkonto aufrufen:

Console

  1. Rufen Sie in der Google Cloud Console die Seite Dienstkonten auf.

    Zur Seite „Dienstkonten“

  2. Wählen Sie das Projekt aus, in dem sich Ihr Dienstkonto befindet.

  3. Klicken Sie auf die E-Mail-Adresse des Dienstkontos.

  4. Klicken Sie auf den Tab Messwerte. Das Diagramm Authentifizierungstraffic zeigt die Nutzungsmesswerte für das Dienstkonto an.

  5. Optional: Um das Diagramm auf der Seite Messwert-Explorer anzuzeigen, die zusätzliche Filter- und Anzeigeoptionen bietet, klicken Sie auf  > Im Metrics Explorer ansehen.

REST

Wenn Sie die Methode timeSeries.list der Cloud Monitoring API in Verbindung mit bestimmten Filtern verwenden, können Sie Nutzungsmesswerte für ein einzelnes Dienstkonto abrufen. Mit diesen Messwerten können Sie dann feststellen, wann das Konto zuletzt verwendet wurde.

Ersetzen Sie diese Werte in den folgenden Anfragedaten:

  • PROJECT_ID: Ihre Google Cloud-Projekt-ID. Projekt-IDs sind alphanumerische Strings, wie my-project.
  • SERVICE_ACCOUNT_ID: Die eindeutige numerische ID Ihres Dienstkontos. So ermitteln Sie die eindeutige numerische ID Ihres Dienstkontos:
    1. Rufen Sie in der Google Cloud Console die Seite Dienstkonten auf.

      Zur Seite "Dienstkonten"
    2. Klicken Sie auf die E-Mail-Adresse des Dienstkontos. Die eindeutige numerische ID Ihres Dienstkontos ist der Wert im Feld Eindeutige ID.
  • END_TIME: Das Ende des Zeitintervalls, das Sie prüfen möchten, im prozentcodierten Format gemäß RFC 3339. Beispiel: 2020-06-12T00%3A00%3A00.00Z.
  • START_TIME: Der Beginn des Zeitintervalls, das Sie prüfen möchten, im prozentcodierten Format gemäß RFC 3339. Beispiel: 2020-04-12T00%3A00%3A00.00Z.

HTTP-Methode und 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

Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:

Die Antwort enthält ein timeSeries-Objekt mit allen aktuellen Authentifizierungsereignissen für das angegebene Dienstkonto.

Nutzungsmesswerte für einen einzelnen Dienstkontoschlüssel aufrufen

So können Sie Nutzungsmesswerte für einen einzelnen Dienstkontoschlüssel aufrufen:

Console

  1. Rufen Sie in der Google Cloud Console die Seite Dienstkonten auf.

    Zur Seite „Dienstkonten“

  2. Wählen Sie das Projekt aus, das das mit Ihrem Schlüssel verknüpfte Dienstkonto enthält.

  3. Klicken Sie auf die E-Mail-Adresse des mit Ihrem Schlüssel verknüpften Dienstkontos.

  4. Klicken Sie auf den Tab Messwerte. Das Diagramm Authentifizierungstraffic pro Schlüssel zeigt Nutzungsmesswerte für alle Schlüssel an, die dem Dienstkonto zugeordnet sind.

  5. Klicken Sie in der Diagrammlegende auf die ID des Dienstkontoschlüssels, für den Sie Nutzungsmesswerte aufrufen möchten. Das Diagramm wird aktualisiert und zeigt nur die Messwerte für diesen Dienstkontoschlüssel an.

  6. Optional: Um das Diagramm auf der Seite Messwert-Explorer anzuzeigen, die zusätzliche Filter- und Anzeigeoptionen bietet, klicken Sie auf  > Im Metrics Explorer ansehen.

REST

Rufen Sie zuerst die ID des Dienstkontoschlüssels ab.

  1. Listen Sie die Dienstkontoschlüssel auf:

    Mit der Methode projects.serviceAccounts.keys.list können Sie alle Dienstkontoschlüssel für ein Dienstkonto auflisten.

    Ersetzen Sie diese Werte in den folgenden Anfragedaten:

    • PROJECT_ID: Ihre Google Cloud-Projekt-ID. Projekt-IDs sind alphanumerische Strings, wie my-project.
    • SA_NAME: Den Namen des Dienstkontos, dessen Schlüssel Sie auflisten möchten.
    • KEY_TYPES: Optional. Eine durch Kommas getrennte Liste der Schlüsseltypen, die Sie in die Antwort aufnehmen möchten. Der Schlüsseltyp gibt an, ob ein Schlüssel vom Nutzer (USER_MANAGED) oder vom System (SYSTEM_MANAGED) verwaltet wird. Wenn Sie das Feld leer lassen, werden alle Schlüssel zurückgegeben.

    HTTP-Methode und URL:

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

    Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:

    Sie müssten in etwa folgende JSON-Antwort erhalten:

    {
      "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
          "disable_reason": "SERVICE_ACCOUNT_KEY_DISABLE_REASON_EXPOSED"
          "extended_status": "SERVICE_ACCOUNT_KEY_EXTENDED_STATUS_KEY_EXPOSED"
          "extended_status_message": "exposed at: https://www.github.com/SomePublicRepo"
        }
      ]
    }
    

  2. Verwenden Sie die Metadaten in der Antwort, um den Schlüssel zu identifizieren, den Sie verfolgen möchten. Kopieren Sie dann die eindeutige ID des Schlüssels aus dem Ende des name-Felds.

    Das Feld name hat das folgende Format:

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

    Die eindeutige ID des Schlüssels ist alles, was auf keys/ folgt.

    Die eindeutige ID im folgenden Schlüsselnamen lautet beispielsweise 0f561cc41650ff521899de2fd653bd3de08e2da4:

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

Verwenden Sie dann die ID, um Nutzungsmesswerte für den Dienstkontoschlüssel aufzurufen.

Wenn Sie die Methode timeSeries.list der Cloud Monitoring API in Verbindung mit bestimmten Filtern verwenden, können Sie Nutzungsmesswerte für einen einzelnen Dienstkontoschlüssel abrufen. Mit diesen Messwerten können Sie dann feststellen, wann der Schlüssel zuletzt verwendet wurde.

Ersetzen Sie diese Werte in den folgenden Anfragedaten:

  • PROJECT_ID: Ihre Google Cloud-Projekt-ID. Projekt-IDs sind alphanumerische Strings, wie my-project.
  • KEY_ID: Die eindeutige ID Ihres Dienstkontoschlüssels.
  • END_TIME: Das Ende des Zeitintervalls, das Sie prüfen möchten, im prozentcodierten Format gemäß RFC 3339. Beispiel: 2020-06-12T00%3A00%3A00.00Z.
  • START_TIME: Der Beginn des Zeitintervalls, das Sie prüfen möchten, im prozentcodierten Format gemäß RFC 3339. Beispiel: 2020-04-12T00%3A00%3A00.00Z.

HTTP-Methode und 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

Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:

Die Antwort enthält ein timeSeries-Objekt mit allen aktuellen Authentifizierungsereignissen des angegebenen Dienstkontoschlüssels.

Messwerte exportieren

Sie können Monitoring verwenden, um Ihre Messwerte nach BigQuery zu exportieren. Das Exportieren von Messwerten ist nützlich für die Langzeitanalyse, da Monitoring die Messwerte nur für eine begrenzte Zeit speichert.

Eine entsprechende Anleitung finden Sie unter Monitoring-Messwerte exportieren in der Lösungsdokumentation.

Nächste Schritte