第2章 バックエンドの選択
シークレット (証明書、API キー、パスワードなど) は、暗号化された Blob として barbican データベースに保存することも、セキュアなストレージシステムに直接保存することもできます。
シークレットを暗号化された Blob として barbican データベースに保管するには、以下のオプションを使用することができます。
-
単純な crypto プラグイン: 簡単 な暗号化プラグインはデフォルトで有効で、1 つの対称キーを使用してシークレットの Blob を暗号化します。このキーは、プレーンテキストで
barbican.conf
ファイルに保存されます。 - PKCS#11 暗号プラグイン - PKCS#11 暗号化プラグインは、barbican データベースに保存されているプロジェクト固有の鍵暗号鍵(KEK)でシークレットを暗号化します。これらのプロジェクト固有の KEK は、マスター KEK で暗号化され、ハードウェアセキュリティーモジュール(HSM)に保存されます。すべての暗号化および復号化操作は、in-process メモリーではなく、HSM に置かれます。PKCS#11 プラグインは、PKCS#11 プロトコルを使用して HSM と通信します。暗号化はセキュアなハードウェアで行われ、プロジェクトごとに別の KEK が使用されるため、このオプションは単純な crypto プラグインよりも安全です。
または、シークレットをセキュアなストレージシステムに直接保存することもできます。
-
KMIP プラグイン: Key Management Interoperability Protocol(KMIP)プラグインは、HSM などの KIMP が有効になっているデバイスで機能します。シークレットは、barbican データベースではなくデバイスに直接保存されます。プラグインは、ユーザー名とパスワードを使用するか、
barbican.conf
ファイルに保存されているクライアント証明書を使用してデバイスに対して認証することができます。 - Red Hat Certificate System(dogtag) - Red Hat Certificate System は、一般的な基準と、公開鍵インフラストラクチャー(PKI)の様々な側面を管理するための FIPS 認定セキュリティーフレームワークです。Key Recovery Authority(KRA)サブシステムは、シークレットをデータベースに暗号化された Blob として保存します。マスター暗号化キーは、ソフトウェアベースの Network Security Services(NSS)データベースまたは HSM のいずれかに保存されます。Red Hat Certificate System の詳細は、Red Hat Certificate System の製品ドキュメント を参照してください。
高可用性 (HA) オプション: barbican サービスは Apache 内で実行され、高可用性に HAProxy を使用するように director により設定されます。バックエンド層の HA オプションは、使用されているバックエンドによって異なります。たとえば、簡単な暗号化の場合、すべての barbican インスタンスには設定ファイル内に同じ暗号化キーがあり、これにより単純な HA 設定が作成されます。
2.1. バックエンド間の移行
Barbican を使用すると、プロジェクトに異なるバックエンドを定義することができます。プロジェクトにマッピングが存在しない場合は、シークレットはグローバルのデフォルトバックエンドに保存されます。つまり、複数のバックエンドを設定することができますが、少なくとも 1 つのグローバルバックエンドを定義する必要があります。異なるバックエンド用に提供された heat テンプレートには、各バックエンドをデフォルトとして設定するパラメーターが含まれます。
特定のバックエンドにシークレットを保存してから新規バックエンドに移行する場合には、グローバルのデフォルト (またはプロジェクト固有のバックエンド) として新しいバックエンドを有効にする間に、古いバックエンドを利用可能な状態にすることができます。その結果、古いシークレットは古いバックエンドで引き続き利用できます。