Bigtable-Zugriffssteuerung mit IAM

Auf dieser Seite werden die Optionen für die Zugriffssteuerung in Bigtable beschrieben.

Übersicht

Bigtable nutzt Identity and Access Management (IAM) für die Zugriffssteuerung. Wenn Sie steuern möchten, wer welchen Zugriff auf welche Ressourcen hat, legen Sie IAM-Richtlinien für die Ressourcen fest.

Bigtable-Ressourcen sind hierarchisch organisiert. EinGoogle Cloud -Projekt ist das übergeordnete Element einer Bigtable-Instanz, die das übergeordnete Element ihrer Cluster und Tabellen ist. Eine Tabelle ist die übergeordnete Ressource ihrer autorisierten Ansichten, ein Cluster die übergeordnete Ressource seiner Sicherungen. Sie können die Zugriffssteuerung auf jeder Ebene konfigurieren.

Wenn Sie Berechtigungen auf einer Ebene haben, haben Sie automatisch Berechtigungen unter dieser Ebene. Wenn Sie beispielsweise Zugriff auf Projektebene haben, haben Sie Zugriff auf die Instanzen, Cluster, Tabellen, autorisierten Ansichten und kontinuierlichen materialisierten Ansichten in diesem Projekt. Wenn Sie Zugriff auf eine autorisierte Ansicht oder eine kontinuierliche materialisierte Ansicht erhalten, haben Sie nicht automatisch Zugriff auf Ressourcen auf höherer Ebene, die übergeordnete Elemente der autorisierten Ansicht oder der kontinuierlichen materialisierten Ansicht sind, z. B. die Tabelle und die Instanz. Dieses Verhalten wird als Richtlinienübernahme bezeichnet.

Weitere Informationen zur IAM-Hierarchie finden Sie unter IAM-Richtlinienübernahme.

Im Folgenden finden Sie einige Beispiele für die Verwendung der Zugriffssteuerung auf Projektebene:

  • Einem Nutzer erlauben, aus jeder Tabelle innerhalb des Projekts zu lesen, aber nicht, in ihr zu schreiben
  • Einem Nutzer erlauben, aus jeder Tabelle innerhalb des Projekts zu lesen und in diese zu schreiben, aber nicht, Instanzen zu verwalten
  • Einem Nutzer erlauben, aus jeder Tabelle innerhalb des Projekts zu lesen und in diese zu schreiben sowie Instanzen zu verwalten

Beispiele für die Verwendung der Zugriffssteuerung auf Instanzebene:

  • Einem Nutzer erlauben, aus einer beliebigen Tabelle in nur einer Instanz innerhalb eines Projekts mit mehreren Instanzen zu lesen.
  • Einem Nutzer erlauben, nur eine Instanz in einem Projekt mit mehreren Instanzen zu verwalten.

Beispiele für die Verwendung der Zugriffssteuerung auf Tabellenebene:

  • Einem Nutzer erlauben, in eine Tabelle zu schreiben, aber nicht aus der Tabelle zu lesen.
  • Einem Nutzer erlauben, aus einer Tabelle zu lesen, aber nicht in die Tabelle zu schreiben.

Beispiele für die Verwendung der Zugriffssteuerung auf Sicherungsebene:

  • Verhindern, dass ein Nutzer eine Sicherung löscht
  • Verhindern, dass ein Nutzer Daten aus der Sicherung wiederherstellt

Beispiele für die Verwendung der Zugriffssteuerung auf Ebene der autorisierten Ansicht:

  • Einem Nutzer erlauben, eine autorisierte Ansicht zu lesen, aber nicht zu ändern.
  • Einem Nutzer erlauben, Daten nur aus einer von mehreren autorisierten Ansichten einer Tabelle aufzurufen.

Beispiele für die Verwendung der Zugriffssteuerung auf Ebene der kontinuierlichen materialisierten Ansicht:

  • Einem Nutzer erlauben, aus einer kontinuierlichen materialisierten Ansicht zu lesen, aber nicht die zugrunde liegende Tabelle zu ändern.

Weitere Informationen zu IAM und seinen Funktionen finden Sie im IAM-Entwicklerhandbuch. Lesen Sie insbesondere das Kapitel Zugriff gewähren, ändern und widerrufen.

In Bigtable können Sie den folgenden Hauptkontotypen keinen Zugriff gewähren:

Listen mit Berechtigungen und Rollen, die Bigtable unterstützt, finden Sie in den folgenden Abschnitten.

Bigtable API aktivieren

Zum Aufrufen und Zuweisen von Bigtable-IAM-Rollen müssen Sie die Bigtable API für Ihr Projekt aktivieren. Bis Sie die API aktivieren, werden die Bigtable-Rollen nicht in derGoogle Cloud Console angezeigt.

Rollen, die zum Aktivieren von APIs erforderlich sind

Zum Aktivieren von APIs benötigen Sie die Berechtigung serviceusage.services.enable. Wenn Sie das Projekt erstellt haben, haben Sie diese Berechtigung wahrscheinlich bereits über die Rolle „Inhaber“ (roles/owner). Andernfalls können Sie diese Berechtigung über die Rolle „Service Usage-Administrator“ (roles/serviceusage.serviceUsageAdmin) erhalten. Informationen zum Zuweisen von Rollen

API aktivieren

Berechtigungen

In diesem Abschnitt werden die Berechtigungen beschrieben, die Bigtable unterstützt.

Berechtigungen erlauben es Nutzern, bestimmte Aktionen mit Bigtable-Ressourcen durchzuführen. Mit den Berechtigungen bigtable.instances.list können Nutzer beispielsweise alle Bigtable-Instanzen innerhalb eines Projekts auflisten. Sie erteilen Nutzern die Berechtigungen nicht direkt, sondern weisen jedem Nutzer eine vordefinierte Rolle oder benutzerdefinierte Rolle zu, die eine oder mehrere Berechtigungen beinhaltet.

In den folgenden Tabellen sind die IAM-Berechtigungen aufgeführt, die mit Bigtable verknüpft sind:

Name der Anwendungsprofil-Berechtigung Beschreibung
bigtable.appProfiles.create Bigtable-App-Profil erstellen.
bigtable.appProfiles.delete Bigtable-App-Profil löschen.
bigtable.appProfiles.get Informationen über ein Bigtable-Anwendungsprofil erhalten.
bigtable.appProfiles.list Bigtable-Anwendungsprofil einer Instanz auflisten.
bigtable.appProfiles.update Die Einstellungen für ein Bigtable-Anwendungsprofil aktualisieren.
Name der Sicherungsberechtigung Beschreibung
bigtable.backups.create Bigtable-Sicherung erstellen.
bigtable.backups.delete Bigtable-Sicherung löschen.
bigtable.backups.get Informationen zu einer Bigtable-Sicherung abrufen.
bigtable.backups.getIamPolicy Rufen Sie die IAM-Richtlinie einer Sicherung ab.
bigtable.backups.list Bigtable-Sicherungen auflisten.
bigtable.backups.restore Aus einer Bigtable-Sicherung wiederherstellen.
bigtable.backups.testIamPermissions Die Berechtigungen des Aufrufers für eine bestimmte Sicherung abrufen.
bigtable.backups.read Aus einer Bigtable-Sicherung lesen.
bigtable.backups.setIamPolicy Sicherungs-ACLs aktualisieren.
bigtable.backups.update Ablauf einer Bigtable-Sicherung ändern.
Name der Clusterberechtigung Beschreibung
bigtable.clusters.create Bigtable-Cluster erstellen.
bigtable.clusters.delete Bigtable-Cluster löschen.
bigtable.clusters.get Informationen zu einem Bigtable-Cluster abrufen.
bigtable.clusters.list Die Instanzen eines Bigtable-Clusters auflisten.
bigtable.clusters.update Die Einstellungen für einen Bigtable-Cluster aktualisieren
Name der Berechtigung für Hot-Tabellenreihen Beschreibung
bigtable.hotTablets.list Die meistgenutzten Tabellenreihen für einen Cluster auflisten.
Name der Berechtigung für die In-Memory-Stufe (Vorabversion) Beschreibung
bigtable.memoryLayer.get Informationen zu einer In-Memory-Stufe von Bigtable ansehen.
bigtable.memoryLayer.list Bigtable-In-Memory-Stufen auflisten.
bigtable.memoryLayer.update Aktivieren, deaktivieren oder ändern Sie die Größe der Bigtable-In-Memory-Stufe.
Name der Instanzberechtigung Beschreibung
bigtable.instances.create Bigtable-Instanz erstellen.
bigtable.instances.createTagBinding Tag erstellen.
bigtable.instances.delete Bigtable-Instanz löschen.
bigtable.instances.deleteTagBinding Tag löschen.
bigtable.instances.get Informationen zu einer Bigtable-Instanz abrufen.
bigtable.instances.getIamPolicy IAM-Richtlinie einer Instanz abrufen.
bigtable.instances.list Die Instanzen eines Bigtable-Projekts auflisten.
bigtable.instances.listEffectiveTagBindings Alle für eine Instanz geltenden Tags auflisten.
bigtable.instances.listTagBindings Die Tags einer Instanz auflisten.
bigtable.instances.ping Anfragen zur Kanalinitialisierung senden.
bigtable.instances.executeQuery Senden Sie ExecuteQuery- und PrepareQuery-Anfragen an eine Instanz.
bigtable.instances.setIamPolicy ACLs aktualisieren
bigtable.instances.update Die Einstellungen für eine Bigtable-Instanz aktualisieren.
Name der Berechtigung in Key Visualizer Beschreibung
bigtable.keyvisualizer.get Ruft Key Visualizer-Informationen zu einer Tabelle ab, darunter Metadaten zu Zugriffsmustern und Zeilenschlüsselverteilungen.
bigtable.keyvisualizer.list Listet die verfügbaren Key Visualizer-Informationen für eine Tabelle auf.
Name der Standortberechtigung Beschreibung
bigtable.locations.list Bigtable-Standorte auflisten.
Name der Tabellen-Berechtigung Beschreibung
bigtable.tables.checkConsistency Aktualität einer replizierten Tabelle prüfen
bigtable.tables.create Tabelle erstellen
bigtable.tables.delete Tabelle löschen
bigtable.tables.generateConsistencyToken Token generieren, um zu prüfen, ob eine replizierte Tabelle aktuell ist
bigtable.tables.get Informationen über eine Tabelle einschließlich Spaltenfamilien und ihrer individuellen Einstellungen erhalten
bigtable.tables.getIamPolicy IAM-Richtlinie einer Tabelle abrufen.
bigtable.tables.list Tabellen in einer Instanz auflisten
bigtable.tables.mutateRows Zeilen innerhalb einer Tabelle bearbeiten oder die Tabelle kürzen
bigtable.tables.readRows Zeilen in einer Tabelle lesen Dazu gehören Informationen zur Tabelle, z. B. Spaltenfamilien und ihre individuellen Einstellungen.
bigtable.tables.sampleRowKeys Beispiel der Zeilenschlüssel erhalten, die in einer Tabelle verwendet werden
bigtable.tables.setIamPolicy Tabellen-ACLs aktualisieren
bigtable.tables.undelete Gelöschte Tabelle wiederherstellen.
bigtable.tables.update Die Einstellungen für eine Tabelle einschließlich der Spaltenfamilien und ihrer individuellen Einstellungen aktualisieren
Name der Standortberechtigung Beschreibung
bigtable.locations.list Bigtable-Standorte auflisten.
Name der Berechtigung für autorisierte Ansichten Beschreibung
bigtable.authorizedViews.create Erstellen Sie eine autorisierte Ansicht.
bigtable.authorizedViews.delete Löschen Sie eine autorisierte Ansicht.
bigtable.authorizedViews.get Informationen zu einer autorisierten Ansicht abrufen
bigtable.authorizedViews.getIamPolicy IAM-Richtlinie einer autorisierten Ansicht abrufen.
bigtable.authorizedViews.list Autorisierte Ansichten in einer Tabelle auflisten
bigtable.authorizedViews.mutateRows Zeilen in einer autorisierten Ansicht ändern
bigtable.authorizedViews.readRows Zeilen aus einer autorisierten Ansicht lesen.
bigtable.authorizedViews.sampleRowKeys Beispiel der Zeilenschlüssel erhalten, die in einer autorisierten Ansicht verwendet werden
bigtable.authorizedViews.setIamPolicy Zugriffssteuerungsrichtlinien für eine autorisierte Ansicht aktualisieren
bigtable.authorizedViews.update Einstellungen für eine autorisierte Ansicht aktualisieren
Name der Berechtigung für kontinuierliche materialisierte Ansichten Beschreibung
bigtable.materializedViews.create Kontinuierliche materialisierte Ansicht erstellen
bigtable.materializedViews.delete Löschen Sie eine kontinuierliche materialisierte Ansicht.
bigtable.materializedViews.get Informationen zu einer kontinuierlichen materialisierten Ansicht abrufen.
bigtable.materializedViews.getIamPolicy IAM-Richtlinie einer kontinuierlichen materialisierten Ansicht abrufen.
bigtable.materializedViews.list Kontinuierlich aktualisierte materialisierte Ansichten in einer Instanz auflisten
bigtable.materializedViews.readRows Zeilen aus einer kontinuierlich aktualisierten materialisierten Ansicht lesen.
bigtable.materializedViews.sampleRowKeys Beispiel der Zeilenschlüssel erhalten, die in einer kontinuierlichen materialisierten Ansicht verwendet werden
bigtable.materializedViews.setIamPolicy Zugriffssteuerungsrichtlinien für eine kontinuierliche materialisierte Ansicht aktualisieren.
bigtable.materializedViews.update Einstellungen für eine kontinuierliche materialisierte Ansicht aktualisieren

Vordefinierte Rollen

Jede vordefinierte Rolle besteht aus einem Bundle mit einer oder mehreren Berechtigungen. Beispielsweise bietet roles/bigtable.reader Lesezugriff auf Informationen zu Bigtable-Instanzen, -Clustern, -Tabellen und -Spaltenfamilien sowie auf die in den Tabellen enthaltenen Daten. Sie weisen den Nutzern oder Gruppen Rollen zu, die es ihnen erlauben, Aktionen mit den Ressourcen in Ihrem Projekt durchzuführen.

In der folgenden Tabelle werden die vordefinierten Rollen für Bigtable aufgeführt, einschließlich einer Liste der Berechtigungen, die mit jeder Rolle verknüpft sind:

Role Permissions

(roles/bigtable.admin)

Administers all Bigtable instances within a project, including the data stored within tables. Can create new instances. Intended for project administrators.

Lowest-level resources where you can grant this role:

  • Table

bigtable.*

  • bigtable.appProfiles.create
  • bigtable.appProfiles.delete
  • bigtable.appProfiles.get
  • bigtable.appProfiles.list
  • bigtable.appProfiles.update
  • bigtable.authorizedViews.create
  • bigtable.authorizedViews.createTagBinding
  • bigtable.authorizedViews.delete
  • bigtable.authorizedViews.deleteTagBinding
  • bigtable.authorizedViews.get
  • bigtable.authorizedViews.getIamPolicy
  • bigtable.authorizedViews.list
  • bigtable.authorizedViews.listEffectiveTags
  • bigtable.authorizedViews.listTagBindings
  • bigtable.authorizedViews.mutateRows
  • bigtable.authorizedViews.readRows
  • bigtable.authorizedViews.sampleRowKeys
  • bigtable.authorizedViews.setIamPolicy
  • bigtable.authorizedViews.update
  • bigtable.backups.create
  • bigtable.backups.delete
  • bigtable.backups.get
  • bigtable.backups.getIamPolicy
  • bigtable.backups.list
  • bigtable.backups.read
  • bigtable.backups.restore
  • bigtable.backups.setIamPolicy
  • bigtable.backups.update
  • bigtable.clusters.create
  • bigtable.clusters.delete
  • bigtable.clusters.get
  • bigtable.clusters.list
  • bigtable.clusters.update
  • bigtable.hotTablets.list
  • bigtable.instances.create
  • bigtable.instances.createTagBinding
  • bigtable.instances.delete
  • bigtable.instances.deleteTagBinding
  • bigtable.instances.executeQuery
  • bigtable.instances.get
  • bigtable.instances.getIamPolicy
  • bigtable.instances.list
  • bigtable.instances.listEffectiveTags
  • bigtable.instances.listTagBindings
  • bigtable.instances.ping
  • bigtable.instances.setIamPolicy
  • bigtable.instances.update
  • bigtable.keyvisualizer.get
  • bigtable.keyvisualizer.list
  • bigtable.locations.list
  • bigtable.logicalViews.create
  • bigtable.logicalViews.delete
  • bigtable.logicalViews.get
  • bigtable.logicalViews.getIamPolicy
  • bigtable.logicalViews.list
  • bigtable.logicalViews.readRows
  • bigtable.logicalViews.setIamPolicy
  • bigtable.logicalViews.update
  • bigtable.materializedViews.create
  • bigtable.materializedViews.delete
  • bigtable.materializedViews.get
  • bigtable.materializedViews.getIamPolicy
  • bigtable.materializedViews.list
  • bigtable.materializedViews.readRows
  • bigtable.materializedViews.sampleRowKeys
  • bigtable.materializedViews.setIamPolicy
  • bigtable.materializedViews.update
  • bigtable.memoryLayers.get
  • bigtable.memoryLayers.list
  • bigtable.memoryLayers.update
  • bigtable.schemaBundles.create
  • bigtable.schemaBundles.delete
  • bigtable.schemaBundles.get
  • bigtable.schemaBundles.getIamPolicy
  • bigtable.schemaBundles.list
  • bigtable.schemaBundles.setIamPolicy
  • bigtable.schemaBundles.update
  • bigtable.tables.checkConsistency
  • bigtable.tables.create
  • bigtable.tables.delete
  • bigtable.tables.generateConsistencyToken