デフォルトでは、次のデータは暗号化された状態でハイブリッド ランタイム プレーンに保存されます。
- キャッシュ データ
- 契約鍵データ
- 鍵管理システム(KMS)データ
- Key-Value マップ(KVM)データ
データ暗号化のために、ユーザーが特別な構成を行う必要はありません。ただし、なんらかの理由で(デフォルトの鍵の代わりに)独自の暗号鍵を使用したい場合は、このトピックの説明に従ってください。
暗号鍵のスコープ
Apigee ハイブリッド暗号鍵にはスコープがあります。たとえば、KMS 鍵のスコープは組織です。つまり、鍵は組織全体での KMS データの暗号化に使用されます。次の表に、各タイプの鍵のスコープを示します。
暗号鍵 | 範囲 |
---|---|
契約 | 組織のみ |
KMS | 組織のみ |
KVM | 組織または環境 KVM ポリシー |
キャッシュ | 環境のみ |
デフォルトの暗号鍵について
デフォルトでは、Apigee ハイブリッドには、契約、KVM、KMS、キャッシュ データの暗号化に使用される一連の Base64 エンコード鍵が用意されています。Apigee ハイブリッド インストーラはランタイム プレーンに鍵を Kubernetes Secret として保存し、AES-128 標準暗号化を使用してデータを暗号化するときにこれらの鍵を使用します。このような鍵はユーザーの管理下にあります。つまり、ハイブリッド管理プレーンがこれらの鍵を認識することはありません。
デフォルトの鍵は、新しい Apigee ハイブリッド コンポーネントの作成時にそれらすべてのコンポーネントに適用されます。
デフォルトの暗号鍵の変更
必要に応じてデフォルトの暗号鍵を変更できます。これは必須ではありません。複数のデフォルトの鍵を置き換える手順は次のとおりです。
- 次のスタンザをオーバーライド ファイルにコピーします。この構成によって、KMS と KVM の暗号鍵を組織レベルで、KVM とキャッシュの暗号鍵を環境レベルで変更できます。
defaults: org: kmsEncryptionKey: base64-encoded-key kvmEncryptionKey: base64-encoded-key contractEncryptionKey: base64-encoded-key env: kvmEncryptionKey: base64-encoded-key cacheEncryptionKey: base64-encoded-key
- 置き換える鍵ごとに新しい鍵を生成します。各鍵は、16、24、32 バイト長の Base64 エンコード文字列である必要があります。エンコードされた鍵の作成方法もご覧ください。
- デフォルトの鍵を新しい鍵に置き換えます。この例では、すべてのデフォルトの鍵が鍵に置き換えられます。
defaults: org: kmsEncryptionKey: "JVpTb1FwI0otUHo2RUdRN3pnVyQqVGlMSEFAJXYmb1c=" kvmEncryptionKey: "T3VkRGM1U3cpOFgtNk9fMnNZU2NaSVA3I1BtZWxkaUU=" contractEncryptionKey: "RDEyMzQ1Njc4OTAxMjM0NQ==" env: kvmEncryptionKey: "Q3h6M3R6OWdBeipxTURfKjQwQVdtTng2dU5mODFHcyE=" cacheEncryptionKey: "b2NTVXdKKjBzN0NORF9XSm9tWFlYKGJ6NUhpNystJVI="
デフォルトの鍵をオーバーライドする
オーバーライド ファイルで指定された組織または特定の環境のキーをオーバーライドできます。コンポーネントを作成するときに、組織または個々の環境に指定したキーがデフォルトをオーバーライドします。
- 次のスタンザをオーバーライド ファイルにコピーします。この構成によって、KMS と KVM の暗号鍵を組織レベルで、KVM とキャッシュの暗号鍵を環境レベルで変更できます。
org:YOUR_ORG_NAME kmsEncryptionKey: base64-encoded-key kvmEncryptionKey: base64-encoded-key contractEncryptionKey: base64-encoded-key envs - name: ENV_NAME kvmEncryptionKey: base64-encoded-key kmsEncryptionKey: base64-encoded-key cacheEncryptionKey: base64-encoded-key - name: 2ND_ENV_NAME kvmEncryptionKey: base64-encoded-key kmsEncryptionKey: base64-encoded-key cacheEncryptionKey: base64-encoded-key
- オーバーライドする鍵ごとに新しい鍵を生成します。各鍵は、16、24、32 バイト長の Base64 エンコード文字列である必要があります。エンコードされた鍵の作成方法もご覧ください。
- オーバーライドするキーを指定します。この例では、すべてのデフォルトの鍵が鍵に置き換えられます。
org:hybrid-org kmsEncryptionKey: "QTEyMz1b2jc4OTAxMjM0NQ==" kvmEncryptionKey: "QzEyM2c3Njc4OTAxMjM0NQ==" contractEncryptionKey: "RDEyMzQ1Njc4OTAxMjM0NQ==" envs: - name: prod kvmEncryptionKey: "QzEyM2c3Njc4OTAxMjM0NQ==" kmsEncryptionKey: "QTEyMz1b2jc4OTAxMjM0NQ==" cacheEncryptionKey: "QjEyAvC1Njc4OTAxMjM0NQ==" envs: - name: test kvmEncryptionKey: "A1b2C3d4E5f6G7h8I9j10K==" kmsEncryptionKey: "QTEyMz1b2jc4OTAxMjM0NQ==" cacheEncryptionKey: "B1c2D3e4F5f6H7i8J9k10L=="
鍵の変更を適用する
次の Helm コマンドを使用して、オーバーライド ファイルをクラスタに適用します。- 組織の契約鍵または KVM 鍵を変更する場合は、組織を更新します。
helm upgrade ORG_NAME apigee-org/ \ --namespace apigee \ --atomic \ -f OVERRIDES_FILE.yaml
- 環境のキャッシュ鍵または KVM 鍵を変更する場合は、環境を更新します。
helm upgrade ENV_NAME apigee-env/ \ --namespace apigee \ --atomic \ --set env=ENV_NAME \ -f OVERRIDES_FILE.yaml
- KMS 鍵を変更する場合は、組織と環境の両方を更新します。
helm upgrade ORG_NAME apigee-org/ \ --namespace apigee \ --atomic \ -f OVERRIDES_FILE.yaml
helm upgrade ENV_NAME apigee-env/ \ --namespace apigee \ --set env=ENV_NAME \ --atomic \ -f OVERRIDES_FILE.yaml
下位互換性に関する注意事項
Apigee ハイブリッドを初めてインストールするときにオーバーライド ファイルから暗号鍵を削除すると、暗号化が実質的に無効になり、値は暗号化されていない状態で保存されます。インストール後に鍵を提供して暗号化を有効にした場合、既存のデータは暗号化されていない状態ですが、その後に追加されたデータは暗号化されます。システムは引き続き、暗号化されていないデータと新しい暗号化データを通常の方法で処理します。
また、ランタイム データが暗号化された後に暗号鍵を変更することはできないのでご注意ください。
エンコードされた鍵の作成方法
KVM、KMS、キャッシュの暗号化には、適切な形式の Base-64 エンコード鍵が必要です。この目的で使用される鍵は、以下で説明するように、16、24、または 32 バイト長の Base-64 エンコード鍵でなければなりません。
次の例のコマンドでは、ランダム生成の適切な 32 文字の Base64 エンコード文字列が生成されます。
head -c 32 /dev/random | openssl base64