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
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 |
|---|---|
Bigtable Administrator( 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:
|
|