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

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

アプリケーション コードを変更せずに機密情報を保護し、厳格なコンプライアンス要件を満たすには、透過的なデータ暗号化(TDE)を使用して AlloyDB Omni の保存データを保護します。この概要では、TDE がデータベース ファイル、ログ、キャッシュをディスクに書き込む前に自動的に暗号化し、運用オーバーヘッドを最小限に抑えながら多層防御を実現する方法について説明します。

鍵の階層

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

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

AlloyDB Omni での TDE の仕組み

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

  • 初期化と鍵の取得: クラスタの起動時または初期化フェーズで、AlloyDB Omni エンジンは KMS への安全な接続を確立します。JSON ウェブトークン(JWT)を使用して認証し、KEK を取得します。
  • DEK のアンラップ: AlloyDB Omni は KEK を使用して、ラップされた状態でローカル ストレージに保存されている DEK をアンラップします。その後、これらの DEK がメモリに読み込まれます。
  • 透過的なデータ オペレーション:
    • ディスクへの書き込み: データベースがデータブロック、WAL レコード、一時ファイルを物理ディスクに書き込む際に、書き込む前に AES-256 アルゴリズムを使用してデータを自動的に暗号化します。
    • ディスクからの読み取り: データベースがデータをメモリに読み取る必要がある場合、メモリに保持されている DEK を使用してブロックを自動的に復号します。
    • キャッシュの暗号化: TDE は、キャッシュに保存されているカラム型エンジンの情報など、ディスク キャッシュもサポートしています。チル キャッシュ ストレージ レイヤに書き込まれたデータは暗号化され、カラム型エンジンの SSD キャッシュにスピルされたデータは SSD に書き込まれる前に暗号化され、読み取り時に復号されます。
  • パフォーマンスの最適化: TDE には、データを保護しながら高いパフォーマンスを維持するための最適化が含まれています。データブロックとキャッシュに最適化された AES-256-XTS 保護を使用し、高速パスのレイテンシを最小限に抑えるための同期書き込みの最適化を備えています。

  • セキュリティ境界: KEK はローカル データベース ディスクに保存されないため、物理ストレージ メディアが侵害された場合でも、外部 Vault への承認されたアクセスがなければデータを読み取ることができません。

暗号化のスコープと仕様

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

  • データファイル(テーブルとインデックス): AES-256-XTS。
  • 先行書き込みログ(WAL): AES-256-CTR。
  • 一時ファイル: 一時データの種類に応じて、AES-256-XTS または AES-256-CTR。
  • カラム型エンジン キャッシュ ファイル: AES-256-XTS。
  • チル キャッシュ ファイル: AES-256-XTS。
  • 鍵のラッピング: AES-256-KWP。

バックアップと高可用性

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

バックアップは、同じ KEK を使用できるクラスタにのみ復元できます。

HA 設定の場合、復旧環境は同じボールト環境変数で初期化する必要があります。ボールト環境変数は、参加しているすべてのホストで使用可能にする必要があります。

サポートされている 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 URL パスが同じであれば、KEK のローテーションはサポートされます。
  • FILE_COPY 戦略を使用して CREATE DATABASE を行うことはできません。
  • TDE 対応クラスタでは、Barman バックアップは rsync モードのみをサポートしています。postgres バックアップ方法はサポートされていません。
  • 鍵暗号鍵(KEK)のローテーションは、外部鍵管理システム(KMS)プロバイダとして HashiCorp Vault のみがサポートされています。

次のステップ

  • TDE 対応クラスタを作成する方法を学習する。