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 für eine begrenzte Zeit. 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.

Nutzungsmesswerte für alle Dienstkonten oder Schlüssel ansehen

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

Console

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

    Zu Metrics Explorer

  2. Legen Sie im Feld Ressourcentyp den Ressourcentyp auf IAM-Dienstkonto fest.

  3. Legen Sie im Feld Messwert einen der folgenden Werte für den Messwerttyp fest:

    • Wählen Sie Authentifizierungsereignisse aus, um die Messwerte zur Nutzung des Dienstkontos aufzurufen.
    • Wählen Sie für die Nutzungsmesswerte des Dienstkontoschlüssels die Option Schlüsselauthentifizierungsereignisse aus.
  4. Passen Sie die Einstellungen der Grafik an:

    • Wählen Sie in der Liste der Zeitintervalle über der Grafik das Intervall aus, das Sie sich ansehen möchten. Sie können eines der vordefinierten Intervalle auswählen oder ein benutzerdefiniertes Intervall festlegen. Klicken Sie dazu auf Benutzerdefiniert und wählen Sie den Start und das Ende aus.
    • Wählen Sie als Linientyp Liniendiagramm oder Übereinander angeordnetes Balkendiagramm aus.

Diese Messwerte zeigen die Verwendung des Dienstkontos oder des Dienstkontoschlüssels im ausgewählten Intervall.

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. Suchen und kopieren Sie die eindeutige numerische ID des Dienstkontos:

    1. Rufen Sie in der 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. Kopieren Sie die eindeutige numerische ID des Dienstkontos aus dem Feld Eindeutige ID.

  2. Rufen Sie in der Cloud Console die Seite Metrics Explorer auf.

    Zu Metrics Explorer

  3. Legen Sie im Feld Ressourcentyp den Ressourcentyp auf IAM-Dienstkonto fest.

  4. Legen Sie im Feld Messwert den Messwerttyp auf Authentifizierungsereignisse fest.

  5. Fügen Sie einen Filter für die Dienstkonto-ID hinzu:

    1. Klicken Sie auf Filter hinzufügen.
    2. Wählen Sie im Feld Label die Option unique_id aus.
    3. Das Feld Vergleich muss auf = (gleich) festgelegt sein.
    4. Fügen Sie im Feld Wert die eindeutige numerische ID des Dienstkontos ein.
  6. Wählen Sie für ein besseres Verständnis des Diagramms Liniendiagramm oder Übereinander angeordnetes Balkendiagramm als Diagrammtyp aus.

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 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

Wenn Sie die Nutzungsmesswerte für einen einzelnen Dienstkontoschlüssel aufrufen möchten, suchen Sie die eindeutige ID des Schlüssels und kopieren Sie sie. Mithilfe dieser ID ermitteln Sie dann die Nutzungsmesswerte für den Schlüssel.

Wenn Sie eine JSON-Schlüsseldatei haben, finden Sie die eindeutige ID des Dienstkontoschlüssels im Feld private_key_id der Datei.

Wenn Sie keine JSON-Schlüsseldatei haben, können Sie die eindeutige ID des Dienstkontoschlüssels so herausfinden:

Console

  1. Rufen Sie in der 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 Schlüssel.

  5. Suchen und kopieren Sie Ihre Schlüssel-ID aus der Liste der Schlüssel-IDs.

gcloud

  1. Führen Sie den Befehl gcloud iam service-accounts keys list aus. Ersetzen Sie dabei SERVICE_ACCOUNT_EMAIL durch die E-Mail-Adresse des Dienstkontos, dem der Schlüssel zugeordnet ist:

    gcloud iam service-accounts keys list --iam-account=SERVICE_ACCOUNT_EMAIL
    

    Die Ausgabe zeigt eine Liste aller vom Nutzer erstellten Schlüssel, die mit dem Dienstkonto verknüpft sind, sowie die eindeutige ID, den Erstellungszeitpunkt und die Ablaufzeit jedes Schlüssels.

  2. Ermitteln Sie anhand der Daten in der Ausgabe den Schlüssel, den Sie verfolgen möchten, und kopieren Sie seine eindeutige ID.

REST

  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
        }
      ]
    }
    

  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"
    

So finden Sie die Nutzungsmesswerte für den Dienstkontoschlüssel:

Console

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

    Zu Metrics Explorer

  2. Legen Sie im Feld Ressourcentyp den Ressourcentyp auf IAM-Dienstkonto fest.

  3. Legen Sie im Feld Messwert den Messwerttyp auf Schlüsselauthentifizierungsereignisse fest.

  4. Fügen Sie einen Filter für die Dienstkontoschlüssel-ID hinzu:

    1. Klicken Sie auf Filter hinzufügen.
    2. Wählen Sie im Feld Label die Option key_id aus.
    3. Das Feld Vergleich muss auf = (gleich) festgelegt sein.
    4. Fügen Sie im Feld Wert die eindeutige numerische ID des Dienstkontoschlüssels ein.
  5. Wählen Sie für ein besseres Verständnis des Diagramms Liniendiagramm oder Übereinander angeordnetes Balkendiagramm als Diagrammtyp aus.

REST

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