키 계층 구조
AlloyDB Omni는 데이터베이스와 사용자 관리 보안 인프라 간에 엄격한 직무 분리를 유지하는 2단계 키 계층 구조를 구현합니다.
- 데이터 암호화 키 (DEK): AlloyDB Omni에서 생성하고 소유하는 키입니다. 이러한 키는 실제 데이터 파일, WAL, 임시 파일을 암호화합니다. AlloyDB Omni는 디스크에 DEK를 저장하지만 KEK로 래핑합니다.
-
키 암호화 키 (KEK): 외부 키 관리 서비스 (KMS)에서 관리하는 기본 키입니다.
AlloyDB Omni는 KEK를 사용하여 DEK를 암호화합니다.
AlloyDB Omni는 시작 시에만 이 키에 액세스하여 DEK를 언래핑합니다. KEK는 데이터베이스 디스크에 영구적으로 저장되지 않습니다.
-
KEK의 위치 및 액세스 매개변수는 환경 변수와
--tde-kek-url초기화 플래그를 통해 제공됩니다.
-
KEK의 위치 및 액세스 매개변수는 환경 변수와
AlloyDB Omni에서 TDE가 작동하는 방식
TDE가 사용 설정되면 AlloyDB Omni는 외부 KMS와 통합되는 계층화된 암호화 모델을 사용하여 데이터를 보호합니다.
- 초기화 및 키 검색: 클러스터의 시작 또는 초기화 단계에서 AlloyDB Omni 엔진은 KMS에 대한 보안 연결을 설정합니다. JSON 웹 토큰 (JWT)을 사용하여 인증하고 KEK를 검색합니다.
- DEK 언래핑: AlloyDB Omni는 KEK를 사용하여 래핑된 상태로 로컬 스토리지에 저장된 DEK를 언래핑합니다. 그런 다음 이러한 DEK가 메모리에 로드됩니다.
- 투명 데이터 작업:
- 디스크에 쓰기: 데이터베이스가 데이터 블록, WAL 레코드 또는 임시 파일을 물리적 디스크에 쓸 때 쓰기 전에 AES-256 알고리즘을 사용하여 데이터를 자동으로 암호화합니다.
- 디스크에서 읽기: 데이터베이스가 데이터를 메모리에 읽어야 하는 경우 메모리에 보관된 DEK를 사용하여 블록을 자동으로 복호화합니다.
- 캐시 암호화: TDE는 캐시에 저장된 열 기반 엔진 정보를 비롯한 디스크 캐시도 지원합니다. chill 캐시 스토리지 계층에 기록된 데이터는 암호화되고 열 기반 엔진의 SSD 캐시에 유출된 데이터는 SSD에 쓰기 전에 암호화되고 읽을 때 복호화됩니다.
성능 최적화: TDE에는 데이터를 보호하면서 높은 성능을 유지하기 위한 최적화가 포함되어 있습니다. 데이터 블록 및 캐시에 최적화된
AES-256-XTS보호를 사용하고 동기식 쓰기 최적화를 통해 빠른 경로의 지연 시간을 최소화합니다.보안 경계: KEK는 로컬 데이터베이스 디스크에 저장되지 않으므로 물리적 스토리지 미디어가 손상되더라도 외부 Vault에 대한 승인된 액세스 권한이 없으면 데이터를 읽을 수 없습니다.
암호화 범위 및 사양
AlloyDB Omni는 업계 표준 AES-256 알고리즘을 사용하여 데이터를 보호합니다.
- 데이터 파일 (테이블 및 색인): AES-256-XTS
- 선행 쓰기 로그 (WAL): AES-256-CTR
- 임시 파일: 임시 데이터 유형에 따라 AES-256-XTS 또는 AES-256-CTR
- 열 기반 엔진 캐시 파일: AES-256-XTS
- Chill 캐시 파일: AES-256-XTS
- 키 래핑: AES-256-KWP
백업 및 고가용성
TDE가 사용 설정되면 pgBackRest를 사용하여 생성된 백업은 소스 클러스터의 암호화 구성을 상속합니다. 이렇게 하면 백업 데이터가 기본 데이터베이스와 동일한 수준의 보안으로 보호됩니다.
HA 설정의 경우 복구 환경은 동일한 볼트 환경 변수로 초기화되어야 합니다. 볼트 환경 변수는 참여하는 모든 호스트에서 사용할 수 있어야 합니다.
지원되는 KMS 및 인증
AlloyDB Omni는 HashiCorp Vault를 외부 KMS 제공업체로 지원합니다. AlloyDB Omni는 KV-V2 비밀번호 엔진만 지원하며 지원되는 유일한 인증 방법은 JWT입니다.
참고: AlloyDB Omni는 파일 기반 KMS를 지원합니다. 하지만 프로덕션 워크로드에서는 사용하지 말고 테스트 목적으로만 사용하는 것이 좋습니다.PostgreSQL 도구 호환성
TDE 지원 클러스터는 환경 변수를 통해initdb를 제외한 모든 기본 PostgreSQL 도구를 투명하게 지원합니다.
initdb를 사용하는 경우 KEK URL을 명시적으로 전달해야 합니다.
자세한 내용은
TDE 지원 클러스터 만들기를 참고하세요.
제한사항
- 기존 클러스터에서는 TDE를 사용 설정할 수 없습니다.
- 사용 설정한 후에는 TDE를 사용 중지할 수 없습니다.
- TDE 지원 클러스터에는 메이저 버전 업그레이드가 지원되지 않습니다.
- 암호화된 백업을 암호화되지 않은 서버로 복원하거나 암호화되지 않은 백업을 암호화된 서버로 복원할 수 없습니다.
- DEK 순환은 지원되지 않습니다.
- KEK URL 경로가 동일하게 유지되는 한 KEK 순환이 지원됩니다.
FILE_COPY전략을 사용하여CREATE DATABASE를 실행할 수 없습니다.- TDE 지원 클러스터에서 Barman 백업은
rsync모드만 지원합니다.postgres백업 방법은 지원되지 않습니다. - 키 암호화 키 (KEK) 순환은 HashiCorp Vault만 외부 키 관리 시스템 (KMS) 제공업체로 지원됩니다.
다음 단계
- TDE 지원 클러스터를 만드는 방법을 알아봅니다.