GCP - Cloud SQL Enum

Support HackTricks

Basic Information

Google Cloud SQL은 MySQL, PostgreSQL 및 SQL Server와 같은 관계형 데이터베이스를 Google Cloud Platform에서 설정, 유지 관리 및 관리하는 것을 간소화하는 관리형 서비스입니다. 하드웨어 프로비저닝, 데이터베이스 설정, 패치 및 백업과 같은 작업을 처리할 필요가 없습니다.

Google Cloud SQL의 주요 기능은 다음과 같습니다:

  1. 완전 관리형: Google Cloud SQL은 완전 관리형 서비스로, Google이 패치, 업데이트, 백업 및 구성과 같은 데이터베이스 유지 관리 작업을 처리합니다.

  2. 확장성: 데이터베이스의 저장 용량과 컴퓨팅 리소스를 확장할 수 있는 기능을 제공하며, 종종 다운타임 없이 가능합니다.

  3. 고가용성: 고가용성 구성을 제공하여 데이터베이스 서비스의 신뢰성을 보장하고 영역 또는 인스턴스 장애를 견딜 수 있습니다.

  4. 보안: 데이터 암호화, Identity and Access Management (IAM) 제어 및 개인 IP와 VPC를 사용한 네트워크 격리와 같은 강력한 보안 기능을 제공합니다.

  5. 백업 및 복구: 자동 백업 및 시점 복구를 지원하여 데이터를 보호하고 복원하는 데 도움을 줍니다.

  6. 통합: 다른 Google Cloud 서비스와 원활하게 통합되어 애플리케이션을 구축, 배포 및 관리하는 포괄적인 솔루션을 제공합니다.

  7. 성능: 데이터베이스 성능을 모니터링, 문제 해결 및 개선하기 위한 성능 메트릭 및 진단을 제공합니다.

Password

웹 콘솔에서 Cloud SQL은 사용자가 데이터베이스의 비밀번호설정할 수 있도록 하며, 생성 기능도 있지만, 가장 중요한 것은 MySQL빈 비밀번호를 허용하고 모든 데이터베이스가 "a" 문자만 비밀번호로 설정할 수 있도록 허용한다는 것입니다:

길이, 복잡성, 재사용 비활성화비밀번호에 사용자 이름 비활성화를 요구하는 비밀번호 정책을 구성할 수도 있습니다. 기본적으로 모두 비활성화되어 있습니다.

SQL ServerActive Directory 인증으로 구성할 수 있습니다.

Zone Availability

데이터베이스는 1개 영역 또는 여러 개 영역에서 사용할 수 있으며, 물론 중요한 데이터베이스는 여러 개 영역에 두는 것이 권장됩니다.

Encryption

기본적으로 Google 관리 암호화 키가 사용되지만, **고객 관리 암호화 키(CMEK)**를 선택하는 것도 가능합니다.

Connections

  • Private IP: VPC 네트워크를 지정하면 데이터베이스가 네트워크 내에서 개인 IP를 받습니다.

  • Public IP: 데이터베이스가 공용 IP를 받지만 기본적으로 아무도 연결할 수 없습니다.

  • Authorized networks: 데이터베이스에 연결할 수 있도록 허용해야 하는 공용 IP 범위를 지정합니다.

  • Private Path: DB가 일부 VPC에 연결되어 있는 경우 이 옵션을 활성화하고 BigQuery와 같은 다른 GCP 서비스에 대한 액세스를 제공할 수 있습니다.

Data Protection

  • Daily backups: 자동 일일 백업을 수행하고 유지할 백업 수를 지정합니다.

  • Point-in-time recovery: 특정 시점에서 데이터를 복구할 수 있으며, 초 단위로 세분화할 수 있습니다.

  • Deletion Protection: 활성화되면 이 기능이 비활성화될 때까지 DB를 삭제할 수 없습니다.

Enumeration

# Get SQL instances
gcloud sql instances list
gcloud sql instances describe <inst-name> # get IPs, CACert, settings

# Get database names inside an instance (like information_schema, sys...)
gcloud sql databases list --instance <intance-name>
gcloud sql databases describe <db-name> --instance <intance-name>

# Get usernames inside the db instance
gcloud sql users list --instance <intance-name>

# Backups
gcloud sql backups list --instance <intance-name>
gcloud sql backups describe <backup-name> --instance <intance-name>

인증되지 않은 열거

포스트 익스플로잇

지속성

HackTricks 지원하기

Last updated