Richtlinienstatistiken für BigQuery-Datasets prüfen

Auf dieser Seite erfahren Sie, wie Sie Richtlinieninformationen auf Datasetebene verwalten. Dabei handelt es sich um maschinell erstellte Informationen zur Berechtigungsnutzung für Ihre BigQuery-Datasets. Anhand von Richtlinienstatistiken können Sie ermitteln, welche Hauptkonten Berechtigungen haben, die sie nicht benötigen.

Auf dieser Seite geht es um Richtlinieninformationen für Datensätze. Der Recommender bietet außerdem Richtlinieninformationen für die folgenden Ressourcentypen:

Richtlinienstatistiken auf Dataset-Ebene sind manchmal mit Rollenempfehlungen verknüpft. In den Rollenempfehlungen werden Maßnahmen vorgeschlagen, mit denen Sie die Probleme beheben können, die in den Richtlinieninformationen auf Dataset-Ebene erkannt wurden.

Hinweise

Erforderliche Rollen

Bitten Sie Ihren Administrator, Ihnen die folgenden IAM-Rollen für das Projekt zuzuweisen, um die Berechtigungen zu erhalten, die Sie zum Verwalten von Richtlinienstatistiken auf Datasetebene benötigen:

  • BigQuery-Dateninhaber (`roles/bigquery.dataOwner`)
  • IAM Recommender-Administrator (`roles/recommender.iamAdmin`)
  • Richtlinieninformationen auf Datensatzebene mit der gcloud CLI oder der REST API verwalten: Nutzer der Dienstnutzung (`roles/serviceusage.serviceUsageConsumer`)

Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff auf Projekte, Ordner und Organisationen verwalten.

Diese vordefinierten Rollen enthalten die Berechtigungen, die zum Verwalten von Richtlinienstatistiken auf Datasetebene erforderlich sind. Erweitern Sie den Abschnitt Erforderliche Berechtigungen, um die erforderlichen Berechtigungen anzuzeigen:

Erforderliche Berechtigungen

Die folgenden Berechtigungen sind erforderlich, um Richtlinienstatistiken auf Dataset-Ebene zu verwalten:

  • Richtlinienstatistiken auf Dataset-Ebene aufrufen:
    • recommender.iamPolicyInsights.get
    • recommender.iamPolicyInsights.list
  • Richtlinienstatistiken auf Dataset-Ebene ändern: recommender.iamPolicyInsights.update
  • Richtlinieninformationen auf Datensatzebene mit der gcloud CLI oder der REST API verwalten: serviceusage.services.use

Sie können diese Berechtigungen auch mit benutzerdefinierten Rollen oder anderen vordefinierten Rollen erhalten.

Richtlinienstatistiken auf Dataset-Ebene auflisten

Verwenden Sie eine der folgenden Methoden, um alle Richtlinienstatistiken auf Dataset-Ebene für Ihr Projekt aufzulisten:

gcloud

Verwenden Sie den Befehl gcloud recommender insights list, um alle Richtlinienstatistiken auf Datasetebene für Ihr Projekt aufzurufen.

Ersetzen Sie vor dem Ausführen des Befehls die folgenden Werte:

  • PROJECT_ID: Die ID des Projekts, für das Sie Statistiken auflisten möchten.
  • LOCATION: Der Speicherort der Datensätze, deren Statistiken Sie auflisten möchten.
gcloud recommender insights list --insight-type=google.iam.policy.Insight \
    --project=PROJECT_ID \
    --location=LOCATION\
    --filter="insightSubtype:PERMISSIONS_USAGE_BIGQUERY_DATASET"

Die Ausgabe enthält alle Richtlinienstatistiken auf Datasetebene für Ihr Projekt am angegebenen Speicherort. Beispiel:

INSIGHT_ID                            CATEGORY  INSIGHT_STATE  LAST_REFRESH_TIME     SEVERITY  INSIGHT_SUBTYPE                     DESCRIPTION
101d03ad-6148-4628-943e-fcf1a3af6b57  SECURITY  ACTIVE         2024-02-02T08:00:00Z  LOW       PERMISSIONS_USAGE_BIGQUERY_DATASET  0 of the permissions in this role binding were used in the past 90 days.
15133dd9-4cbc-41e9-8990-b189241676d8  SECURITY  ACTIVE         2024-02-02T08:00:00Z  LOW       PERMISSIONS_USAGE_BIGQUERY_DATASET  0 of the permissions in this role binding were used in the past 90 days.
1590aeae-d5bf-4e3d-b7d5-e230212f5faf  SECURITY  ACTIVE         2024-02-02T08:00:00Z  LOW       PERMISSIONS_USAGE_BIGQUERY_DATASET  4 of the permissions in this role binding were used in the past 90 days.
280e5a14-4d09-4ac6-8e14-be7407611ad7  SECURITY  ACTIVE         2024-02-02T08:00:00Z  LOW       PERMISSIONS_USAGE_BIGQUERY_DATASET  0 of the permissions in this role binding were used in the past 90 days.
34102078-085f-45d3-ae72-81da16c75781  SECURITY  ACTIVE         2024-02-02T08:00:00Z  LOW       PERMISSIONS_USAGE_BIGQUERY_DATASET  10 of the permissions in this role binding were used in the past 90 days.

REST

Die Methode insights.list der Recommender API listet alle Richtlinienstatistiken auf Datensatzebene für Ihr Projekt auf.

Ersetzen Sie diese Werte in den folgenden Anfragedaten:

  • PROJECT_ID: Die ID des Projekts, für das Sie Statistiken auflisten möchten.
  • LOCATION: Der Speicherort der Datensätze, deren Statistiken Sie auflisten möchten.

HTTP-Methode und URL:

GET https://recommender.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/insightTypes/google.iam.policy.Insight/insights?filter=insightSubtype%20%3D%20PERMISSIONS_USAGE_BIGQUERY_DATASET

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

Die Antwort enthält alle Richtlinienstatistiken auf Datasetebene für Ihr Projekt am angegebenen Speicherort. Beispiel:

{
  "insights": [
    {
      "name": "projects/1069248613794/locations/us/insightTypes/google.iam.policy.Insight/insights/101d03ad-6148-4628-943e-fcf1a3af6b57",
      "description": "0 of the permissions in this role binding were used in the past 90 days.",
      "content": {
        "role": "roles/bigquery.dataEditor",
        "member": "projectEditor:my-project",
        "condition": {
          "expression": "",
          "title": "",
          "description": "",
          "location": ""
        },
        "exercisedPermissions": [],
        "inferredPermissions": [],
        "currentTotalPermissionsCount": "37"
      },
      "lastRefreshTime": "2024-02-02T08:00:00Z",
      "observationPeriod": "7779600s",
      "stateInfo": {
        "state": "ACTIVE"
      },
      "category": "SECURITY",
      "associatedRecommendations": [
        {
          "recommendation": "projects/1069248613794/locations/us/recommenders/google.iam.policy.Recommender/recommendations/9327f952-1ceb-488e-9e49-f17eb21f6e5e"
        }
      ],
      "targetResources": [
        "//bigquery.googleapis.com/projects/my-project/datasets/dataset-1"
      ],
      "insightSubtype": "PERMISSIONS_USAGE_BIGQUERY_DATASET",
      "etag": "\"35d4af47524d3f0c\"",
      "severity": "LOW"
    },
    {
      "name": "projects/1069248613794/locations/us/insightTypes/google.iam.policy.Insight/insights/15133dd9-4cbc-41e9-8990-b189241676d8",
      "description": "0 of the permissions in this role binding were used in the past 90 days.",
      "content": {
        "role": "roles/bigquery.dataViewer",
        "member": "projectViewer:my-project",
        "condition": {
          "expression": "",
          "title": "",
          "description": "",
          "location": ""
        },
        "exercisedPermissions": [],
        "inferredPermissions": [],
        "currentTotalPermissionsCount": "17"
      },
      "lastRefreshTime": "2024-02-02T08:00:00Z",
      "observationPeriod": "7779600s",
      "stateInfo": {
        "state": "ACTIVE"
      },
      "category": "SECURITY",
      "associatedRecommendations": [
        {
          "recommendation": "projects/1069248613794/locations/us/recommenders/google.iam.policy.Recommender/recommendations/bc9b4c28-cc93-4a91-97ea-ff67e3cef1b4"
        }
      ],
      "targetResources": [
        "//bigquery.googleapis.com/projects/my-project/datasets/dataset-2"
      ],
      "insightSubtype": "PERMISSIONS_USAGE_BIGQUERY_DATASET",
      "etag": "\"eafa79df1b329063\"",
      "severity": "LOW"
    }
  ]
}

Weitere Informationen zu den Komponenten einer Statistik finden Sie auf dieser Seite unter Richtlinienstatistiken auf Datensatzebene prüfen.

Richtlinienstatistiken auf Datasetebene abrufen

Wenn Sie weitere Informationen zu einer einzelnen Statistik abrufen möchten, einschließlich der Beschreibung, des Status und aller mit ihr verknüpften Empfehlungen, verwenden Sie eine der folgenden Methoden:

gcloud

Verwenden Sie den Befehl gcloud recommender insights describe mit Ihrer Statistik-ID, um Informationen zu einer einzelnen Statistik aufzurufen.

  • INSIGHT_ID: Die ID der Statistik, die Sie aufrufen möchten. Sie finden die ID, indem Sie die Statistiken in Ihrem Projekt auflisten.
  • PROJECT_ID: Die ID des Projekts, für das Sie Statistiken verwalten möchten.
  • LOCATION: Der Speicherort des Datensatzes, dessen Statistik Sie abrufen möchten.
gcloud recommender insights describe INSIGHT_ID \
    --insight-type=google.iam.policy.Insight \
    --project=PROJECT_ID \
    --location=LOCATION

In der Ausgabe sehen Sie die Statistik im Detail. Die folgende Statistik zeigt beispielsweise, dass alle Nutzer mit der Rolle „Bearbeiter“ für das Projekt my-project (projectEditor:my-project) die Rolle „BigQuery-Datenbearbeiter“ (roles/bigquery.dataEditor) für das Dataset dataset-1 haben, aber dass in den letzten 90 Tagen keine der Berechtigungen dieser Rolle verwendet wurde:

associatedRecommendations:
- recommendation: projects/1069248613794/locations/us/recommenders/google.iam.policy.Recommender/recommendations/9327f951-1ceb-488e-9e49-f17eb21f6e5e
category: SECURITY
content:
  condition:
    description: ''
    expression: ''
    location: ''
    title: ''
  currentTotalPermissionsCount: '37'
  exercisedPermissions: []
  inferredPermissions: []
  member: projectEditor:my-project
  role: roles/bigquery.dataEditor
description: 0 of the permissions in this role binding were used in the past 90 days.
etag: '"5f2f352a738f7a24"'
insightSubtype: PERMISSIONS_USAGE_BIGQUERY_DATASET
lastRefreshTime: '2024-02-04T08:00:00Z'
name: projects/1069248613794/locations/us/insightTypes/google.iam.policy.Insight/insights/101d03ad-6148-4628-943e-fcf1a3af6b57
observationPeriod: 7776000s
severity: LOW
stateInfo:
  state: ACTIVE
targetResources:
- //bigquery.googleapis.com/projects/my-project/datasets/dataset-1

Weitere Informationen zu den Komponenten einer Statistik finden Sie auf dieser Seite unter Richtlinienstatistiken auf Datensatzebene prüfen.

REST

Die Methode insights.get der Recommender API ruft eine einzelne Statistik ab.

Ersetzen Sie diese Werte in den folgenden Anfragedaten:

  • PROJECT_ID: Die ID des Projekts, für das Sie Statistiken verwalten möchten.
  • LOCATION: Der Speicherort des Datensatzes, dessen Statistik Sie abrufen möchten.
  • INSIGHT_ID: Die ID der Statistik, die Sie aufrufen möchten. Wenn Sie die Statistik-ID nicht kennen, können Sie sie in Ihrem Projekt finden, indem Sie die Statistiken auflisten. Die ID einer Statistik entspricht allen Angaben nach insights/ im name-Feld der Statistik.

HTTP-Methode und URL:

GET https://recommender.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/insightTypes/google.iam.policy.Insight/insights/INSIGHT_ID

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

Die Antwort enthält die Statistik. Die folgende Statistik zeigt beispielsweise, dass alle Nutzer mit der Rolle „Bearbeiter“ für das Projekt my-project (projectEditor:my-project) die Rolle „BigQuery-Datenbearbeiter“ (roles/bigquery.dataEditor) für das Dataset dataset-1 haben, aber dass in den letzten 90 Tagen keine der Berechtigungen dieser Rolle verwendet wurde:

{
  "name": "projects/1069248613794/locations/us/insightTypes/google.iam.policy.Insight/insights/101d03ad-6148-4628-943e-fcf1a3af6b57",
  "description": "0 of the permissions in this role binding were used in the past 90 days.",
  "content": {
    "role": "roles/bigquery.dataEditor",
    "member": "projectEditor:my-project",
    "condition": {
      "expression": "",
      "title": "",
      "description": "",
      "location": ""
    },
    "exercisedPermissions": [],
    "inferredPermissions": [],
    "currentTotalPermissionsCount": "37"
  },
  "lastRefreshTime": "2024-02-02T08:00:00Z",
  "observationPeriod": "7779600s",
  "stateInfo": {
    "state": "ACTIVE"
  },
  "category": "SECURITY",
  "associatedRecommendations": [
    {
      "recommendation": "projects/1069248613794/locations/us/recommenders/google.iam.policy.Recommender/recommendations/9327f952-1ceb-488e-9e49-f17eb21f6e5e"
    }
  ],
  "targetResources": [
    "//bigquery.googleapis.com/projects/my-project/datasets/dataset-1"
  ],
  "insightSubtype": "PERMISSIONS_USAGE_BIGQUERY_DATASET",
  "etag": "\"35d4af47524d3f0c\"",
  "severity": "LOW"
}

Weitere Informationen zu den Komponenten einer Statistik finden Sie auf dieser Seite unter Richtlinienstatistiken auf Datensatzebene prüfen.

Richtlinienstatistiken auf Dataset-Ebene prüfen

Nachdem Sie eine einzelne Statistik erhalten haben, können Sie deren Inhalt prüfen, um das durch sie hervorgehobene Muster der Ressourcennutzung zu verstehen.

Der Inhalt einer Statistik wird durch die Untertypen bestimmt. Richtlinienstatistiken auf Dataset-Ebene (google.iam.policy.Insight) haben den Untertyp PERMISSIONS_USAGE_BIGQUERY_DATASET.

PERMISSIONS_USAGE_BIGQUERY_DATASET-Statistiken haben die folgenden Komponenten, die nicht unbedingt in dieser Reihenfolge auftauchen:

  • associatedRecommendations: Die Kennungen der Empfehlungen, die mit der Statistik verknüpft sind. Wenn mit der Statistik keine Empfehlungen verknüpft sind, ist dieses Feld leer.
  • category: Die Kategorie für IAM-Statistiken ist immer SECURITY.
  • content: Gibt die Nutzung von Berechtigungen für eine bestimmte Rolle durch ein Hauptkonto an. Dieses Feld enthält die folgenden Komponenten:

    • condition: Alle Bedingungen, die mit einer Bindung verknüpft sind, durch die dem Hauptkonto die Rolle zugewiesen wird. Wenn keine Bedingungen vorhanden sind, enthält dieses Feld eine leere Bedingung.
    • exercisedPermissions: Die Berechtigungen der Rolle, die das Hauptkonto während des Beobachtungszeitraums verwendet hat.
    • inferredPermissions: Die Berechtigungen der Rolle, die das Hauptkonto gemäß der ML-basierten Analyse durch den IAM Recommender und basierend auf den vom Hauptkonto verwendeten Berechtigungen wahrscheinlich benötigt.
    • member: Das Hauptkonto, dessen Nutzung von Berechtigungen analysiert wurde.
    • role: Die Rolle, für die die Nutzung von Berechtigungen analysiert wurde.
  • description: Eine menschenlesbare Zusammenfassung der Statistik.
  • etag: Eine eindeutige ID für den aktuellen Status einer Statistik. Jedes Mal, wenn sich die Statistik ändert, wird ein neuer etag-Wert zugewiesen.

    Zum Ändern des Status einer Statistik müssen Sie das etag der vorhandenen Statistik angeben. Durch die Verwendung von etag wird gewährleistet, dass Vorgänge nur ausgeführt werden, wenn die Statistik seit dem letzten Abruf nicht geändert wurde.

  • insightSubtype: Der Statistikuntertyp.
  • lastRefreshTime: Das Datum, an dem die Statistik zuletzt aktualisiert wurde. Dadurch wird die Aktualität der Daten angegeben, die zum Generieren der Statistik verwendet wurden.
  • name: Der Name der Statistik im folgenden Format:

    projects/PROJECT_ID/locations/LOCATION/insightTypes/google.iam.policy.Insight/insights/INSIGHT_ID

    Die Platzhalter haben folgende Werte:

    • PROJECT_ID: Die ID des Projekts, in dem die Statistik generiert wurde.
    • LOCATION: Der Speicherort des Datasets, für das die Statistik gilt.
    • INSIGHT_ID: Eine eindeutige ID für die Statistik.
  • observationPeriod: Der Zeitraum, der der Statistik vorausgeht. Die zum Generieren der Statistik verwendeten Quelldaten enden zum Zeitpunkt von lastRefreshTime und beginnen bei lastRefreshTime minus observationPeriod.
  • stateInfo: Statistiken durchlaufen mehrere Statusübergänge, nachdem sie vorgeschlagen wurden:

    • ACTIVE: Die Statistik wurde generiert, aber es wurden keine Aktionen durchgeführt oder eine Aktion wurde ohne Aktualisierung des Status der Statistik durchgeführt. Aktive Statistiken werden aktualisiert, wenn sich die zugrunde liegenden Daten ändern.
    • ACCEPTED: Gemäß der Statistik wurden Aktionen durchgeführt. Statistiken werden akzeptiert, wenn eine zugehörige Empfehlung als CLAIMED, SUCCEEDED oder FAILED gekennzeichnet oder die Statistik direkt akzeptiert wurde. Wenn eine Statistik den Status ACCEPTED hat, können Sie den Inhalt der Statistik nicht ändern. Akzeptierte Statistiken werden nach ihrer Annahme 90 Tage lang aufbewahrt.
  • targetResources: Der vollständige Ressourcenname des Datensatzes, für den die Statistik bestimmt ist. Beispiel: //bigquery.googleapis.com/projects/my-project/datasets/my-dataset

Richtlinienstatistiken auf Dataset-Ebene als ACCEPTED markieren

Wenn Sie eine Aktion gemäß einer aktiven Statistik durchführen, können Sie diese Statistik als ACCEPTED markieren. Durch den Status ACCEPTED wird der Recommender API mitgeteilt, dass Sie gemäß dieser Statistik Aktionen durchgeführt haben, wodurch sich die Empfehlungen optimieren lassen.

Akzeptierte Statistiken werden 90 Tage lang aufbewahrt, nachdem sie als ACCEPTED markiert wurden.

gcloud

Verwenden Sie den Befehl gcloud recommender insights mark-accepted mit Ihrer Statistik-ID, um eine Statistik als ACCEPTED zu markieren.

  • INSIGHT_ID: Die ID der Statistik, die Sie aufrufen möchten. Sie finden die ID, indem Sie die Statistiken in Ihrem Projekt auflisten.
  • PROJECT_ID: Die ID des Projekts, für das Sie Statistiken verwalten möchten.
  • LOCATION: Der Speicherort des Datasets, dessen Statistik Sie als ACCEPTED markieren möchten.
  • ETAG: Eine Kennung für eine Version der Statistik. So rufen Sie das etag ab:

    1. Rufen Sie die Statistik mit dem Befehl gcloud recommender insights describe ab.
    2. Suchen Sie in der Ausgabe den etag-Wert und kopieren Sie ihn einschließlich der Anführungszeichen. Beispiel: "d3cdec23cc712bd0".
gcloud recommender insights mark-accepted INSIGHT_ID \
    --insight-type=google.iam.policy.Insight \
    --project=PROJECT_ID \
    --location=LOCATION \
    --etag=ETAG

Die Ausgabe enthält jetzt die Statistik mit dem Status ACCEPTED:

associatedRecommendations:
- recommendation: projects/1069248613794/locations/us/recommenders/google.iam.policy.Recommender/recommendations/9327f951-1ceb-488e-9e49-f17eb21f6e5e
category: SECURITY
content:
  condition:
    description: ''
    expression: ''
    location: ''
    title: ''
  currentTotalPermissionsCount: '37'
  exercisedPermissions: []
  inferredPermissions: []
  member: projectEditor:my-project
  role: roles/bigquery.dataEditor
description: 0 of the permissions in this role binding were used in the past 90 days.
etag: '"5f2f352a738f7a24"'
insightSubtype: PERMISSIONS_USAGE_BIGQUERY_DATASET
lastRefreshTime: '2024-02-04T08:00:00Z'
name: projects/1069248613794/locations/us/insightTypes/google.iam.policy.Insight/insights/101d03ad-6148-4628-943e-fcf1a3af6b57
observationPeriod: 7776000s
severity: LOW
stateInfo:
  state: ACCEPTED
targetResources:
- //bigquery.googleapis.com/projects/my-project/datasets/dataset-1

Weitere Informationen zu den Statusinformationen einer Statistik finden Sie auf dieser Seite unter Richtlinienstatistiken auf Datensatzebene prüfen.

REST

Die Methode insights.markAccepted der Recommender API markiert eine Statistik als ACCEPTED.

Ersetzen Sie diese Werte in den folgenden Anfragedaten:

  • PROJECT_ID: Die ID des Projekts, für das Sie Statistiken verwalten möchten.
  • LOCATION: Der Speicherort des Datasets, dessen Statistik Sie als ACCEPTED markieren möchten.
  • INSIGHT_ID: Die ID der Statistik, die Sie aufrufen möchten. Wenn Sie die Statistik-ID nicht kennen, können Sie sie in Ihrem Projekt finden, indem Sie die Statistiken auflisten. Die ID einer Statistik entspricht allen Angaben nach insights/ im name-Feld der Statistik.
  • ETAG: Eine Kennung für eine Version der Statistik. So rufen Sie das etag ab:
    1. Rufen Sie die Statistik mit der Methode insights.get ab.
    2. Suchen und kopieren Sie den etag-Wert aus der Antwort.

HTTP-Methode und URL:

POST https://recommender.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/insightTypes/google.iam.policy.Insight/insights/INSIGHT_ID:markAccepted

JSON-Text anfordern:

{
  "etag": "ETAG"
}

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

Die Antwort enthält jetzt die Statistik mit dem Status ACCEPTED:

{
  "name": "projects/1069248613794/locations/us/insightTypes/google.iam.policy.Insight/insights/101d03ad-6148-4628-943e-fcf1a3af6b57",
  "description": "0 of the permissions in this role binding were used in the past 90 days.",
  "content": {
    "role": "roles/bigquery.dataEditor",
    "member": "projectEditor:my-project",
    "condition": {
      "expression": "",
      "title": "",
      "description": "",
      "location": ""
    },
    "exercisedPermissions": [],
    "inferredPermissions": [],
    "currentTotalPermissionsCount": "37"
  },
  "lastRefreshTime": "2024-02-02T08:00:00Z",
  "observationPeriod": "7779600s",
  "stateInfo": {
    "state": "ACCEPTED"
  },
  "category": "SECURITY",
  "associatedRecommendations": [
    {
      "recommendation": "projects/1069248613794/locations/us/recommenders/google.iam.policy.Recommender/recommendations/9327f952-1ceb-488e-9e49-f17eb21f6e5e"
    }
  ],
  "targetResources": [
    "//bigquery.googleapis.com/projects/my-project/datasets/dataset-1"
  ],
  "insightSubtype": "PERMISSIONS_USAGE_BIGQUERY_DATASET",
  "etag": "\"35d4af47524d3f0c\"",
  "severity": "LOW"
}

Weitere Informationen zu den Statusinformationen einer Statistik finden Sie auf dieser Seite unter Richtlinienstatistiken auf Datensatzebene prüfen.

Nächste Schritte