GCP - Bigtable Aufzählung

Tip

Lernen & üben Sie AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Lernen & üben Sie GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Lernen & üben Sie Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Unterstützen Sie HackTricks

Bigtable

Google Cloud Bigtable ist eine vollständig verwaltete, skalierbare NoSQL-Datenbank, die für Anwendungen entwickelt wurde, die extrem hohen Durchsatz und niedrige Latenz benötigen. Sie ist darauf ausgelegt, riesige Datenmengen — Petabytes über tausende Knoten — zu verarbeiten und bietet dabei schnelle Lese- und Schreibzugriffe. Bigtable eignet sich ideal für Workloads wie Zeitreihendaten, IoT-Telemetrie, Finanzanalysen, Personalisierungs-Engines und großskalige operative Datenbanken. Es verwendet eine spärliche, verteilte, mehrdimensionale sortierte Map als zugrunde liegendes Speicher-Modell, wodurch breite Tabellen effizient gespeichert werden können, in denen viele Spalten leer sind. Learn more.

Hierarchy

  1. Bigtable-Instanz

Eine Bigtable-Instanz ist die oberste Ressource, die du erstellst. Sie speichert nicht selbst Daten — denke an sie als einen logischen Container, der deine Cluster und Tabellen zusammenfasst.

Es gibt zwei Instanztypen:

  • Entwicklungsinstanz (Einzelknoten, günstig, nicht für den Produktivbetrieb)
  • Produktionsinstanz (kann mehrere Cluster haben)
  1. Clusters

Ein Cluster enthält die tatsächlichen Compute- und Storage-Ressourcen, die zum Bereitstellen von Bigtable-Daten verwendet werden.

  • Jedes Cluster befindet sich in einer einzelnen Region.
  • Es besteht aus Knoten, die CPU-, RAM- und Netzwerkkapazität bereitstellen.
  • Du kannst Multi-Cluster-Instanzen für hohe Verfügbarkeit oder globale Lese-/Schreibzugriffe erstellen.
  • Daten werden automatisch zwischen Clustern derselben Instanz repliziert.

Wichtig:

  • Tabellen gehören zur Instanz, nicht zu einem bestimmten Cluster.
  • Cluster stellen lediglich die Ressourcen zur Verfügung, um die Daten zu bedienen.
  1. Tables

Eine Tabelle in Bigtable ähnelt einer Tabelle in NoSQL-Datenbanken:

  • Daten werden in Zeilen gespeichert, identifiziert durch einen Row-Key.
  • Jede Zeile enthält Spaltenfamilien (column families), die Spalten enthalten.
  • Sie ist spärlich: leere Zellen verbrauchen keinen Speicherplatz.
  • Bigtable speichert Daten lexikographisch sortiert nach dem Row-Key.

Tabellen werden von allen Clustern in der Instanz bedient.

  1. Tablets (and Hot Tablets)

Bigtable teilt jede Tabelle in horizontale Partitionen namens Tablets. Ein Tablet ist:

  • Ein zusammenhängender Bereich von Row-Keys.
  • Zu jedem Zeitpunkt auf einem einzelnen Knoten gespeichert.
  • Tablets werden von Bigtable automatisch geteilt, zusammengeführt und verschoben.

Ein hot tablet entsteht, wenn:

  • Zu viele Lese- oder Schreibzugriffe denselben Row-Key-Bereich (dieses Tablet) treffen.
  • Dieses spezifische Tablet/Knoten überlastet wird.
  • Das führt zu Hotspots (Leistungsengpässen).
  1. Authorized Views

Autorisierte Views ermöglichen es, einen Teil der Tabellendaten zu erstellen, der mit bestimmten Benutzern oder Anwendungen geteilt werden kann, ohne Zugriff auf die gesamte Tabelle zu gewähren. Das ist nützlich für:

  • Einschränkung des Zugriffs auf sensible Daten.
  • Bereitstellung von Lesezugriff auf bestimmte Spalten oder Zeilen.
  1. App Profiles

Ein Bigtable App-Profile ist eine Konfiguration, die definiert, wie eine bestimmte Anwendung oder ein Client mit einer Bigtable-Instanz interagieren soll, besonders in Umgebungen mit mehreren Clustern. Es steuert das Routing-Verhalten — ob Anfragen an einen einzelnen Cluster oder verteilt über mehrere Cluster für hohe Verfügbarkeit geleitet werden sollen — und bestimmt, wie Schreibvorgänge repliziert werden, mit der Wahl zwischen synchroner (stärkere Konsistenz) oder asynchroner (niedrigere Latenz) Replikation.

# Cloud Bigtable
gcloud bigtable instances list
gcloud bigtable instances describe <instance>
gcloud bigtable instances get-iam-policy <instance>

## Clusters
gcloud bigtable clusters list
gcloud bigtable clusters describe <cluster>

## Tables
gcloud bigtable tables list --instance <INSTANCE>
gcloud bigtable tables describe --instance <INSTANCE> <TABLE>
gcloud bigtable tables get-iam-policy --instance <INSTANCE> <TABLE>

## Backups
gcloud bigtable backups list --instance <INSTANCE>
gcloud bigtable backups describe --instance <INSTANCE> <backupname>
gcloud bigtable backups get-iam-policy --instance <INSTANCE> <backupname>

## Hot Tables
gcloud bigtable hot-tablets list

## App Profiles
gcloud bigtable app-profiles list --instance <INSTANCE>
gcloud bigtable app-profiles describe --instance <INSTANCE> <app-prof>

## Authorized Views
gcloud bigtable authorized-views list --instance <INSTANCE> --table <TABLE>
gcloud bigtable authorized-views describe --instance <INSTANCE> --table <TABLE> <VIEW>

Privilege Escalation

GCP - Bigtable Privesc

Post Exploitation

GCP - Bigtable Post Exploitation

Persistence

GCP - Bigtable Persistence

Tip

Lernen & üben Sie AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Lernen & üben Sie GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Lernen & üben Sie Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Unterstützen Sie HackTricks