建立啟用 TDE 的叢集

選取文件版本:

如要啟用透明資料加密 (TDE),您必須提供必要的保管箱環境變數,並在 POSTGRES_INITDB_ARGS 中加入 --tde-kek-url 標記。

事前準備

建立叢集

如要建立啟用 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 資訊。
  • kek_version:用於金鑰包裝的 KEK
    版本。
  • kek_url:KMS 中 KEK 的完整路徑
  • kek_creation_timestamp
    目前使用的 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 儲存空間的資料欄快取區塊所花費的總時間。 不適用 微秒 計數器