Spanner는 고가용성과 대규모를 위해 설계된 완전 관리형의 글로벌 분산형 다중 모델 데이터베이스 서비스입니다. Google Cloud의 관리형 서비스로서 보안 및 운영 복원력 책임은 사용자와 Google이 공유합니다.
이 문서에서는 Spanner 인스턴스 및 데이터의 보안, 규정 준수, 운영을 보장하기 위한 책임 분담을 설명합니다.
공동 책임 모델 개요
공동 책임 모델에서 Google은 Spanner 서비스, 인프라, 기본 글로벌 네트워크의 보안을 관리하고 고객은 데이터, 애플리케이션 액세스, 구성 등 Spanner 인스턴스 내의 보안 및 관리를 책임집니다.
| 책임 영역 | Google Cloud | 나 |
|---|---|---|
| 인프라 | Responsible | Not Responsible(책임 없음) |
| 서비스 구성 및 보안 | 공유 | 공유 |
| 데이터 및 애플리케이션 액세스 | Not Responsible(책임 없음) | Responsible |
Google의 책임
Google은 Spanner 서비스를 실행하는 인프라를 보호할 책임이 있습니다. 여기에는 물리적, 하드웨어, 네트워크, 운영 구성요소가 포함됩니다.
인프라 및 전역 가용성
물리적 보안: Spanner 인프라가 있는 전역 리전, 영역, 물리적 데이터 센터를 보호합니다.
네트워킹: Spanner의 전역 일관성 및 복제에 필요한 안전하고 안정적인 네트워크를 제공합니다.
하드웨어 및 소프트웨어: 하드웨어, 호스트 운영체제, Spanner 서비스 소프트웨어 자체를 관리합니다. 여기에는 자동 패치, 유지보수, 업데이트가 포함됩니다.
서비스 관리 및 복원력
고가용성 및 확장성: 리전 및 영역 간에 확장, 복제, 장애 조치를 자동으로 관리하여 99.999% SLA (멀티 리전 구성의 경우)를 보장합니다. Spanner는 계획된 다운타임이 없도록 설계되었습니다. 사용자 제어 구성으로 인해 중단이 발생하면 Spanner 인스턴스가 Spanner 서비스수준계약 (SLA)에서 제외될 수 있습니다. 이러한 구성을 보려면 Spanner 운영 가이드라인을 참고하세요.
내구성: Spanner 시스템 내에 저장된 백업을 포함한 데이터의 내구성을 보장합니다.
데이터베이스 소프트웨어 무결성: Spanner 소프트웨어를 빌드, 유지보수, 업데이트합니다.
규정 준수 및 데이터 보호
저장 데이터 및 전송 중 데이터 암호화: 데이터가 기본적으로 암호화되도록 합니다.
데이터 상주: 특정 리전 또는 구성 (예: 이중 리전, 멀티 리전) 내에서 데이터 배치를 관리할 수 있습니다.
Google Cloud Dedicated 운영: Google Cloud Dedicated 배포의 경우 Google은 인프라, 소프트웨어 빌드, 업데이트를 제공하며, 현지 신뢰할 수 있는 파트너가 클라우드 서비스를 운영하고 지원합니다. Google은 파트너가 유지보수를 실행하고 문제를 해결하는 데 2단계 지원을 제공할 수 있습니다.
개발자 책임
Spanner를 사용할 때 데이터, 구성, 액세스 관리, 애플리케이션 개발을 기본적으로 제어할 수 있습니다.
데이터 및 스키마 관리
데이터 콘텐츠 및 보안: 민감도, 규정 준수, 무결성을 비롯하여 Spanner에 저장된 데이터 콘텐츠에 대한 책임입니다.
스키마 설계 및 최적화: 테이블 및 색인 생성, 성능을 위한 인터리브 테이블 관리 등 데이터베이스 스키마를 정의하고 관리합니다.
쿼리 최적화: 성능을 보장하고 리소스 할당을 관리하기 위해 효율적인 쿼리를 설계합니다. 예를 들어 트랜잭션 범위를 관리하고 잠금 동작을 이해하는 것이 중요합니다.
액세스 및 ID 관리
IAM 구성: Spanner 인스턴스 및 데이터베이스에 액세스하는 주 구성원 (사용자 및 서비스 계정)의 Identity and Access Management (IAM) 역할 및 권한을 정의하고 관리합니다.
세분화된 액세스 제어 (FGAC): 구현된 경우 고객은 데이터베이스 역할 및 권한에 대한 액세스를 정의, 관리, 재부여할 책임이 있습니다.
감사 로깅: Cloud 감사 로그를 모니터링하고 분석하여 Spanner 인스턴스 및 데이터에 대한 액세스 및 작업을 추적합니다.
운영 복원력 및 재해 복구
구성 관리: Spanner 인스턴스 구성, 노드 수, 리전 배포를 관리합니다.
백업 및 DR 서비스: 인스턴스 또는 데이터 손상의 실수로 인한 삭제와 같은 시나리오를 방지하기 위해 Spanner 인스턴스 외부 (예: 별도의 리전, 인스턴스 또는 외부 스토리지)에 데이터를 저장하는 것을 포함하는 재해 복구 전략을 구현합니다.
(선택사항) 변경 내역 통합: 이벤트 스트리밍을 위해 Spanner 변경 내역을 활용하는 Dataflow 작업 또는 기타 소비자를 구성하고 관리합니다.
보안 구성
고객 관리 암호화 키 (CMEK): 사용하는 경우 Spanner 데이터를 암호화하는 데 사용되는 Cloud Key Management Service (Cloud KMS) 키와 권한을 관리합니다.
요청 및 트랜잭션 태그 지정: 관측 가능성과 성능 모니터링을 개선하기 위해 쿼리 및 트랜잭션에 태그를 적용합니다.
모니터링 및 알림: 맞춤 모니터링을 설정 및 조정하고, 측정항목을 내보내고, 성능 저하 또는 보안 이상을 감지하도록 알림을 구성합니다.
책임 요약
다음 표에는 특정 운영 및 보안 구성요소에 대한 공유 책임이 요약되어 있습니다.
| 구성요소 | Google의 책임 | 귀하의 책임 |
|---|---|---|
| 데이터 및 사용자 액세스 | 기본 스토리지의 물리적 격리 및 보호 | IAM 및 FGAC 관리 데이터베이스 역할 및 권한 정의 |
| 네트워크 보안 | 네트워크 경로, 방화벽, Spanner 서비스 인프라의 세분화 | 가상 프라이빗 클라우드 (VPC), Private Service Connect, 클라이언트 측 네트워크 규칙을 구성합니다. |
| 백업 및 DR 서비스 | 멀티 리전 복제 및 서비스 가용성 99.999% PITR (point-in-time recovery) 기능 | 기본 Spanner 인스턴스 외부에 데이터를 저장하는 재해 복구 솔루션 구현 및 새 데이터베이스로의 애플리케이션 장애 조치 관리 |
| 암호화 | 기본적으로 저장 데이터 및 전송 중 데이터 암호화 | CMEK 키 관리 및 순환(사용된 경우) |
| 백업 | 백업 서비스 인프라 관리 및 백업 내구성 보장 | 백업 일정 정의, 백업 관리 및 액세스, 다른 인스턴스/리전으로 백업 복사 |
| Spanner 인스턴스 | 기본 인프라 프로비저닝 및 관리 | 노드 수 및 위치를 구성합니다. |
| 관측 가능성 | 진단을 위해 시스템 테이블 (예: SPANNER_SYS) 제공 |
요청/트랜잭션 태그를 활용하여 맞춤 모니터링을 구현하고 외부 모니터링 도구 (예: Prometheus 및 Grafana)와 통합합니다. |
| 클라이언트 애플리케이션 | Spanner 클라이언트 라이브러리 및 API 제공 | 데이터베이스와 상호작용하는 모든 클라이언트 애플리케이션 개발, 배포, 보안 |
| 구성 관리 | 할당량에 대한 사용량을 확인하고 필요에 따라 요청을 제출합니다. Terraform과 같은 도구를 사용하여 데이터베이스 및 인스턴스 리소스를 관리합니다. |