透過的データ暗号化(TDE)を有効にするには、必要な Vault 環境変数を指定し、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-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。vaultをプロトコルとして使用して、KMS プロバイダとして HashiCorp Vault を指定します(例:vault://127.0.0.1:8200/v1/secrets/data/alloydb_kek)。IMAGE_TAG: 最新の Debian イメージには18.1.0を使用し、最新の UBI イメージには18.1.0-ubiを使用します。
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復号されたデータブロックの数。 該当なし カウンタ 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_enabledTDE が有効になっているかどうか。 該当なし ゲージ alloydb_omni_database_tde_kek_infoTDE 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_totalWAL ブロックの復号に費やされた合計時間。 該当なし マイクロ秒 カウンタ alloydb_omni_database_tde_wal_encryption_time_us_totalWAL ブロックの暗号化に費やされた合計時間。 該当なし マイクロ秒 カウンタ