Richtlinienstatistiken für BigQuery-Datasets überprüfen

Auf dieser Seite wird beschrieben, wie Sie Richtlinienstatistiken auf Dataset-Ebene verwalten. Das sind auf maschinellem Lernen basierende Ergebnisse zur Nutzung von Berechtigungen für Ihre BigQuery-Datasets. Mithilfe von Richtlinienstatistiken können Sie ermitteln, welche Hauptkonten Berechtigungen haben, die sie nicht benötigen.

Auf dieser Seite geht es um Richtlinienstatistiken für Datasets. Recommender bietet außerdem Richtlinienstatistiken für die folgenden Ressourcentypen:

Richtlinienstatistiken auf Dataset-Ebene sind manchmal mit Rollenempfehlungen verknüpft. Rollenempfehlungen schlagen Maßnahmen vor, mit denen Sie die durch Richtlinienstatistiken auf Dataset-Ebene identifizierten Probleme beheben können.

Hinweise

Erforderliche Rollen

Bitten Sie Ihren Administrator, Ihnen die folgenden IAM-Rollen für Ihr Projekt zu gewähren, damit Sie die erforderlichen Berechtigungen zum Verwalten von Richtlinienstatistiken auf Dataset-Ebene erhalten:

  • BigQuery-Dateninhaber (roles/bigquery.dataOwner)
  • IAM Recommender-Administrator (`roles/recommender.iamAdmin`)
  • Verwalten Sie Richtlinienstatistiken auf Dataset-Ebene mit der gcloud CLI oder REST API: Service Usage-Nutzer (`roles/serviceusage.serviceUsageConsumer`)

Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff verwalten.

Diese vordefinierten Rollen enthalten die Berechtigungen, die zum Verwalten von Richtlinienstatistiken auf Dataset-Ebene 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 ansehen:
    • recommender.iamPolicyInsights.get
    • recommender.iamPolicyInsights.list
  • Richtlinienstatistiken auf Dataset-Ebene ändern: recommender.iamPolicyInsights.update
  • Verwalten Sie Richtlinienstatistiken auf Dataset-Ebene mit der gcloud CLI oder REST API: serviceusage.services.use

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

Richtlinienstatistiken auf Dataset-Ebene auflisten

Wenn Sie alle Richtlinienstatistiken auf Dataset-Ebene für Ihr Projekt auflisten möchten, verwenden Sie eine der folgenden Methoden:

gcloud

Verwenden Sie den Befehl gcloud recommender insights list, um alle Richtlinienstatistiken auf Dataset-Ebene für Ihr Projekt anzusehen.

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 Datasets, 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 listet alle Richtlinienstatistiken auf Dataset-Ebene für Ihr Projekt am angegebenen Standort auf. 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

Mit der Methode insights.list der Recommender API werden alle Richtlinienstatistiken auf Dataset-Ebene für Ihr Projekt aufgelistet.

Bevor Sie die Anfragedaten verwenden, ersetzen Sie die folgenden Werte:

  • PROJECT_ID: Die ID des Projekts, für das Sie Statistiken auflisten möchten.
  • LOCATION: Der Speicherort der Datasets, 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 listet alle Richtlinienstatistiken auf Dataset-Ebene für Ihr Projekt am angegebenen Standort auf. 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 Dataset-Ebene prüfen.

Einzelne Richtlinienstatistik auf Dataset-Ebene 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 können die ID ermitteln, indem Sie die Statistiken für Ihr Projekt auflisten.
  • PROJECT_ID: Die ID des Projekts, für das Sie Statistiken verwalten möchten.
  • LOCATION: Der Speicherort des Datasets, dessen Informationen 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 in den letzten 90 Tagen keine der Berechtigungen in 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 Dataset-Ebene prüfen.

REST

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

Bevor Sie die Anfragedaten verwenden, ersetzen Sie die folgenden Werte:

  • PROJECT_ID: Die ID des Projekts, für das Sie Statistiken verwalten möchten.
  • LOCATION: Der Speicherort des Datasets, dessen Informationen 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 ermitteln, indem Sie die Statistiken in Ihrem Projekt 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 in den letzten 90 Tagen keine der Berechtigungen in 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 Dataset-Ebene prüfen.

Richtlinienstatistiken auf Dataset-Ebene überprü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 in der Rolle, die das Hauptkonto während des Beobachtungszeitraums verwendet hat.
    • inferredPermissions: Die Berechtigungen in der Rolle, die Recommender durch ML bestimmt hat, die das Hauptkonto aufgrund seiner angewendeten 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, auf das sich die Statistik bezieht.
    • 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 Datasets, auf das sich die Statistik bezieht. Beispiel: //bigquery.googleapis.com/projects/my-project/datasets/my-dataset

Richtlinienstatistik 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 können die ID ermitteln, indem Sie die Statistiken für Ihr 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 Dataset-Ebene prüfen.

REST

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

Bevor Sie die Anfragedaten verwenden, ersetzen Sie die folgenden Werte:

  • 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 ermitteln, indem Sie die Statistiken in Ihrem Projekt 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 der Anfrage:

{
  "etag": "ETAG"
}

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

Die Antwort enthält die Statistik, jetzt 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 Dataset-Ebene prüfen.

Nächste Schritte