ページの先頭行へ戻る
Enterprise Postgres 17 SP1 運用ガイド

6.1 暗号化によるデータの保護

5.1 暗号化によるデータの保護”を参照してください。以下では、“5.1 暗号化によるデータの保護”で説明しているファイルベースのキーストアにおける透過的データ暗号化の運用との相違点を説明します。

暗号化の仕組み

2層の暗号化キーとキーストア

各テーブル空間には、その中のすべてのデータを暗号化/復号するテーブル空間暗号化キーがあります。テーブル空間暗号化キーは、マスタ暗号化キーで暗号化されて保存されます。
鍵管理システムに保存されている暗号化キーを、データベースクラスタで共通のマスタ暗号化キーとして使用します。Fujitsu Enterprise Postgresは鍵管理システムをマスタ暗号化キーのキーストアとして参照します。

  

鍵管理システムのタイプ

以下の2つのタイプの鍵管理システムを使用できます。

  • kmip

    OASIS(Organization for the Advancement of Structured Information Standards)によって標準化されているKMIP(Key Management Interoperability Protocol)というプロトコルを使用して利用できる鍵管理システムです。

  • custom

    KMIPプロトコルを採用せずに、要求の形式を変換するアダプタを用いて連携する鍵管理システムです。

    このタイプで必要となるアダプタのプラグインのサンプルは、Fujitsu Enterprise Postgresのインストールディレクトリ配下の以下に格納されています。

    • Amazon Web Services(以降、AWS)用

      インストールディレクトリ/share/aw-kms-plugin.sh.sample

    • Microsoft Azure(以降、Azure)用

      インストールディレクトリ/share/az-kms-plugin.sh.sample

    提供されているAWS用のサンプルプラグインをそのまま利用する場合、以下の条件があります。

    項目

    内容

    利用できるサービス

    AWSのアダプタを利用することで、AWSが提供するKey Management Service(以降、KMS)上の暗号鍵を利用できます。AWS KMSが対応しているリージョンであれば、リージョンの制限はありません。

    利用できるAWS KMSのキー

    KMSキーのキー仕様(key spec)は対称暗号鍵である必要があります。非対称暗号鍵は使用できません。また、KMSキーの用途(key usage)はENCRYPT_DECRYPTである必要があります。

    必要な権限

    使用するKMSキーに対し、AWS KMSに対してアクセスするユーザーに以下の操作が許可されている必要があります。

    • Encrypt

    • Decrypt

    • DescribeKey

    鍵ID

    鍵IDとして以下が指定できます。

    • キーARN

    依存パッケージ

    Fujitsu Enterprise PostgresのサーバにAWS CLIをインストールしてください。詳細はAWS CLIのマニュアルを参照してください。それ以外に以下のパッケージが必要です。

    • jq

    プラグインはFujitsu Enterprise Postgresのサーバを起動するOSユーザーで実行されます。そのOSユーザーがawsコマンドおよびjqコマンドが実行できるようにPATHを設定するか、スクリプトファイルを修正する必要があります。

    CLIの設定

    Fujitsu Enterprise Postgresのサーバを起動するOSユーザーによるawsコマンドの実行が、追加の資格情報の入力なしでAWSの鍵管理サービスにアクセスできるように、CLIの設定を行ってください。

    このように設定を行うことで、このプラグインを利用するキーストアはKMSシークレットの入力なしでオープンできます。


    提供されているAzure用のサンプルプラグインをそのまま利用する場合、以下の条件があります。

    項目

    内容

    利用できるサービス

    Azureのアダプタを利用することで、AzureのKey Vault APIによってアクセス可能で、かつ対称鍵を使用できる鍵管理サービスを利用できます。

    利用可能なキー

    対象鍵が利用できます。

    利用可能なアルゴリズム

    暗号化/復号操作の際に以下のアルゴリズムが利用できます。

    • A256GCM

    キーの操作

    使用するキーに対し、Azureの鍵管理サービスに対してアクセスするユーザーに以下の操作が許可されている必要があります。

    • encrypt

    • decrypt

    • get

    鍵ID

    鍵IDとして以下が指定できます。

    • キーのオブジェクト識別子

    依存パッケージ

    Fujitsu Enterprise PostgresのサーバにAzure CLIをインストールしてください。詳細はAzure CLIのマニュアルを参照してください。それ以外に以下のパッケージが必要です。

    • jq

    プラグインはFujitsu Enterprise Postgresのサーバを起動するOSユーザーで実行されます。そのOSユーザーがazコマンドおよびjqコマンドが実行できるようにPATHを設定するか、スクリプトファイルを修正する必要があります。

    サインイン

    サービスプリンシパルを使用してAzureにサインインします。サインインのためにアプリケーションID、テナントID、および資格情報が必要です。認証方法としてパスワード認証と証明書ベースの認証を利用できます。

    キーストアのオープン

    キーストアをオープンするために、KMSシークレットとして以下を指定する必要があります。

    • パスワード(パスワード認証の場合)

    • 秘密鍵のパスフレーズ(証明書ベース認証の場合)

参照

Fujitsu Enterprise Postgresで利用可能な鍵管理システムの要件は、“導入ガイド(サーバ編)”の“鍵管理システムの要件”を参照してください。

  

テーブル空間暗号化キーの共有

アダプタを利用して鍵管理システムと連携する場合、マスタ暗号化キーを使ったテーブル空間暗号化キーの暗号化や復号は鍵管理システム側で行われます。
テーブル空間暗号化キーを使用しようとするたびに鍵管理システムへアクセスする必要がないように、テーブル空間暗号化キーをデータベースクラスタ内で共有できます。

マスタ暗号化キーを利用した暗号化/復号処理のコストが問題になるのは以下の場合です。

  • データベースへの複数の接続が暗号化テーブル空間にアクセスする

  • 暗号化テーブル空間にアクセスする接続が繰り返され、かつコネクションプーリングが無効である

  

暗号化キーの識別子

鍵管理システム上に保管されている暗号化キーを特定するための識別子として、鍵IDを利用します。

鍵ID

鍵管理システム上の暗号化キーを特定するための情報で、鍵管理システム内で一意の情報です。暗号化キーの実体(バイト列)と鍵IDの対応は暗号化キーのライフサイクルを通じて変わりません。

識別子の呼び方は各鍵管理システムによって異なりますが、本機能ではこのような情報を鍵IDと呼びます。

  

鍵管理システムの変更

透過的データ暗号化機能の運用開始後に、使用する鍵管理システムを別の鍵管理システムに変更できます。