Autorisierte Ansichten erstellen und verwalten

In diesem Dokument wird beschrieben, wie Sie mit der Google Cloud CLI oder der Google Cloud Console autorisierte Ansichten definieren, erstellen und andere Verwaltungsvorgänge ausführen. Bevor Sie dieses Dokument lesen, sollten Sie sich mit der Übersicht über autorisierte Ansichten vertraut machen.

Erforderliche Rollen

Bitten Sie Ihren Administrator, Ihnen die IAM-Rolle Bigtable Admin (roles/bigtable.admin) für die zugrunde liegende Tabelle zuzuweisen, um die Berechtigungen zu erhalten, die Sie für administrative Vorgänge auf einer autorisierten Ansicht benötigen. Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff auf Projekte, Ordner und Organisationen verwalten.

Diese vordefinierte Rolle enthält die Berechtigungen, die zum Ausführen administrativer Vorgänge für eine autorisierte Ansicht erforderlich sind. Erweitern Sie den Abschnitt Erforderliche Berechtigungen, um die erforderlichen Berechtigungen anzuzeigen:

Erforderliche Berechtigungen

Die folgenden Berechtigungen sind erforderlich, um administrative Vorgänge für eine autorisierte Ansicht auszuführen:

  • bigtable.authorizedViews.get
  • bigtable.authorizedViews.list
  • bigtable.authorizedViews.create
  • bigtable.authorizedViews.update
  • bigtable.authorizedViews.delete
  • bigtable.authorizedViews.getIamPolicy
  • bigtable.authorizedViews.setIamPolicy
  • bigtable.authorizedViews.readRows
  • bigtable.authorizedViews.sampleRowKeys
  • bigtable.authorizedViews.mutateRows

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

Informationen zum Verwalten von Bigtable-IAM-Rollen auf Ebene der autorisierten Ansicht finden Sie unter IAM-Verwaltung auf Ebene der autorisierten Ansicht.

Autorisierte Ansicht erstellen

Berücksichtigen Sie beim Erstellen einer autorisierten Ansicht die Abfragen, die darauf ausgeführt werden. Lese-, Schreib- und Löschanfragen, die an eine autorisierte Ansicht gesendet werden, dürfen nur auf Daten in der autorisierten Ansicht verweisen. Wenn Sie beispielsweise versuchen, eine Zeile zu lesen, in der Spalten in der Tabelle enthalten sind, die nicht in Ihrer autorisierten Ansicht enthalten sind, oder in diese Zeile zu schreiben oder sie zu löschen, schlägt die Anfrage fehl.

Um zu vermeiden, dass Datenanfragen an eine autorisierte Ansicht fehlschlagen, weil der Tabelle Spalten hinzugefügt wurden, die nicht in der autorisierten Ansicht enthalten sind, können Sie für eine Spaltenfamilie ein leeres Spaltenqualifizierer-Präfix „"" angeben.

Sie können pro autorisierter Datenansicht bis zu 100 Definitionen angeben.

Console

  1. Öffnen Sie in der Google Cloud Console die Liste der Bigtable-Instanzen.

    Liste der Instanzen öffnen

  2. Klicken Sie auf die Instanz, die die Tabelle enthält, für die Sie eine autorisierte Ansicht benötigen.

  3. Klicken Sie im Navigationsbereich auf Bigtable Studio.

  4. Klicken Sie auf Builder, um den Query Builder zu öffnen.

  5. Wählen Sie die Tabelle aus, für die Sie eine autorisierte Ansicht benötigen.

  6. Fügen Sie Klauseln hinzu, um eine Abfrage zu erstellen, die nur Daten zurückgibt, auf die die Nutzer der autorisierten Ansicht Zugriff haben sollen.

    • Zulässige Klauseln für eine autorisierte Ansicht sind Zeilenschlüsselpräfix und Spalten (Spaltenqualifizierer).
    • Wenn Sie ein Präfix für den Spaltenqualifizierer angeben möchten, fügen Sie nach dem Präfix ein Sternchen ein. Wenn Sie beispielsweise alle Spalten einbeziehen möchten, die mit „data“ beginnen, geben Sie im Feld Spalten nach dem Namen der Spaltenfamilie data* ein.
    • Die Klausel Limit wird ignoriert, wenn die autorisierte Ansicht gespeichert wird.
    • Weitere Informationen zur Verwendung des Query Builders finden Sie unter Abfragen in der Console erstellen.
  7. Klicken Sie auf Ausführen.

  8. Wenn Sie überprüft haben, ob im Bereich „Ergebnisse“ Daten angezeigt werden, die in der autorisierten Ansicht enthalten sein sollen, klicken Sie auf Als Ansicht speichern.

  9. Geben Sie eine dauerhafte Kennung für die autorisierte Ansicht ein, die noch nicht für die Tabelle verwendet wird.

  10. Optional: Wenn Sie das Dokument speichern möchten, ohne Zugriff zu gewähren, klicken Sie auf Speichern.

  11. Optional: Wenn Sie die autorisierte Ansicht speichern und dann den Zugriff darauf konfigurieren möchten, klicken Sie auf Speichern und Zugriff gewähren. Weitere Informationen zur Zugriffssteuerung finden Sie unter Bigtable-Zugriffssteuerung mit IAM.

    1. Fügen Sie mindestens ein Hauptkonto hinzu und wählen Sie die Rolle aus, die diesem Hauptkonto oder dieser Gruppe von Hauptkonten zugewiesen werden soll.
    2. Optional: Wenn Sie Zugriff für weitere Rollen gewähren möchten, klicken Sie auf Weitere Rolle hinzufügen und geben Sie dann das Hauptkonto und die Rolle für jede zusätzliche Rolle ein.
    3. Klicken Sie auf Speichern.

gcloud

Führen Sie den Befehl bigtable authorized-views create aus: Weitere Informationen finden Sie in der Referenzdokumentation unter gcloud bigtable authorized-views create.

gcloud bigtable authorized-views create AUTHORIZED_VIEW_ID \
  --instance=INSTANCE_ID \
  --table=TABLE_ID \
  --definition-file=DEFINITION_FILE_PATH

Ersetzen Sie Folgendes:

  • AUTHORIZED_VIEW_ID: eine permanente Kennzeichnung für die autorisierte Ansicht, die noch nicht für die Tabelle verwendet wird
  • INSTANCE_ID: Die permanente Kennzeichnung der Instanz, die die Tabelle enthält
  • TABLE_ID: die permanente Kennzeichnung der Tabelle, für die Sie eine autorisierte Ansicht erstellen
  • DEFINITION_FILE_PATH: der Pfad zu einer gültigen JSON-Darstellung einer autorisierten Ansicht. Beispiele für korrekt formatierte Definitionsdateien finden Sie unter Beispiele für Definitionsdateien.

Sie können den Befehl auch ohne Definition ausführen. In diesem Fall öffnet die gcloud CLI einen Editor und fordert Sie auf, Werte anzugeben.

Um zu prüfen, ob die autorisierte Ansicht erstellt wurde, rufen Sie eine Liste der autorisierten Ansichten für die Tabelle ab.

Java

Informationen zum Installieren und Verwenden der Clientbibliothek für Bigtable finden Sie unter Bigtable-Clientbibliotheken.

Richten Sie zur Authentifizierung bei Bigtable die Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für Clientbibliotheken einrichten.

try {
  CreateAuthorizedViewRequest request =
      CreateAuthorizedViewRequest.of(tableId, authorizedViewId)
          .setAuthorizedViewType(
              SubsetView.create()
                  .addRowPrefix("")
                  .setFamilySubsets(
                      COLUMN_FAMILY,
                      FamilySubsets.create().addQualifierPrefix(COLUMN_QUALIFIER_NAME)));
  AuthorizedView authorizedView = adminClient.createAuthorizedView(request);
  System.out.printf("AuthorizedView: %s created successfully%n", authorizedView.getId());
} catch (NotFoundException e) {
  System.err.println(
      "Failed to create an authorized view from a non-existent table: " + e.getMessage());
}

Autorisierte Ansicht ändern

Console

  1. Öffnen Sie in der Google Cloud Console die Liste der Bigtable-Instanzen.

    Liste der Instanzen öffnen

  2. Klicken Sie auf die Instanz, die die autorisierte Ansicht enthält.

  3. Klicken Sie im Navigationsbereich auf Bigtable Studio.

  4. Maximieren Sie im Explorer die Tabelle und Autorisierte Ansichten.

  5. Klicken Sie neben der autorisierten Ansicht, die Sie ändern möchten, auf das Dreipunkt-Menü more_vert und dann auf Öffnen.

  6. Ändern oder fügen Sie Klauseln hinzu, um eine Abfrage zu erstellen, die nur Daten zurückgibt, auf die die Nutzer der autorisierten Ansicht zugreifen sollen.

    • Zulässige Klauseln für eine autorisierte Ansicht sind Zeilenschlüsselpräfix und Spalten (Spaltenqualifizierer).
    • Wenn Sie ein Präfix für den Spaltenqualifizierer angeben möchten, fügen Sie nach dem Präfix ein Sternchen ein. Wenn Sie beispielsweise alle Spalten einbeziehen möchten, die mit „data“ beginnen, geben Sie im Feld Spalten nach dem Namen der Spaltenfamilie data* ein.
    • Die Klausel Limit wird ignoriert, wenn die autorisierte Ansicht gespeichert wird.
    • Weitere Informationen zur Verwendung des Query Builders finden Sie unter Abfragen in der Console erstellen.
  7. Klicken Sie auf Ausführen.

  8. Nachdem Sie überprüft haben, ob im Bereich „Ergebnisse“ Daten angezeigt werden, die in der autorisierten Ansicht enthalten sein sollten, klicken Sie auf Als Ansicht speichern.

  9. Geben Sie im Dialogfeld die ID der autorisierten Ansicht ein, die Sie geändert haben.

    In einem Dialogfeld werden Sie gewarnt, dass Sie die vorhandene autorisierte Ansicht überschreiben.

  10. Optional: Wenn Sie das Dokument speichern möchten, ohne Zugriff zu gewähren, klicken Sie auf Speichern.

  11. Optional: Wenn Sie die autorisierte Ansicht speichern und dann den Zugriff darauf konfigurieren möchten, klicken Sie auf Speichern und Zugriff gewähren. Weitere Informationen zur Zugriffssteuerung finden Sie unter Bigtable-Zugriffssteuerung mit IAM.

    1. Fügen Sie mindestens ein Hauptkonto hinzu und wählen Sie die Rolle aus, die diesem Hauptkonto oder dieser Gruppe von Hauptkonten zugewiesen werden soll.
    2. Optional: Wenn Sie Zugriff für weitere Rollen gewähren möchten, klicken Sie auf Weitere Rolle hinzufügen und geben Sie dann das Hauptkonto und die Rolle für jede zusätzliche Rolle ein.
    3. Klicken Sie auf Speichern.

gcloud

Ändern Sie eine autorisierte Ansicht mit dem Befehl bigtable authorized-views update. Weitere Informationen finden Sie in der Referenzdokumentation unter gcloud bigtable authorized-views update.

gcloud bigtable authorized-views update AUTHORIZED_VIEW_ID \
  --instance=INSTANCE_ID \
  --table=TABLE_ID \
  --definition-file=DEFINITION_FILE_PATH

Ersetzen Sie Folgendes:

  • AUTHORIZED_VIEW_ID: Die permanente Kennzeichnung der autorisierten Ansicht
  • INSTANCE_ID: Die permanente Kennzeichnung der Instanz
  • TABLE_ID: die permanente Kennzeichnung der Quelltabelle
  • DEFINITION_FILE_PATH: der Pfad zu einer gültigen JSON-Darstellung einer autorisierten Ansicht. Beispiele für korrekt formatierte Definitionsdateien finden Sie unter Beispiele für Definitionsdateien.

Sie können den Befehl auch ohne Definitiondatei ausführen. In diesem Fall öffnet die gcloud CLI einen Editor und fordert Sie auf, Werte anzugeben.

Optional: Wenn Sie verhindern möchten, dass die gcloud CLI eine Bestätigungsaufforderung mit dem Unterschied zwischen der aktuellen autorisierten Ansichtsstruktur und der Ansichtsstruktur nach dem Commit der Aktualisierung anzeigt, hängen Sie dem Befehl das Flag --no-interactive an.

Java

Informationen zum Installieren und Verwenden der Clientbibliothek für Bigtable finden Sie unter Bigtable-Clientbibliotheken.

Richten Sie zur Authentifizierung bei Bigtable die Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für Clientbibliotheken einrichten.

try {
  // Update to an authorized view permitting everything.
  UpdateAuthorizedViewRequest request =
      UpdateAuthorizedViewRequest.of(tableId, authorizedViewId)
          .setAuthorizedViewType(
              SubsetView.create()
                  .addRowPrefix("")
                  .setFamilySubsets(
                      COLUMN_FAMILY, FamilySubsets.create().addQualifierPrefix("")));
  AuthorizedView authorizedView = adminClient.updateAuthorizedView(request);
  System.out.printf("AuthorizedView: %s updated successfully%n", authorizedView.getId());
} catch (NotFoundException e) {
  System.err.println("Failed to modify a non-existent authorized view: " + e.getMessage());
}

Löschschutz aktivieren oder deaktivieren

Wenn Sie den Löschschutz für eine autorisierte Ansicht aktivieren möchten, fügen Sie dem Aktualisierungsbefehl --deletion-protection hinzu.

Wenn Sie den Löschschutz deaktivieren möchten, fügen Sie dem Aktualisierungsbefehl no-deletion-protection hinzu.

Autorisierte Ansicht löschen

Wenn Sie eine Tabelle löschen, werden auch alle autorisierten Ansichten der Tabelle gelöscht.

Gelöschte autorisierte Ansichten können nicht wiederhergestellt werden. Wenn Sie jedoch eine Tabelle löschen und dann die Rücknahme des Löschens ausführen, werden alle autorisierten Ansichten der Tabelle zusammen mit der Tabelle wiederhergestellt. Anschließend müssen Sie IAM für die autorisierten Ansichten und für die Tabellen neu konfigurieren. Weitere Informationen finden Sie unter Gelöschte Tabelle wiederherstellen.

Console

  1. Öffnen Sie in der Google Cloud Console die Liste der Bigtable-Instanzen.

    Liste der Instanzen öffnen

  2. Klicken Sie auf die Instanz, die die autorisierte Ansicht enthält.

  3. Klicken Sie im Navigationsbereich auf Bigtable Studio.

  4. Maximieren Sie im Explorer die Tabelle und Autorisierte Ansichten.

  5. Klicken Sie neben der autorisierten Ansicht, die Sie löschen möchten, auf das Dreipunkt-Menü more_vert und dann auf Löschen.

gcloud

Löschen Sie eine autorisierte Ansicht mit dem Befehl bigtable instances tables authorized-views delete. Weitere Informationen finden Sie in der Referenzdokumentation unter gcloud bigtable authorized-views delete.

gcloud bigtable authorized-views delete AUTHORIZED_VIEW_ID \
  --instance=INSTANCE_ID \
  --table=TABLE_ID

Ersetzen Sie Folgendes:

  • AUTHORIZED_VIEW_ID: Die permanente Kennzeichnung der autorisierten Ansicht
  • INSTANCE_ID: Die permanente Kennzeichnung der Instanz
  • TABLE_ID: die permanente Kennzeichnung der Quelltabelle

Optional: Wenn Sie verhindern möchten, dass in der gcloud CLI eine Bestätigungsaufforderung angezeigt wird, in der Sie das Löschen bestätigen oder abbrechen müssen, hängen Sie dem Befehl das Flag --nointeractive an.

Java

Informationen zum Installieren und Verwenden der Clientbibliothek für Bigtable finden Sie unter Bigtable-Clientbibliotheken.

Richten Sie zur Authentifizierung bei Bigtable die Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für Clientbibliotheken einrichten.

try {
  adminClient.deleteAuthorizedView(tableId, authorizedViewId);
  System.out.printf("AuthorizedView: %s deleted successfully%n", authorizedViewId);
} catch (NotFoundException e) {
  System.err.println("Failed to delete a non-existent authorized view: " + e.getMessage());
}

Liste der autorisierten Ansichten für eine Tabelle abrufen

Console

  1. Öffnen Sie in der Google Cloud Console die Liste der Bigtable-Instanzen.

    Liste der Instanzen öffnen

  2. Klicken Sie auf die Instanz, die die autorisierte Ansicht enthält.

  3. Klicken Sie im Navigationsbereich auf Bigtable Studio.

  4. Maximieren Sie im Explorer die Tabelle und Autorisierte Ansichten.

gcloud

Führen Sie den Befehl bigtable authorized-views list aus: Weitere Informationen finden Sie in der Referenzdokumentation unter gcloud bigtable authorized-views list.

gcloud bigtable authorized-views list \
  --instance=INSTANCE_ID \
  --table=TABLE_ID

Ersetzen Sie Folgendes:

  • INSTANCE_ID: Die permanente Kennzeichnung der Instanz
  • TABLE_ID: Die permanente Kennzeichnung der Tabelle

Java

Informationen zum Installieren und Verwenden der Clientbibliothek für Bigtable finden Sie unter Bigtable-Clientbibliotheken.

Richten Sie zur Authentifizierung bei Bigtable die Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für Clientbibliotheken einrichten.

List<String> authorizedViewIds = new ArrayList<>();
try {
  authorizedViewIds = adminClient.listAuthorizedViews(tableId);
  for (String authorizedViewId : authorizedViewIds) {
    System.out.println(authorizedViewId);
  }
} catch (NotFoundException e) {
  System.err.println(
      "Failed to list authorized views from a non-existent table: " + e.getMessage());
}

Details zu einer autorisierten Ansicht ansehen

Console

  1. Öffnen Sie in der Google Cloud Console die Liste der Bigtable-Instanzen.

    Liste der Instanzen öffnen

  2. Klicken Sie auf die Instanz, die die autorisierte Ansicht enthält.

  3. Klicken Sie im Navigationsbereich auf Bigtable Studio.

  4. Maximieren Sie im Explorer die Tabelle und Autorisierte Ansichten.

  5. Klicken Sie neben der autorisierten Ansicht, die Sie aufrufen möchten, auf das Dreipunkt-Menü more_vert und dann auf Öffnen.

gcloud

Führen Sie den Befehl bigtable instances tables authorized-views describe aus, um Details zu einer autorisierten Ansicht abzurufen. Weitere Informationen finden Sie in der Referenzdokumentation unter gcloud bigtable authorized-views describe.

gcloud bigtable authorized-views describe \
–-instance=INSTANCE_ID \
–-table=TABLE_ID \
AUTHORIZED_VIEW_ID

Ersetzen Sie Folgendes:

  • INSTANCE_ID: Die permanente Kennzeichnung der Instanz
  • TABLE_ID: Die permanente Kennzeichnung der Tabelle
  • AUTHORIZED_VIEW_ID: Die permanente Kennzeichnung der autorisierten Ansicht

Java

Informationen zum Installieren und Verwenden der Clientbibliothek für Bigtable finden Sie unter Bigtable-Clientbibliotheken.

Richten Sie zur Authentifizierung bei Bigtable die Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für Clientbibliotheken einrichten.

AuthorizedView authorizedView = null;
try {
  authorizedView = adminClient.getAuthorizedView(tableId, authorizedViewId);
  SubsetView subsetView = (SubsetView) authorizedView.getAuthorizedViewType();

  for (ByteString rowPrefix : subsetView.getRowPrefixes()) {
    System.out.printf("Row Prefix: %s%n", rowPrefix.toStringUtf8());
  }
  for (Map.Entry<String, FamilySubsets> entry : subsetView.getFamilySubsets().entrySet()) {
    for (ByteString qualifierPrefix : entry.getValue().getQualifierPrefixes()) {
      System.out.printf(
          "Column Family: %s, Qualifier Prefix: %s%n",
          entry.getKey(), qualifierPrefix.toStringUtf8());
    }
    for (ByteString qualifier : entry.getValue().getQualifiers()) {
      System.out.printf(
          "Column Family: %s, Qualifier: %s%n", entry.getKey(), qualifier.toStringUtf8());
    }
  }
} catch (NotFoundException e) {
  System.err.println(
      "Failed to retrieve metadata from a non-existent authorized view: " + e.getMessage());
}

Zugriff auf eine autorisierte Ansicht gewähren

Weitere Informationen zur Zugriffssteuerung finden Sie unter Bigtable-Zugriffssteuerung mit IAM.

Console

  1. Öffnen Sie in der Google Cloud Console die Liste der Bigtable-Instanzen.

    Liste der Instanzen öffnen

  2. Klicken Sie auf die Instanz, die die autorisierte Ansicht enthält.

  3. Klicken Sie im Navigationsbereich auf Bigtable Studio.

  4. Maximieren Sie im Bereich „Explorer“ die Tabelle und Autorisierte Ansichten.

  5. Klicken Sie neben dem Namen der autorisierten Datenansicht auf das Aktionsmenü mehr und dann auf Zugriff gewähren.

  6. Fügen Sie mindestens ein Hauptkonto hinzu und wählen Sie die Rolle aus, die diesem Hauptkonto oder dieser Gruppe von Hauptkonten zugewiesen werden soll.

  7. Optional: Wenn Sie Zugriff für weitere Rollen gewähren möchten, klicken Sie auf Weitere Rolle hinzufügen und geben Sie dann für jede zusätzliche Rolle das Hauptkonto und die Rolle ein.

  8. Klicken Sie auf Speichern.

gcloud

Verwenden Sie den Befehl bigtable authorized-views add-iam-policy-binding, um Zugriff auf eine autorisierte Ansicht zu gewähren. Weitere Informationen finden Sie in der Referenzdokumentation unter gcloud bigtable authorized-views add-iam-policy-binding.

gcloud bigtable authorized-views add-iam-policy-binding AUTH_VIEW_ID \
--instance=INSTANCE_ID --table=TABLE_ID \
--member=PRINCIPAL --role=ROLE

Ersetzen Sie Folgendes:

  • AUTH_VIEW_ID: die ID der autorisierten Datenansicht
  • TABLE_ID: Die ID der Tabelle, auf die sich die autorisierte Ansicht bezieht.
  • INSTANCE_ID: die Instanz, die die Tabelle enthält
  • PRINCIPAL: das Hauptkonto (Nutzer), dem Sie Zugriff gewähren möchten, z. B. user:222larabrown@gmail.com
  • ROLE: die Rolle, die Sie gewähren, z. B. roles/bigtable.viewer.

Nächste Schritte