Probleme mit der Zugriffssteuerung beheben
In diesem Dokument wird beschrieben, wie Sie Sicherheitsprobleme mit IAM-Berechtigungen (Identity and Access Management), der Zugriffssteuerung auf Spaltenebene und vom Kunden verwalteten Verschlüsselungsschlüsseln (Customer-Managed Encryption Keys, CMEK) in BigQuery beheben.
Probleme mit IAM-Berechtigungen führen in der Regel zu Access Denied-Fehlern wie den folgenden:
Access Denied: Project PROJECT_ID: User does not have bigquery.jobs.create permission in project PROJECT_ID.Access Denied: Project PROJECT_ID: User does not have bigquery.datasets.get permission on dataset DATASET.User does not have permission to query table PROJECT_ID:DATASET.TABLE.Access Denied: Table PROJECT_ID:DATASET.TABLE: User does not have permission to query table PROJECT_ID:DATASET.TABLE, or perhaps it does not exist.Access Denied: User PRINCIPAL does not have permission to perform bigquery.tables.getData on resource 'projects/PROJECT_ID/datasets/DATASET/tables/TABLE'.
Hinweis
- Wenn Sie den Zugriff eines Principals auf eine BigQuery-Ressource beheben möchten, müssen Sie die erforderlichen IAM-Berechtigungen haben.
Informationen zum Problem sammeln
Der erste Schritt bei der Fehlerbehebung eines Problems mit dem Ressourcenzugriff besteht darin, die fehlende Berechtigung, das IAM-Hauptkonto, dem der Zugriff verweigert wurde, und die Ressource zu ermitteln, auf die das Hauptkonto zugreifen wollte.
Informationen aus dem Fehler- oder Jobverlauf abrufen
Informationen zum Prinzipal, zur Ressource und zu den Berechtigungen finden Sie in der Ausgabe des bq-Befehlszeilentools, in der API-Antwort oder in BigQuery in der Google Cloud Console.
Wenn Sie beispielsweise versuchen, eine Abfrage mit unzureichenden Berechtigungen auszuführen, wird im Bereich Abfrageergebnisse der Google Cloud Console auf dem Tab Jobinformationen ein Fehler wie der folgende angezeigt.
Sehen Sie sich den Fehler an, um das Hauptkonto, die Ressource und die Berechtigungen zu ermitteln.
In einigen Fällen können Sie fehlende Berechtigungen direkt über die Fehlermeldung anfordern. Weitere Informationen finden Sie in der IAM-Dokumentation unter Fehlermeldungen zu Berechtigungen.
Informationen aus den Cloud-Audit-Logs abrufen
Wenn die Fehlermeldung allgemein gehalten ist, Informationen fehlen oder die Aktion in einem Hintergrundprozess fehlgeschlagen ist, verwenden Sie den Log-Explorer für Cloud-Audit-Logs, um Informationen zum Fehler zu erhalten.
Rufen Sie in der Google Cloud Console die Seite Log-Explorer auf.
Alternativ können Sie im Navigationsmenü Monitoring > Log-Explorer auswählen.
Wählen Sie im Log-Explorer für den Logbereich Projektlogs aus.
Geben Sie im Abfragefenster die folgende Abfrage ein, um berechtigungsbezogene Fehler aus den BigQuery-Datenzugriffslogs abzurufen:
resource.type="bigquery_resource" AND logName="projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Fdata_access" AND protoPayload.status.message:"Access Denied" OR protoPayload.status.message:"Permission denied" OR protoPayload.status.code=7
Ersetzen Sie PROJECT_ID durch Ihre Projekt-ID.
Maximieren Sie in den Abfrageergebnissen den Logeintrag, der Ihrem fehlgeschlagenen Vorgang entspricht.
Maximieren Sie im Abschnitt
protoPayloaddas ArrayauthorizationInfound dann jeden Knoten im ArrayauthorizationInfo.Das
authorizationInfo-Array enthält alle Berechtigungsprüfungen, die während des API-Aufrufs durchgeführt wurden.Die Ursache des Fehlers finden Sie im Eintrag
granted: false. Der Eintraggranted: falseenthält die folgenden Informationen:permission: Der IAM-Berechtigungsstring, der geprüft wurde. Beispiel:bigquery.tables.getData.resource: Der voll qualifizierte Name der Ressource, auf die das Prinzipal zuzugreifen versucht hat. Beispiel:projects/myproject/datasets/mydataset/tables/mytableprincipalEmail(falls verfügbar): Dies ist das inprotoPayload.authenticationInforeferenzierte Hauptkonto, das die Aktion versucht hat.
Policy Analyzer für Zulassungsrichtlinien verwenden
Mit Policy Analyzer für Zulassungsrichtlinien können Sie herausfinden, welche IAM-Hauptkonten gemäß Ihren IAM-Zulassungsrichtlinien Zugriff auf welche BigQuery-Ressourcen haben.
Nachdem Sie Informationen zum Berechtigungsfehler gesammelt haben, können Sie mit dem Policy Analyzer nachvollziehen, warum dem Hauptkonto der erforderliche Zugriff fehlt. Mit diesem Tool werden alle relevanten Richtlinien, Mitgliedschaften in Google-Gruppen und die Übernahme von übergeordneten Ressourcen wie einem Projekt, einem Ordner und Ihrer Organisation analysiert.
Wenn Sie Policy Analyzer für Zulassungsrichtlinien verwenden möchten, erstellen Sie eine Analyseabfrage, geben einen Bereich für die Analyse an und führen die Abfrage dann aus.
Rufen Sie in der Google Cloud Console die Seite Policy Analyzer auf.
Alternativ können Sie im Navigationsmenü IAM & Verwaltung > Policy Analyzer auswählen.
Klicken Sie auf Benutzerdefinierte Abfrage erstellen.
Geben Sie auf der Seite Abfrage konfigurieren die zuvor erfassten Informationen ein:
Prüfen Sie im Abschnitt Bereich auswählen im Feld Abfragebereich auswählen, ob Ihr aktuelles Projekt angezeigt wird. Klicken Sie andernfalls auf Durchsuchen, um eine andere Ressource auszuwählen.
Wählen Sie im Abschnitt Abfrageparameter festlegen für Parameter 1 die Option Hauptkonto aus und geben Sie im Feld Hauptkonto die E-Mail-Adresse des Nutzers, der Gruppe oder des Dienstkontos ein.
Klicken Sie auf Parameter hinzufügen.
Wählen Sie für Parameter 2 die Option Berechtigung aus. Klicken Sie im Feld Berechtigung auf Auswählen, wählen Sie die BigQuery-Berechtigung aus und klicken Sie dann auf Hinzufügen. Wählen Sie beispielsweise
bigquery.tables.getDataaus.Klicken Sie auf Parameter hinzufügen.
Wählen Sie für Parameter 3 die Option Ressource aus und geben Sie im Feld Ressource den vollständig qualifizierten Ressourcennamen ein. Der Ressourcenname muss das Dienstpräfix enthalten, wie in den folgenden Beispielen:
- BigQuery-Projekt:
//cloudresourcemanager.googleapis.com/projects/PROJECT_ID - BigQuery-Dataset:
//bigquery.googleapis.com/projects/PROJECT_ID/datasets/DATASET - BigQuery-Tabelle:
//bigquery.googleapis.com/projects/PROJECT/datasets/DATASET/tables/TABLE
- BigQuery-Projekt:
Klicken Sie im Bereich Benutzerdefinierte Abfrage auf Analysieren > Abfrage ausführen.
Sehen Sie sich die Abfrageergebnisse an. Das Ergebnis kann eines der folgenden sein:
- Eine leere Liste. Keine Ergebnisse bestätigen, dass das Hauptkonto nicht die erforderliche Berechtigung hat. Sie müssen dem Hauptkonto eine Rolle zuweisen, die die richtigen Berechtigungen bietet.
- Ein oder mehrere Ergebnisse Wenn der Analyzer eine Zulassungsrichtlinie findet, ist eine bestimmte Form von Zugriff vorhanden. Klicken Sie bei jedem Ergebnis auf Bindung ansehen, um die Rollen aufzurufen, die Zugriff auf die Ressource gewähren, zu der das Hauptkonto gehört. Die Richtlinienbindung gibt an, ob der Zugriff durch Gruppenmitgliedschaft oder Übernahme gewährt wird oder ob der Zugriff durch eine IAM-Bedingung oder eine IAM-Ablehnungsrichtlinie verweigert wird.
Die richtige IAM-Rolle finden, die die erforderlichen Berechtigungen gewährt
Nachdem Sie bestätigt haben, dass das Hauptkonto nicht über ausreichenden Zugriff verfügt, müssen Sie die entsprechende vordefinierte oder benutzerdefinierte IAM-Rolle finden, die die erforderlichen Berechtigungen gewährt. Die von Ihnen ausgewählte Rolle sollte dem Prinzip der geringsten Berechtigung entsprechen.
Wenn Ihre Organisation benutzerdefinierte Rollen verwendet, können Sie die richtige Rolle finden, indem Sie alle benutzerdefinierten Rollen auflisten, die in Ihrem Projekt oder in Ihrer Organisation erstellt wurden. In der Google Cloud Console können Sie beispielsweise auf der Seite Rollen die Liste nach Typ:Benutzerdefiniert filtern, um nur benutzerdefinierte Rollen zu sehen.
So finden Sie die richtige vordefinierte IAM-Rolle:
Öffnen Sie den Abschnitt zu BigQuery-Berechtigungen auf der Seite „IAM-Rollen und ‑Berechtigungen für BigQuery“.
Geben Sie in die Suchleiste Berechtigung eingeben die Berechtigung ein, die Sie aus der Fehlermeldung, dem Jobverlauf oder den Audit-Logs abgerufen haben. Beispiel:
bigquery.tables.getDataIn den Suchergebnissen werden alle vordefinierten BigQuery-Rollen angezeigt, die die Berechtigung gewähren.
Wenden Sie das Prinzip der geringsten Berechtigung an: Wählen Sie in der Liste der Rollen die Rolle mit den geringsten Berechtigungen aus, die die erforderlichen Berechtigungen gewährt. Wenn Sie beispielsweise nach
bigquery.tables.getDatagesucht haben, um die Möglichkeit zum Abfragen von Tabellendaten zu gewähren, ist BigQuery-Datenbetrachter die Rolle mit den geringsten Berechtigungen, die diese Berechtigung gewährt.Weisen Sie dem Prinzipal die entsprechende Rolle zu. Informationen zum Zuweisen einer IAM-Rolle zu einer BigQuery-Ressource finden Sie unter Zugriff auf Ressourcen mit IAM steuern.
Probleme mit der Zugriffssteuerung auf Spaltenebene beheben
In den folgenden Abschnitten wird erläutert, wie Sie Probleme mit der Zugriffssteuerung auf Spaltenebene und Data Catalog-Richtlinien-Tags beheben.
Es werden keine Data Catalog-Rollen angezeigt.
Wenn Sie Rollen wie „Data Catalog: Detaillierter Lesezugriff“ nicht sehen, haben Sie die Data Catalog API möglicherweise nicht in Ihrem Projekt aktiviert. Unter Vorbereitung ist angegeben, wie Sie die Data Catalog API aktivieren. Die Data Catalog-Rollen werden einige Minuten nach der Aktivierung der Data Catalog API angezeigt.
Ich kann die Seite „Taxonomien“ nicht aufrufen.
Sie benötigen zusätzliche Berechtigungen, um die Seite Richtlinien-Tag-Taxonomien in derGoogle Cloud -Konsole aufzurufen. Die Data Catalog-Rolle Richtlinien-Tag-Administrator hat beispielsweise Zugriff auf die Seite Taxonomien.
Ich habe Richtlinien-Tags erzwungen, aber es scheint nicht zu funktionieren.
Wenn Sie weiterhin Abfrageergebnisse für ein Konto erhalten, das keinen Zugriff haben sollte, werden möglicherweise zwischengespeicherte Ergebnisse für das Konto abgerufen. Wenn Sie die Abfrage zuvor erfolgreich ausgeführt und dann Richtlinientags erzwungen haben, erhalten Sie möglicherweise Ergebnisse aus dem Cache für Abfrageergebnisse. Standardmäßig werden Abfrageergebnisse 24 Stunden lang im Cache gespeichert. Die Abfrage schlägt sofort fehl, wenn Sie den Ergebnis-Cache deaktivieren. Weitere Informationen zum Caching finden Sie unter Auswirkungen der Zugriffssteuerung auf Spaltenebene.
Im Allgemeinen dauert es etwa 30 Sekunden, bis Aktualisierungen für IAM ausgeführt werden. Änderungen an der Richtlinien-Tag-Hierarchie müssten nach maximal 30 Minuten wirksam werden.
Ich habe nicht die Berechtigung, aus einer Tabelle mit Sicherheit auf Spaltenebene zu lesen.
Sie benötigen entweder die Rolle „Detaillierter Leser“ oder die Rolle „Maskierter Leser“ auf verschiedenen Ebenen, z. B. Organisations-, Ordner-, Projekt- und Richtlinien-Tag. Die Rolle „Detaillierter Leser“ gewährt Zugriff auf Rohdaten, während die Rolle „Maskierter Leser“ Zugriff auf maskierte Daten gewährt. Sie können die IAM-Fehlerbehebung verwenden, um diese Berechtigung auf Projektebene zu prüfen.
Ich habe eine detaillierte Zugriffssteuerung in der Richtlinien-Tag-Taxonomie eingerichtet, aber Nutzer sehen geschützte Daten
Prüfen Sie zur Fehlerbehebung Folgendes:
- Prüfen Sie auf der Seite Taxonomien für Richtlinien-Tags des Sicherheitszentrums von BigQuery, ob der Schalter Zugriffssteuerung erzwingen auf Ein steht.
Achten Sie darauf, dass Ihre Abfragen keine im Cache gespeicherten Abfrageergebnisse verwenden. Wenn Sie das bq-Befehlszeilentool zum Testen Ihrer Abfragen verwenden, deaktivieren Sie den Abfragecache mit dem Flag
--nouse_cache. Beispiel:bq query --nouse_cache --use_legacy_sql=false "SELECT * EXCEPT (customer_pii) FROM my_table;"
Hinweise zur Projektmigration
Richtlinien-Tags und ‑Taxonomien sind in einer bestimmten Google Cloud Organisation verankert und werden nicht automatisch neu zugeordnet, wenn ein Projekt zu einer neuen Organisation migriert wird. Wenn Sie ein Projekt, in dem Richtlinien-Tags für die Zugriffssteuerung auf Spaltenebene verwendet werden, in eine andere Organisation migrieren, treten die folgenden Probleme auf:
- Die Richtlinientags können in der Google Cloud Console im migrierten Projekt nicht mehr verwaltet werden.
- Sie können diese Richtlinien-Tags nicht auf neue Spalten im migrierten Projekt anwenden.
- Vorhandene Zugriffssteuerungen auf Spaltenebene sind möglicherweise weiterhin vorhanden, aber die Verknüpfung zur Quelltaxonomie in der ursprünglichen Organisation ist für Verwaltungszwecke unterbrochen.
Zur Behebung dieses Problems ist ein manuelles Eingreifen des Google Cloud -Supports erforderlich, um die Taxonomie der neuen Organisation neu zuzuordnen. Wenn Sie ein Projekt mit Richtlinientags migriert haben und diese Probleme auftreten, wenden Sie sich an Cloud Customer Care.
Fehlerbehebung bei kundenverwalteten Verschlüsselungsschlüsseln
In der folgenden Liste werden häufige Fehler und empfohlene Lösungen beschrieben, wenn Sie kundenverwaltete Verschlüsselungsschlüssel (Customer-Managed Encryption Keys, CMEK) mit Cloud Key Management Service verwenden:
- Fehler:
Please grant Cloud KMS CryptoKey Encrypter/Decrypter role - Lösung:Das mit Ihrem Projekt verknüpfte BigQuery-Dienstkonto hat nicht die erforderliche IAM-Berechtigung für den angegebenen Cloud KMS-Schlüssel. Folgen Sie der Anleitung in der Fehlermeldung oder unter Berechtigungen zum Verschlüsseln und Entschlüsseln erteilen, um die erforderliche IAM-Berechtigung zu erteilen.
- Fehler:
Existing table encryption settings don't match encryption settings specified in the request - Lösung:Dieser Fehler kann auftreten, wenn die Verschlüsselungseinstellungen für die Zieltabelle von den Verschlüsselungseinstellungen in Ihrer Anfrage abweichen. Verwenden Sie zum Beheben dieses Problems die Schreibanordnung
TRUNCATE, um die Tabelle zu ersetzen, oder geben Sie eine andere Zieltabelle an. - Fehler:
This region is not supported - Lösung:Die Region des Cloud KMS-Schlüssels stimmt nicht mit der Region des BigQuery-Datasets für die Zieltabelle überein. Um dieses Problem zu beheben, wählen Sie einen Schlüssel aus einer Region aus, die mit Ihrem Dataset übereinstimmt, oder laden Sie Daten in ein Dataset, das mit der Schlüsselregion übereinstimmt.
- Fehler:
Your administrator requires that you specify an encryption key for queries in project PROJECT_ID. - Lösung:Eine Organisationsrichtlinie hat das Erstellen einer Ressource oder das Ausführen einer Abfrage verhindert. Weitere Informationen zu dieser Richtlinie finden Sie unter CMEKs für alle Ressourcen erzwingen.
- Fehler:
Your administrator prevents using KMS keys from project KMS_PROJECT_ID to protect resources in project PROJECT_ID. - Lösung:Eine Organisationsrichtlinie hat das Erstellen einer Ressource oder das Ausführen einer Abfrage verhindert. Weitere Informationen zu dieser Richtlinie finden Sie unter Cloud KMS-Schlüssel für ein BigQuery-Projekt einschränken.
Nächste Schritte
- Eine Liste aller BigQuery-IAM-Rollen und -Berechtigungen finden Sie unter BigQuery-IAM-Rollen und -Berechtigungen.
- Weitere Informationen zur Sicherheit auf Spaltenebene finden Sie unter Zugriff mit Zugriffssteuerung auf Spaltenebene beschränken.
- Weitere Informationen zu kundenverwalteten Verschlüsselungsschlüsseln finden Sie unter Daten mit Cloud KMS-Schlüsseln schützen.
- Weitere Informationen zur Fehlerbehebung bei Zulassungs- und Ablehnungsrichtlinien in IAM finden Sie unter Fehlerbehebung bei Richtlinien.
- Weitere Informationen zum Policy Analyzer für Policy Intelligence finden Sie unter Policy Analyzer für „allow”-Richtlinien.
- Weitere Informationen zur Richtlinien-Fehlerbehebung finden Sie unter Richtlinien-Fehlerbehebung verwenden.