GCP - Bigtable Enum

Tip

AWS 해킹 배우기 및 연습하기:HackTricks Training AWS Red Team Expert (ARTE)
GCP 해킹 배우기 및 연습하기: HackTricks Training GCP Red Team Expert (GRTE) Azure 해킹 배우기 및 연습하기: HackTricks Training Azure Red Team Expert (AzRTE)

HackTricks 지원하기

Bigtable

Google Cloud Bigtable는 완전관리형이며 확장 가능한 NoSQL 데이터베이스로, 매우 높은 처리량과 낮은 지연 시간을 요구하는 애플리케이션을 위해 설계되었습니다. 수천 개의 노드에 걸쳐 페타바이트 단위의 대용량 데이터를 처리하도록 구축되었으며 빠른 읽기/쓰기 성능을 제공합니다. Bigtable은 시계열 데이터(time-series data), IoT 텔레메트리, 금융 분석, 개인화 엔진, 대규모 운영 데이터베이스와 같은 워크로드에 적합합니다. 기본 저장 모델로 희소(sparse)하고 분산된 다차원 정렬 맵을 사용하므로 많은 컬럼이 비어 있는 와이드 테이블을 효율적으로 저장할 수 있습니다. Learn more.

계층 구조

  1. Bigtable Instance

Bigtable 인스턴스는 생성하는 최상위 리소스입니다. 자체적으로 데이터를 저장하지 않으며—클러스터와 테이블을 함께 그룹화하는 논리적 컨테이너로 생각하면 됩니다.

인스턴스에는 두 가지 유형이 있습니다:

  • 개발 인스턴스 (single-node, 저렴, 프로덕션용 아님)
  • 프로덕션 인스턴스 (여러 클러스터를 가질 수 있음)
  1. Clusters

클러스터는 Bigtable 데이터를 서비스하는 데 사용되는 실제 컴퓨트 및 스토리지 리소스를 포함합니다.

  • 각 클러스터는 단일 리전에 존재합니다.
  • 노드로 구성되며, 노드는 CPU, RAM 및 네트워크 용량을 제공합니다.
  • 고가용성이나 전역 읽기/쓰기 위해 멀티-클러스터 인스턴스를 생성할 수 있습니다.
  • 데이터는 동일 인스턴스 내 클러스터들 간에 자동으로 복제됩니다.

중요:

  • 테이블은 특정 클러스터가 아니라 인스턴스에 속합니다.
  • 클러스터는 단순히 데이터를 제공하는 리소스를 제공합니다.
  1. Tables

Bigtable의 테이블은 NoSQL 데이터베이스의 테이블과 유사합니다:

  • 데이터는 행 단위로 저장되며, 행 키(row key)로 식별됩니다.
  • 각 행은 컬럼 패밀리(column family)를 포함하며, 컬럼 패밀리는 컬럼을 포함합니다.
  • 희소(sparse) 구조로 빈 셀은 공간을 소비하지 않습니다.
  • Bigtable은 행 키 기준으로 사전식(lexicographically)으로 정렬된 상태로 데이터를 저장합니다.

테이블은 인스턴스 내 모든 클러스터에 의해 서빙됩니다.

  1. Tablets (and Hot Tablets)

Bigtable은 각 테이블을 tablets라고 불리는 수평 파티션으로 분할합니다. 테이블은 다음과 같습니다:

  • 연속된 행 키 범위입니다.
  • 특정 시점에는 단일 노드에 저장됩니다.
  • Tablets은 Bigtable에 의해 자동으로 분할되고 병합되며 이동됩니다.

A hot tablet은 다음과 같은 경우에 발생합니다:

  • 너무 많은 읽기 또는 쓰기 요청이 동일한 행 키 범위(동일한 tablet)에 집중될 때.
  • 해당 특정 tablet/노드가 과부하됩니다.
  • 이로 인해 핫스팟(성능 병목)이 발생합니다.
  1. Authorized Views

Authorized Views를 사용하면 테이블 전체에 대한 접근 권한을 부여하지 않고도 특정 사용자나 애플리케이션과 공유할 수 있는 테이블 데이터의 하위 집합을 생성할 수 있습니다. 이는 다음과 같은 경우에 유용합니다:

  • 민감한 데이터에 대한 접근을 제한할 때.
  • 특정 컬럼이나 행에 대해 읽기 전용 접근을 제공할 때.
  1. App Profiles

Bigtable 앱 프로필(App profile)은 특히 멀티 클러스터 환경에서 특정 애플리케이션이나 클라이언트가 Bigtable 인스턴스와 어떻게 상호작용해야 하는지를 정의하는 구성입니다. 앱 프로필은 라우팅 동작(요청을 단일 클러스터로 라우팅할지, 고가용성을 위해 여러 클러스터에 분산할지)을 제어하고, 쓰기 복제 방식을 동기(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>

Privilege Escalation

GCP - Bigtable Privesc

Post Exploitation

GCP - Bigtable Post Exploitation

Persistence

GCP - Bigtable Persistence

Tip

AWS 해킹 배우기 및 연습하기:HackTricks Training AWS Red Team Expert (ARTE)
GCP 해킹 배우기 및 연습하기: HackTricks Training GCP Red Team Expert (GRTE) Azure 해킹 배우기 및 연습하기: HackTricks Training Azure Red Team Expert (AzRTE)

HackTricks 지원하기