GCP - Bigtable 枚举

Tip

学习并练习 AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
学习并练习 GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
学习并练习 Az Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

支持 HackTricks

Bigtable

Google Cloud Bigtable 是一个完全托管、可扩展的 NoSQL 数据库,专为需要极高吞吐量和低延迟的应用而设计。它能够处理海量数据——在数千个节点上达到 petabytes 级别——同时仍能提供快速的读写性能。Bigtable 适用于时间序列数据、IoT 遥测、金融分析、个性化引擎和大规模运维数据库等工作负载。它使用稀疏的、分布式的、多维的排序映射作为底层存储模型,这使得在许多列可能为空的宽表场景下存储更为高效。 Learn more.

层级

  1. Bigtable Instance

Bigtable instance 是你创建的顶层资源。 它本身不直接存储数据——可以把它看作一个逻辑容器,将你的 clusters 和 tables 组织在一起。

存在两种实例类型:

  • Development instance(单节点、便宜、不用于生产)
  • Production instance(可以有多个 clusters)
  1. Clusters

Cluster 包含用于提供 Bigtable 数据的实际计算和存储资源。

  • 每个 cluster 位于单个 region 中。
  • 由 nodes 组成,提供 CPU、RAM 和网络容量。
  • 你可以创建 multi-cluster 实例以实现高可用性或全局读写。
  • 相同 instance 中的 clusters 之间会自动复制数据。

重要:

  • 表(tables)属于 instance,而不是某个特定的 cluster。
  • cluster 仅提供用于服务数据的资源。
  1. Tables

Bigtable 中的 table 类似于 NoSQL 数据库中的表:

  • 数据以行存储,由 row key 标识。
  • 每行包含 column families,column families 下包含列。
  • 它是稀疏的:空单元格不占用空间。
  • Bigtable 按照 row key 的字典序排序存储数据。

Tables 由 instance 中的所有 clusters 提供服务。

  1. Tablets (and Hot Tablets)

Bigtable 将每个表水平分区为称为 tablets 的分片。tablet 是:

  • 一段连续的 row key 范围。
  • 在任一时刻存储于单个节点上。
  • Tablets 会被 Bigtable 自动拆分、合并和迁移。

当出现以下情况时,会形成一个 hot tablet

  • 过多的读或写击中相同的 row-key 范围(同一 tablet)。
  • 该特定的 tablet/node 变得过载。
  • 这会导致热点(性能瓶颈)。
  1. Authorized Views

Authorized views 允许你创建一个表数据的子集,并与特定用户或应用共享,而不授予对整个表的访问权限。适用于:

  • 限制对敏感数据的访问。
  • 为特定的列或行提供只读访问。
  1. App Profiles

Bigtable 的 app profile 是一种配置,定义特定应用或客户端在多 cluster 环境中应如何与 Bigtable instance 交互。它控制路由行为——请求应被定向到单个 cluster 还是分布到多个 cluster 以实现高可用性——并决定写入如何复制,在同步(synchronous,较强一致性)或异步(asynchronous,较低延迟)模式之间进行选择。

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

权限提升

GCP - Bigtable Privesc

后渗透

GCP - Bigtable Post Exploitation

持久化

GCP - Bigtable Persistence

Tip

学习并练习 AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
学习并练习 GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
学习并练习 Az Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

支持 HackTricks