TDE 지원 클러스터 만들기

문서 버전을 선택합니다.

AlloyDB Omni에서 투명한 데이터 암호화 (TDE)를 사용 설정하여 저장 데이터를 보호하고 민감한 정보를 보호할 수 있습니다. 이 문서에서는 데이터베이스 초기화 중에 필요한 Vault 환경 변수와 POSTGRES_INITDB_ARGS 환경 변수의 --tde-kek-url 플래그를 제공하여 TDE 지원 클러스터를 만드는 방법을 설명합니다.

시작하기 전에

클러스터 만들기

TDE 지원 클러스터를 만들려면 데이터베이스 초기화 중에 필요한 Key Management Service (KMS) 구성 및 인증 사용자 인증 정보를 전달해야 합니다. 지원되는 인증 유형은 jwt뿐입니다.

컨테이너 런타임의 탭을 선택합니다.

Docker

docker run -d --name CONTAINER_NAME \
--network host \
-v DATA_DIR:/var/lib/postgresql/data \
-v VAULT_CERT_PATH_ON_DISK:VAULT_CERT_PATH \
-e VAULT_AUTH_TYPE=jwt \
-e VAULT_AUTH_MOUNT=JWT_AUTH_ENGINE_MOUNT \
-e VAULT_JWT_PATH=JWT_FILE_PATH \
-e VAULT_ROLE=VAULT_ROLE \
-e VAULT_CERT_PATH=VAULT_CERT_PATH \
-e POSTGRES_INITDB_ARGS=" \
--tde-kek-url=KEK_URL" \
google/alloydbomni:IMAGE_TAG

Docker

docker run -d --name CONTAINER_NAME \
--network host \
-v DATA_DIR:/var/lib/postgresql/data \
-v VAULT_CERT_PATH_ON_DISK:VAULT_CERT_PATH \
-e VAULT_AUTH_TYPE=jwt \
-e VAULT_AUTH_MOUNT=JWT_AUTH_ENGINE_MOUNT \
-e VAULT_JWT_PATH=JWT_FILE_PATH \
-e VAULT_ROLE=VAULT_ROLE \
-e VAULT_CERT_PATH=VAULT_CERT_PATH \
-e POSTGRES_INITDB_ARGS=" \
--tde-kek-url=KEK_URL" \
google/alloydbomni:IMAGE_TAG

Podman

podman run -d --name CONTAINER_NAME \
--network host \
-v DATA_DIR:/var/lib/postgresql/data \
-v VAULT_CERT_PATH_ON_DISK:VAULT_CERT_PATH \
-e VAULT_AUTH_TYPE=jwt \
-e VAULT_AUTH_MOUNT=JWT_AUTH_ENGINE_MOUNT \
-e VAULT_JWT_PATH=JWT_FILE_PATH \
-e VAULT_ROLE=VAULT_ROLE \
-e VAULT_CERT_PATH=VAULT_CERT_PATH \
-e POSTGRES_INITDB_ARGS=" \
--tde-kek-url=KEK_URL" \
google/alloydbomni:IMAGE_TAG

Podman

podman run -d --name CONTAINER_NAME \
--network host \
-v DATA_DIR:/var/lib/postgresql/data \
-v VAULT_CERT_PATH_ON_DISK:VAULT_CERT_PATH \
-e VAULT_AUTH_TYPE=jwt \
-e VAULT_AUTH_MOUNT=JWT_AUTH_ENGINE_MOUNT \
-e VAULT_JWT_PATH=JWT_FILE_PATH \
-e VAULT_ROLE=VAULT_ROLE \
-e VAULT_CERT_PATH=VAULT_CERT_PATH \
-e POSTGRES_INITDB_ARGS=" \
--tde-kek-url=KEK_URL" \
google/alloydbomni:IMAGE_TAG

다음을 바꿉니다.

  • CONTAINER_NAME: 만들 컨테이너의 이름입니다. 예를 들면 alloydb-tde입니다.
  • DATA_DIR: AlloyDB Omni의 데이터 볼륨으로 마운트할 로컬 디렉터리입니다. 예를 들면 /local/data입니다.
  • VAULT_AUTH_TYPE: Vault 연결에 사용할 인증 유형입니다. jwt만 지원됩니다.
  • JWT_AUTH_ENGINE_MOUNT: HashiCorp Vault 인증 엔진이 마운트되는 경로입니다. 예를 들면 /auth/jwt입니다.
  • JWT_FILE_PATH: 노드에 Vault JWT가 저장되는 경로입니다. 예를 들면 tde-tls/jwt-token입니다.
  • (선택사항) VAULT_ROLE: HashiCorp Vault에서 JWT 토큰의 진위 여부를 확인할 수 있도록 Vault 설정에 정의된 클라이언트 역할입니다.
  • VAULT_CERT_PATH_ON_DISK: 호스트 머신에 있는 Vault 인증서의 경로입니다. 예를 들면 /local/vault/config입니다.
  • VAULT_CERT_PATH: 컨테이너에서 Vault 연결의 인증서가 있는 경로입니다. 예를 들면 /tde-tls입니다. 설정하지 않으면 기본 트러스트 저장소의 인증서가 사용됩니다.
  • KEK_URL: HashiCorp Vault의 KEK에 대한 정규화된 URL입니다. 프로토콜로 vault를 사용하여 HashiCorp Vault를 KMS 제공업체로 지정합니다(예: vault://127.0.0.1:8200/v1/secrets/data/alloydb_kek).
  • IMAGE_TAG: 최신 Debian 이미지에는 18.3.0을 사용하고 최신 UBI 이미지에는 18.3.0-ubi을 사용합니다.

SSD 스토리지로 유출된 열 기반 엔진 캐시 데이터에 TDE를 사용 설정하려면 데이터베이스 인스턴스에 연결하고 다음 쿼리를 실행합니다.

ALTER SYSTEM SET google_columnar_engine.enable_tde_for_storage_cache = 'on';

변경사항이 적용되도록 데이터베이스 서버를 다시 시작합니다.

TDE 측정항목 참조

AlloyDB Omni의 모니터링 에이전트에서 모든 TDE 측정항목을 볼 수 있습니다. 다음 표에서는 각 측정항목을 설명합니다.

이름 설명 라벨 단위 유형
alloydb_omni_database_tde_data_blocks_decrypted_count_total 복호화된 데이터 블록 수입니다. 해당 없음 counter
alloydb_omni_database_tde_data_blocks_encrypted_count_total 암호화된 데이터 블록 수입니다. 해당 없음 counter
alloydb_omni_database_tde_data_decryption_time_us_total 데이터 블록 복호화에 걸린 총 시간입니다. 해당 없음 마이크로초 counter
alloydb_omni_database_tde_data_encryption_time_us_total 데이터 블록 암호화에 걸린 총 시간입니다. 해당 없음 마이크로초 counter
alloydb_omni_database_tde_enabled TDE 사용 설정 상태입니다. 해당 없음 gauge
alloydb_omni_database_tde_kek_info TDE KEK 정보입니다.
  • kek_version: 키 래핑에 사용되는 KEK 버전입니다.
  • kek_url: KMS의 KEK에 대한 정규화된 경로입니다.
  • kek_creation_timestamp:
    사용 중인 KEK 버전의 생성 시간입니다.
gauge
alloydb_omni_database_tde_temp_blocks_decrypted_count_total 복호화된 임시 블록 수입니다. 해당 없음 counter
alloydb_omni_database_tde_temp_blocks_encrypted_count_total 암호화된 임시 블록 수입니다. 해당 없음 counter
alloydb_omni_database_tde_temp_decryption_time_us_total 임시 블록 복호화에 걸린 총 시간입니다. 해당 없음 마이크로초 counter
alloydb_omni_database_tde_temp_encryption_time_us_total 임시 블록 암호화에 걸린 총 시간입니다. 해당 없음 마이크로초 counter
alloydb_omni_database_tde_wal_blocks_decrypted_count_total 복호화된 WAL 블록 수입니다. 해당 없음 counter
alloydb_omni_database_tde_wal_blocks_encrypted_count_total 암호화된 WAL 블록 수입니다. 해당 없음 counter
alloydb_omni_database_tde_wal_decryption_time_us_total WAL 블록 복호화에 걸린 총 시간입니다. 해당 없음 마이크로초 counter
alloydb_omni_database_tde_wal_encryption_time_us_total WAL 블록 암호화에 걸린 총 시간입니다. 해당 없음 마이크로초 counter
tde_chill_cache_blocks_encrypted 암호화된 chill 캐시 블록 수입니다. 해당 없음 counter
tde_chill_cache_blocks_decrypted 복호화된 chill 캐시 블록 수입니다. 해당 없음 counter
tde_chill_cache_blocks_total_encryption_time_us chill 캐시 블록 암호화에 걸린 총 시간입니다. 해당 없음 마이크로초 counter
tde_chill_cache_blocks_total_decryption_time_us chill 캐시 블록 복호화에 걸린 총 시간입니다. 해당 없음 마이크로초 counter
tde_ce_cache_ssd_blocks_encrypted 암호화된 SSD 스토리지로 유출된 열 기반 캐시 블록 수입니다. 해당 없음 counter
tde_ce_cache_ssd_blocks_decrypted 복호화된 SSD 스토리지로 유출된 열 기반 캐시 블록 수입니다. 해당 없음 counter
tde_ce_cache_ssd_blocks_total_encryption_time_us SSD 스토리지로 유출된 열 기반 캐시 블록을 암호화하는 데 걸린 총 시간입니다. 해당 없음 마이크로초 counter
tde_ce_cache_ssd_blocks_total_decryption_time_us SSD 스토리지로 유출된 열 기반 캐시 블록을 복호화하는 데 걸린 총 시간입니다. 해당 없음 마이크로초 counter