GCP - Bigtable Enum

Tip

Apprenez & pratiquez AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Apprenez & pratiquez GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Apprenez & pratiquez Az Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Soutenez HackTricks

Bigtable

Google Cloud Bigtable est une base de donnĂ©es NoSQL entiĂšrement gĂ©rĂ©e et Ă©volutive, conçue pour des applications nĂ©cessitant un dĂ©bit extrĂȘmement Ă©levĂ© et une trĂšs faible latence. Elle est conçue pour gĂ©rer des volumes massifs de donnĂ©es — des pĂ©taoctets rĂ©partis sur des milliers de nƓuds — tout en offrant des performances rapides en lecture et en Ă©criture. Bigtable est idĂ©ale pour des charges de travail telles que les sĂ©ries temporelles, la tĂ©lĂ©mĂ©trie IoT, l’analytique financiĂšre, les moteurs de personnalisation et les bases de donnĂ©es opĂ©rationnelles Ă  grande Ă©chelle. Elle utilise une map triĂ©e multidimensionnelle, sparse et distribuĂ©e comme modĂšle de stockage sous-jacent, ce qui la rend efficace pour stocker des tables larges oĂč de nombreuses colonnes peuvent ĂȘtre vides. Learn more.

Hiérarchie

  1. Bigtable Instance

Une Bigtable instance est la ressource de niveau supĂ©rieur que vous crĂ©ez. Elle ne stocke pas les donnĂ©es en elle-mĂȘme — pensez-y comme un conteneur logique qui regroupe vos clusters et vos tables.

Il existe deux types d’instances :

  • instance de dĂ©veloppement (nƓud unique, peu coĂ»teuse, pas pour la production)
  • instance de production (peut avoir plusieurs clusters)
  1. Clusters

Un cluster contient les ressources réelles de calcul et de stockage utilisées pour servir les données Bigtable.

  • Chaque cluster rĂ©side dans une seule rĂ©gion.
  • Il est composĂ© de nƓuds, qui fournissent CPU, RAM et capacitĂ© rĂ©seau.
  • Vous pouvez crĂ©er des instances multi-clusters pour la haute disponibilitĂ© ou des lectures/Ă©critures globales.
  • Les donnĂ©es sont automatiquement rĂ©pliquĂ©es entre les clusters d’une mĂȘme instance.

Important :

  • Les tables appartiennent Ă  l’instance, pas Ă  un cluster spĂ©cifique.
  • Les clusters fournissent simplement les ressources pour servir les donnĂ©es.
  1. Tables

Une table dans Bigtable est similaire à une table dans les bases de données NoSQL :

  • Les donnĂ©es sont stockĂ©es en lignes, identifiĂ©es par une clĂ© de ligne.
  • Chaque ligne contient des column families, qui contiennent des colonnes.
  • Elles sont sparse : les cellules vides ne consomment pas d’espace.
  • Bigtable stocke les donnĂ©es triĂ©es lexicographiquement par la clĂ© de ligne.

Les tables sont servies par tous les clusters de l’instance.

  1. Tablets (and Hot Tablets)

Bigtable divise chaque table en partitions horizontales appelées tablets. Une tablet est :

  • Une plage contiguĂ« de clĂ©s de ligne.
  • StockĂ©e sur un seul nƓud Ă  un moment donnĂ©.
  • Les tablets sont automatiquement scindĂ©es, fusionnĂ©es et dĂ©placĂ©es par Bigtable.

Un hot tablet survient lorsque :

  • Trop de lectures ou d’écritures ciblent la mĂȘme plage de clĂ©s de ligne (mĂȘme tablet).
  • Ce tablet/nƓud spĂ©cifique devient surchargĂ©.
  • Cela entraĂźne des hotspots (goulots d’étranglement de performance).
  1. Authorized Views

Les authorized views permettent de crĂ©er un sous-ensemble des donnĂ©es d’une table pouvant ĂȘtre partagĂ© avec des utilisateurs ou des applications spĂ©cifiques sans leur donner accĂšs Ă  la table entiĂšre. Cela est utile pour :

  • Limiter l’accĂšs aux donnĂ©es sensibles.
  • Fournir un accĂšs en lecture seule Ă  des colonnes ou des lignes spĂ©cifiques.
  1. App Profiles

Un app profile Bigtable est une configuration qui dĂ©finit comment une application ou un client spĂ©cifique doit interagir avec une instance Bigtable, en particulier dans des environnements multi-clusters. Il contrĂŽle le comportement de routage — si les requĂȘtes doivent ĂȘtre dirigĂ©es vers un seul cluster ou rĂ©parties entre plusieurs clusters pour la haute disponibilitĂ© — et gouverne la façon dont les Ă©critures sont rĂ©pliquĂ©es, en choisissant entre des modes synchrones (consistance plus forte) ou asynchrones (latence plus faible).

# 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>

Escalade de privilĂšges

GCP - Bigtable Privesc

Post-exploitation

GCP - Bigtable Post Exploitation

Persistance

GCP - Bigtable Persistence

Tip

Apprenez & pratiquez AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Apprenez & pratiquez GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Apprenez & pratiquez Az Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Soutenez HackTricks