AlloyDB Omni の透過的データ暗号化

ドキュメントのバージョンを選択してください。

Transparent Data Encryption(TDE)を使用すると、アプリケーション コードを変更することなく、AlloyDB Omni クラスタ内のすべての保存データを保護できます。この機能を有効にすると、テーブル、インデックス、write-ahead log(WAL)がディスクに書き込まれる前に自動的に暗号化されます。これにより、コンプライアンス要件を満たし、機密情報を保護できます。

SQL クエリ、DDL、DML オペレーションはアプリケーションの変更を必要とせずに正常に機能するため、暗号化は透過的です。データはディスクに書き込まれる前に自動的に暗号化され、メモリに読み込まれるときに復号されます。

鍵の階層

AlloyDB Omni は、データベースとユーザー管理のセキュリティ インフラストラクチャの間で厳格な職務分掌を維持する 2 層の鍵の階層を実装しています。

  • データ暗号鍵(DEK): AlloyDB Omni によって生成され、所有されます。これらの鍵は、実際のデータファイル、WAL、一時ファイルを暗号化します。AlloyDB Omni は DEK をディスクに保存しますが、KEK でラップします。
  • 鍵暗号鍵(KEK): 外部の鍵管理サービス(KMS)で管理するメインキー。AlloyDB Omni は、KEK を使用して DEK を暗号化します。AlloyDB Omni は、起動時にのみこの鍵にアクセスして DEK のラップを解除します。KEK がデータベース ディスクに永続的に保存されることはありません。

AlloyDB Omni での TDE の仕組み

TDE が有効になっている場合、AlloyDB Omni は、外部 KMS と統合された階層型暗号化モデルを使用してデータを保護します。

  • 初期化と鍵の取得: クラスタの起動フェーズまたは初期化フェーズで、AlloyDB Omni エンジンは KMS への安全な接続を確立します。JSON ウェブトークン(JWT)を使用して認証し、KEK を取得します。
  • DEK のラップ解除: AlloyDB Omni は、KEK を使用して DEK のラップを解除します。DEK は、ラップされた状態でローカル ストレージに保存されます。その後、これらの DEK がメモリに読み込まれます。
  • 透明なデータ オペレーション:
    • ディスクへの書き込み: データベースがデータブロック、WAL レコード、一時ファイルを物理ディスクに書き込むときに、物理ディスクに書き込む前に AES-256 アルゴリズムを使用してデータを自動的に暗号化します。
    • ディスクからの読み取り: データベースがデータをメモリに読み取る必要がある場合、メモリに保持されている DEK を使用してブロックを自動的に復号します。
  • セキュリティ境界: KEK はローカル データベース ディスクに保存されないため、物理ストレージ メディアが侵害された場合でも、外部 Vault への承認されたアクセスがなければデータは読み取れません。

暗号化のスコープと仕様

AlloyDB Omni は、業界標準の AES-256 アルゴリズムを使用してデータを保護します。

  • データファイル(テーブルとインデックス): AES-256-XTS。
  • Write-ahead log(WAL): AES-256-CTR。
  • 一時ファイル: 一時データの種類に応じて AES-256-XTS または AES-256-CTR。
  • 鍵のラッピング: AES-256-KWP。

バックアップと高可用性

TDE が有効になっている場合、pgBackRest を使用して作成されたバックアップは、ソースクラスタの暗号化構成を継承します。これにより、バックアップ データはプライマリ データベースと同じレベルのセキュリティで保護されます。

サポートされている KMS と認証

AlloyDB Omni は、外部 KMS プロバイダとして HashiCorp Vault をサポートしています。AlloyDB Omni は KV-V2 シークレット エンジンのみをサポートしています。サポートされている認証方法は JWT のみです。

注: AlloyDB Omni はファイルベースの KMS をサポートしています。ただし、これはテスト目的でのみ使用し、本番環境のワークロードでは使用しないことをおすすめします。

PostgreSQL ツールとの互換性

TDE 対応クラスタは、initdb を除くすべての組み込み PostgreSQL ツールを、環境変数を介して透過的にサポートします。initdb を使用する場合は、KEK URL を渡してください。詳細については、TDE 対応クラスタを作成するをご覧ください。

制限事項

  • 既存のクラスタで TDE を有効にすることはできません。
  • 有効にすると、TDE を無効にすることはできません。
  • TDE が有効なクラスタでは、メジャー バージョンのアップグレードはサポートされていません。
  • 暗号化バックアップを暗号化されていないサーバーに復元したり、暗号化されていないバックアップを暗号化されたサーバーに復元することはできません。
  • DEK のローテーションはサポートされていません。
  • KEK のローテーションは、KEK の URL パスが同じである限りサポートされます。
  • KEK のローテーションは、外部 KMS プロバイダとして HashiCorp Vault でのみサポートされています。
  • FILE_COPY 戦略を使用して CREATE DATABASE することはできません。
  • TDE 対応クラスタでは、Barman バックアップは rsync モードのみをサポートします。postgres バックアップ方法はサポートされていません。

次のステップ