GCP - Bigtable Enum

Tip

Aprenda e pratique Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Aprenda e pratique Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE) Aprenda e pratique Hacking Azure: HackTricks Training Azure Red Team Expert (AzRTE)

Support HackTricks

Bigtable

Google Cloud Bigtable é um banco de dados NoSQL totalmente gerenciado e escalável, projetado para aplicações que exigem throughput extremamente alto e baixa latência. Foi construído para lidar com quantidades massivas de dados — petabytes em milhares de nós — enquanto ainda fornece desempenho rápido de leitura e escrita. Bigtable é ideal para cargas de trabalho como dados de séries temporais, telemetria de IoT, análise financeira, mecanismos de personalização e bancos de dados operacionais em larga escala. Ele usa um mapa ordenado esparso, distribuído e multidimensional como seu modelo de armazenamento subjacente, o que o torna eficiente para armazenar tabelas amplas onde muitas colunas podem estar vazias. Saiba mais.

Hierarquia

  1. Instância do Bigtable

Uma instância do Bigtable é o recurso de nível superior que você cria. Ela não armazena dados por si só — pense nela como um contêiner lógico que agrupa seus clusters e tabelas.

Existem dois tipos de instâncias:

  • Instância de desenvolvimento (single-node, barata, não para produção)
  • Instância de produção (pode ter múltiplos clusters)
  1. Clusters

Um cluster contém os recursos reais de computação e armazenamento usados para servir os dados do Bigtable.

  • Cada cluster reside em uma única região.
  • É composto por nós, que fornecem CPU, RAM e capacidade de rede.
  • Você pode criar instâncias com múltiplos clusters para alta disponibilidade ou leituras/escritas globais.
  • Os dados são replicados automaticamente entre clusters na mesma instância.

Importante:

  • As tabelas pertencem à instância, não a um cluster específico.
  • Os clusters simplesmente fornecem os recursos para servir os dados.
  1. Tabelas

Uma tabela no Bigtable é similar a uma tabela em bancos NoSQL:

  • Os dados são armazenados em linhas, identificadas por uma row key.
  • Cada linha contém column families, que contêm colunas.
  • É esparsa: células vazias não consomem espaço.
  • Bigtable armazena os dados ordenados lexicograficamente pela row key.

As tabelas são servidas por todos os clusters na instância.

  1. Tablets (e Hot Tablets)

O Bigtable divide cada tabela em partições horizontais chamadas tablets. Uma tablet é:

  • Um intervalo contíguo de row keys.
  • Armazenada em um único nó em um dado momento.
  • Tablets são automaticamente divididas, mescladas e movidas pelo Bigtable.

Um hot tablet ocorre quando:

  • Muitas leituras ou escritas atingem o mesmo intervalo de row-key (mesma tablet).
  • Esse tablet/nó específico fica sobrecarregado.
  • Isso leva a hotspots (gargalos de desempenho).
  1. Authorized Views

As authorized views permitem criar um subconjunto dos dados de uma tabela que pode ser compartilhado com usuários ou aplicações específicas sem lhes conceder acesso à tabela inteira. Isso é útil para:

  • Limitar o acesso a dados sensíveis.
  • Fornecer acesso somente leitura a colunas ou linhas específicas.
  1. App Profiles

Um app profile do Bigtable é uma configuração que define como uma aplicação ou cliente específico deve interagir com uma instância do Bigtable, especialmente em ambientes com múltiplos clusters. Ele controla o comportamento de roteamento — se as requisições devem ser direcionadas a um único cluster ou distribuídas por vários clusters para alta disponibilidade — e governa como as escritas são replicadas, escolhendo entre modos síncrono (consistência mais forte) ou assíncrono (menor latência).

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

Escalada de Privilégios

GCP - Bigtable Privesc

Pós-Exploração

GCP - Bigtable Post Exploitation

Persistência

GCP - Bigtable Persistence

Tip

Aprenda e pratique Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Aprenda e pratique Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE) Aprenda e pratique Hacking Azure: HackTricks Training Azure Red Team Expert (AzRTE)

Support HackTricks