투명 데이터 암호화 (TDE)를 사용 설정하려면 필요한 보관함 환경 변수를 제공하고 POSTGRES_INITDB_ARGS 내에 --tde-kek-url 플래그를 포함해야 합니다.
시작하기 전에
- 키 암호화 키 (KEK) 경로와 JSON 웹 토큰 (JWT)을 사용할 수 있도록 HashiCorp Vault의 KV-V2 보안 비밀 엔진을 구성합니다.
- AlloyDB Omni에 JWT 토큰 파일을 읽을 권한이 있는지 확인합니다.
클러스터 만들기
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: 볼트 연결에 사용할 인증 유형입니다.jwt만 지원됩니다.JWT_AUTH_ENGINE_MOUNT: HashiCorp Vault 인증 엔진이 마운트된 경로입니다. 예를 들면/auth/jwt입니다.JWT_FILE_PATH: 노드에 볼트 JWT가 저장되는 경로입니다. 예를 들면tde-tls/jwt-token입니다.- (선택사항)
VAULT_ROLE: HashiCorp Vault에서 JWT 토큰의 진위성을 확인할 수 있도록 Vault 설정에 정의된 클라이언트 역할입니다. VAULT_CERT_PATH_ON_DISK: 호스트 머신의 볼트 인증서 경로입니다. 예를 들면/local/vault/config입니다.VAULT_CERT_PATH: 볼트 연결 인증서가 컨테이너에 있는 경로입니다. 예를 들면/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 정보입니다. |
|
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 |
암호화된 칠 캐시 블록 수 | 해당 없음 | counter | |
tde_chill_cache_blocks_decrypted |
복호화된 칠 캐시 블록 수 | 해당 없음 | counter | |
tde_chill_cache_blocks_total_encryption_time_us |
차분 캐시 블록 암호화에 소요된 총 시간입니다. | 해당 없음 | 마이크로초 | counter |
tde_chill_cache_blocks_total_decryption_time_us |
차분 캐시 블록 복호화에 소비된 총 시간입니다. | 해당 없음 | 마이크로초 | 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 |