如要啟用透明資料加密 (TDE),您必須提供必要的保管箱環境變數,並在 POSTGRES_INITDB_ARGS 中加入 --tde-kek-url 標記。
事前準備
- 設定 HashiCorp Vault 的 KV-V2 密碼引擎,確保金鑰加密金鑰 (KEK) 路徑和 JSON Web Token (JWT) 可用。
- 確認 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:在節點上儲存 Vault JWT 的路徑。例如:tde-tls/jwt-token。- (選用)
VAULT_ROLE:在保管箱設定中定義的用戶端角色,可讓 HashiCorp 保管箱驗證 JWT 憑證的真實性。 VAULT_CERT_PATH_ON_DISK:主機上的 Vault 憑證路徑。例如:/local/vault/config。VAULT_CERT_PATH:容器中存放保險箱連線憑證的路徑。例如:/tde-tls。如未設定,系統會使用預設信任存放區中的憑證。KEK_URL:HashiCorp Vault 中 KEK 的完整網址。使用vault做為通訊協定,將 HashiCorp Vault 指定為 KMS 提供者,例如vault://127.0.0.1:8200/v1/secrets/data/alloydb_kek。IMAGE_TAG:使用18.3.0取得最新版 Debian 映像檔,或使用18.3.0-ubi取得最新版 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 |
已解密的資料區塊數。 | 不適用 | 計數器 | |
alloydb_omni_database_tde_data_blocks_encrypted_count_total |
加密的資料區塊數。 | 不適用 | 計數器 | |
alloydb_omni_database_tde_data_decryption_time_us_total |
資料區塊解密所花費的總時間。 | 不適用 | 微秒 | 計數器 |
alloydb_omni_database_tde_data_encryption_time_us_total |
資料區塊加密所花費的總時間。 | 不適用 | 微秒 | 計數器 |
alloydb_omni_database_tde_enabled |
TDE 啟用狀態。 | 不適用 | 取樣 | |
alloydb_omni_database_tde_kek_info |
TDE KEK 資訊。 |
|
取樣 | |
alloydb_omni_database_tde_temp_blocks_decrypted_count_total |
已解密的暫時性區塊數。 | 不適用 | 計數器 | |
alloydb_omni_database_tde_temp_blocks_encrypted_count_total |
加密的臨時區塊數。 | 不適用 | 計數器 | |
alloydb_omni_database_tde_temp_decryption_time_us_total |
解密暫時區塊的總時間。 | 不適用 | 微秒 | 計數器 |
alloydb_omni_database_tde_temp_encryption_time_us_total |
暫時性區塊加密的總時間。 | 不適用 | 微秒 | 計數器 |
alloydb_omni_database_tde_wal_blocks_decrypted_count_total |
已解密的 WAL 區塊數。 | 不適用 | 計數器 | |
alloydb_omni_database_tde_wal_blocks_encrypted_count_total |
加密的 WAL 區塊數。 | 不適用 | 計數器 | |
alloydb_omni_database_tde_wal_decryption_time_us_total |
解密 WAL 區塊的總時間。 | 不適用 | 微秒 | 計數器 |
alloydb_omni_database_tde_wal_encryption_time_us_total |
WAL 區塊加密的總時間。 | 不適用 | 微秒 | 計數器 |
tde_chill_cache_blocks_encrypted |
加密的冷快取區塊數。 | 不適用 | 計數器 | |
tde_chill_cache_blocks_decrypted |
已解密的冷快取區塊數。 | 不適用 | 計數器 | |
tde_chill_cache_blocks_total_encryption_time_us |
在冷快取區塊加密中花費的總時間。 | 不適用 | 微秒 | 計數器 |
tde_chill_cache_blocks_total_decryption_time_us |
解密冷快取區塊的總時間。 | 不適用 | 微秒 | 計數器 |
tde_ce_cache_ssd_blocks_encrypted |
溢出至 SSD 儲存空間並經過加密的直欄快取區塊數量。 | 不適用 | 計數器 | |
tde_ce_cache_ssd_blocks_decrypted |
已解密的溢出至 SSD 儲存空間的直欄快取區塊數。 | 不適用 | 計數器 | |
tde_ce_cache_ssd_blocks_total_encryption_time_us |
加密溢出至 SSD 儲存空間的資料欄快取區塊所花費的總時間。 | 不適用 | 微秒 | 計數器 |
tde_ce_cache_ssd_blocks_total_decryption_time_us |
解密溢出至 SSD 儲存空間的資料欄快取區塊所花費的總時間。 | 不適用 | 微秒 | 計數器 |