시작하기 전에
- AlloyDB Omni 설치 계획을 읽습니다.
키 암호화 키 (KEK) 경로와 JSON 웹 토큰 (JWT)을 사용할 수 있도록 HashiCorp Vault의 KV-V2 보안 비밀 엔진을 구성합니다.
AlloyDB Omni에 JWT 토큰 파일을 읽을 권한이 있는지 확인합니다.
클러스터 만들기
TDE 지원 클러스터를 만들려면 데이터베이스 초기화 중에 필요한 Key Management Service (KMS) 구성 및 인증 사용자 인증 정보를 전달해야 합니다. 지원되는 유일한 인증 유형은 jwt입니다.
RPM을 사용하여 AlloyDB Omni 설치를 사용하여 환경을 준비하고 AlloyDB Omni RPM 패키지를 설치합니다.
데이터베이스를 초기화합니다.
HashiCorp Vault KMS
프로덕션 워크로드에 이 방법을 사용하세요.
다음 명령어를 실행하여 TDE가 사용 설정된 데이터베이스를 초기화합니다.
sudo PGPASSWORD=POSTGRES_PASSWORD \ PGDATA=DATA_DIR \ VAULT_AUTH_TYPE=jwt \ VAULT_AUTH_MOUNT=JWT_AUTH_ENGINE_MOUNT \ VAULT_JWT_PATH=JWT_FILE_PATH \ VAULT_ROLE=VAULT_ROLE \ VAULT_CERT_PATH=VAULT_CERT_PATH \ POSTGRES_INITDB_ARGS="--tde-kek-url=KEK_URL" \ /usr/lib/postgresql/18/bin/alloydbomni18-setup initdb
다음을 바꿉니다.
POSTGRES_PASSWORD: 데이터베이스 사용자의 비밀번호입니다.DATA_DIR: AlloyDB Omni의 데이터 볼륨으로 마운트할 로컬 디렉터리입니다(예:/local/data).VAULT_AUTH_TYPE: Vault 연결에 사용할 인증 유형입니다.jwt만 지원됩니다.JWT_AUTH_ENGINE_MOUNT: HashiCorp Vault 인증 엔진이 마운트된 경로입니다(예:/auth/jwt).JWT_FILE_PATH: 노드에 보관 JWT가 저장되는 경로입니다(예:tde-tls/jwt-token).- (선택사항)
VAULT_ROLE: HashiCorp Vault에서 JWT 토큰의 진위성을 확인할 수 있도록 볼트 설정에 정의된 클라이언트 역할입니다. 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).
alloydbomni.service in /etc/systemd/system/alloydbomni18.service.d/override.conf의 재정의 파일을 만들려면override.conf파일에 다음을 추가하세요.[Service] Environment="VAULT_AUTH_TYPE" Environment="VAULT_AUTH_MOUNT=JWT_AUTH_ENGINE_MOUNT" Environment="VAULT_JWT_PATH=JWT_FILE_PATH" Environment="VAULT_ROLE=VAULT_ROLE" Environment="VAULT_CERT_PATH=VAULT_CERT_PATH"
변경사항을 적용하려면 systemd 데몬을 다시 로드합니다.
sudo systemctl daemon-reload
파일 기반 KMS
이 방법은 테스트 목적으로만 사용하세요.
파일 기반 키를 사용하여 로컬에서 TDE를 테스트하려면 먼저 머신에서 32바이트 KEK를 생성해야 합니다.
디렉터리를 만들고, 키를 생성하고, 적절한 권한을 설정합니다.
KEK_DIR=KEK_DIR mkdir -p $KEK_DIR sudo chown 999:999 $KEK_DIR openssl rand -base64 32 | sudo tee $KEK_DIR/key sudo chmod 0755 $KEK_DIR/key
로컬 파일 URI를 KEK URL로 전달하여 데이터베이스를 초기화합니다.
sudo PGPASSWORD=POSTGRES_PASSWORD \ PGDATA=DATA_DIR \ POSTGRES_INITDB_ARGS="--tde-kek-url=file:///$KEK_DIR/key" \ /usr/lib/postgresql/18/bin/alloydbomni18-setup initdb
다음을 바꿉니다.
POSTGRES_PASSWORD: 데이터베이스 사용자의 비밀번호입니다.DATA_DIR: AlloyDB Omni의 데이터 볼륨으로 마운트할 로컬 디렉터리입니다(예:/local/data).KEK_DIR: 로컬 파일 기반 KEK가 저장된 디렉터리입니다(예:/tmp/alloydb/kms).
데이터베이스가 초기화되면 RPM을 사용하여 AlloyDB Omni 설치의 안내에 따라 데이터베이스를 준비하고, 호스트를 설정하고,
systemd서비스를 시작합니다.
TDE 측정항목 보기
클러스터가 초기화된 후 다음 단계를 완료하여 TDE가 사용 설정되었는지 확인하고 관련 TDE 측정항목을 확인합니다.
psql또는 원하는 클라이언트를 사용하여 데이터베이스에 연결합니다. 인스턴스 연결에 관한 자세한 안내는 AlloyDB Omni 실행 및 연결을 참고하세요.다음 명령어를 실행합니다.
select * FROM pgsnap.g$tde_stats;출력에는 TDE 사용 설정 여부, KEK URL, KEK 버전, KEK 생성 타임스탬프와 같은 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_enabledTDE 사용 설정 상태입니다. 해당 없음 gauge alloydb_omni_database_tde_kek_infoTDE 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_totalWAL 블록 복호화에 소요된 총 시간입니다. 해당 없음 마이크로초 counter alloydb_omni_database_tde_wal_encryption_time_us_totalWAL 블록 암호화에 소요된 총 시간입니다. 해당 없음 마이크로초 counter