データ暗号化

コレクションでコンテンツを整理 必要に応じて、コンテンツの保存と分類を行います。

デフォルトでは、次のデータは暗号化された状態でハイブリッド ランタイム プレーンに保存されます。

  • 鍵管理システム(KMS)データ
  • Key-Value マップ(KVM)データ
  • キャッシュ データ

データ暗号化のために、ユーザーが特別な構成を行う必要はありません。ただし、なんらかの理由で(デフォルトの鍵の代わりに)独自の暗号鍵を使用したい場合は、このトピックの説明に従ってください。

暗号鍵のスコープ

KMS、KVM、キャッシュの暗号鍵にはスコープがあります。たとえば、KMS 鍵のスコープは組織です。つまり、鍵は組織全体での KMS データの暗号化に使用されます。次の表に、各タイプの鍵のスコープを示します。

暗号鍵 スコープ
KMS 組織のみ
KVM 組織または環境

KVM ポリシーによって apiproxy または policy(API プロキシ リビジョン)の範囲が指定されている場合、組織レベルの鍵がデータの暗号化に使用されます。Apigee Edge で KVM がどのように使用されるかについては、Key-Value マップの使い方をご覧ください。

キャッシュ 環境のみ

デフォルトの暗号鍵の概要

デフォルトでは、Apigee ハイブリッドには、KVM、KMS、キャッシュ データの暗号化に使用される一連の Base64 エンコード鍵が用意されています。Apigee ハイブリッド インストーラはランタイム プレーンに鍵を Kubernetes Secret として保存し、AES-128 標準暗号化を使用してデータを暗号化するときにこれらの鍵を使用します。これらの鍵はユーザーの管理下にあります。つまり、ハイブリッド管理プレーンがこれらの鍵を認識することは決してありません。

デフォルトの暗号鍵の変更

必要に応じてデフォルトの暗号鍵を変更できます。ただしこの操作は必須ではありません。複数のデフォルトの鍵を置き換える手順は次のとおりです。

  1. 次のスタンザをオーバーライド ファイルにコピーします。この構成によって、KMS と KVM の暗号鍵を組織レベルで、KVM とキャッシュの暗号鍵を環境レベルで、変更できます。
    defaults:
      org:
        kmsEncryptionKey: base64-encoded-key
        kvmEncryptionKey: base64-encoded-key
      env:
        kvmEncryptionKey: base64-encoded-key
        cacheEncryptionKey: base64-encoded-key
  2. 置き換える鍵ごとに新しい鍵を生成します。各鍵は、16、24、または 32 バイト長の Base64 エンコード文字列である必要があります。エンコードされた鍵を作成する方法もご覧ください。
  3. デフォルトの鍵を新しい鍵に置き換えます。この例では、すべてのデフォルトの鍵が鍵に置き換えられます。
    defaults:
      org:
        kmsEncryptionKey: "JVpTb1FwI0otUHo2RUdRN3pnVyQqVGlMSEFAJXYmb1c="
        kvmEncryptionKey: "T3VkRGM1U3cpOFgtNk9fMnNZU2NaSVA3I1BtZWxkaUU="
      env:
        kvmEncryptionKey: "Q3h6M3R6OWdBeipxTURfKjQwQVdtTng2dU5mODFHcyE="
        cacheEncryptionKey: "b2NTVXdKKjBzN0NORF9XSm9tWFlYKGJ6NUhpNystJVI="
  4. 次のようにオーバーライド ファイルをクラスタに適用します。
    • KVM またはキャッシュキーを変更する場合は、環境のみを更新します。
      $APIGEECTL_HOME/apigeectl apply -f overrides/overrides.yaml --env env_name
    • KMS 鍵を変更する場合は、組織と環境の両方を更新します。
      $APIGEECTL_HOME/apigeectl apply -f overrides/overrides.yaml --env env_name --org org_name

下位互換性に関する注意事項

Apigee ハイブリッドを初めてインストールするときにオーバーライド ファイルから暗号鍵を削除すると、暗号化が実質的に無効になり、値は暗号化されていない状態で保存されます。インストール後に鍵を提供して暗号化を有効にした場合、既存のデータは非暗号化状態のままですが、その後追加されたデータは暗号化されます。システムは引き続き、暗号化されていないデータと新しい暗号化データを通常の方法で処理します。

また、ランタイム データの暗号化後には暗号鍵を変更できないことにも注意してください。

エンコードされた鍵の作成方法

KVM、KMS、キャッシュの暗号化には、適切な形式の Base64 エンコード鍵が必要です。この目的で使用される鍵は、以下で説明するように、16、24、または 32 バイト長の Base-64 エンコード鍵でなければなりません。

次の例のコマンドでは、ランダム生成の適切な 32 文字の Base64 エンコード文字列が生成されます。

head -c 32 /dev/random | openssl base64