透過的データ暗号化(TDE)を有効にするには、必要な Vault 環境変数を指定し、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-tdeDATA_DIR: AlloyDB Omni のデータボリュームとしてマウントするローカル ディレクトリ。例:/local/dataVAULT_AUTH_TYPE: Vault 接続に使用する認証のタイプ。jwtのみがサポートされています。JWT_AUTH_ENGINE_MOUNT: HashiCorp Vault 認証エンジンがマウントされているパス。例:/auth/jwtJWT_FILE_PATH: Vault JWT がノードに保存されているパス。例:tde-tls/jwt-token- (省略可)
VAULT_ROLE: HashiCorp Vault が JWT トークンの信頼性を検証できるように、Vault の設定で定義されたクライアント ロール。 VAULT_CERT_PATH_ON_DISK: ホストマシン上の Vault 証明書のパス。例:/local/vault/configVAULT_CERT_PATH: Vault 接続の証明書がコンテナに配置されているパス。例:/tde-tls設定されていない場合は、デフォルトのトラストストアの証明書が使用されます。KEK_URL: HashiCorp Vault の KEK への完全修飾された URL。KMS プロバイダとして HashiCorp Vault を指定するには、プロトコルとしてvaultを使用します(例: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 |
復号化されたデータブロックの数。 | 該当なし | カウンタ | |
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 ストレージにスピルされたカラム型キャッシュ ブロックの復号化に費やされた合計時間。 | 該当なし | マイクロ秒 | カウンタ |