8.3. Karaf での Fuse クレデンシャルストアの設定
credential-store:create
コマンドを使用して資格情報ストアを作成します。karaf@root()> credential-store:create -a location=credential.store -k password="my password" -k algorithm=masked-MD5-DES In order to use this credential store set the following environment variables Variable | Value ------------------------------------------------------------------------------------------------------------------------ CREDENTIAL_STORE_PROTECTION_ALGORITHM | masked-MD5-DES CREDENTIAL_STORE_PROTECTION_PARAMS | MDkEKXNvbWVhcmJpdHJhcnljcmF6eXN0cmluZ3RoYXRkb2Vzbm90bWF0dGVyAgID6AQIsUOEqvog6XI= CREDENTIAL_STORE_PROTECTION | Sf6sYy7gNpygs311zcQh8Q== CREDENTIAL_STORE_ATTR_location | credential.store Or simply use this: export CREDENTIAL_STORE_PROTECTION_ALGORITHM=masked-MD5-DES export CREDENTIAL_STORE_PROTECTION_PARAMS=MDkEKXNvbWVhcmJpdHJhcnljcmF6eXN0cmluZ3RoYXRkb2Vzbm90bWF0dGVyAgID6AQIsUOEqvog6XI= export CREDENTIAL_STORE_PROTECTION=Sf6sYy7gNpygs311zcQh8Q== export CREDENTIAL_STORE_ATTR_location=credential.store
これは、シークレットを保存する JCEKS KeyStore の
credential.store
ファイルである必要があります。Karaf コンテナーを終了します。
karaf@root()> logout
クレデンシャルストアの作成時に表示される環境変数を設定します。
$ export CREDENTIAL_STORE_PROTECTION_ALGORITHM=masked-MD5-DES $ export CREDENTIAL_STORE_PROTECTION_PARAMS=MDkEKXNvbWVhcmJpdHJhcnljcmF6eXN0cmluZ3RoYXRkb2Vzbm90bWF0dGVyAgID6AQIsUOEqvog6XI= $ export CREDENTIAL_STORE_PROTECTION=Sf6sYy7gNpygs311zcQh8Q== $ export CREDENTIAL_STORE_ATTR_location=credential.store
重要Karaf コンテナーを起動する前に
CREDENTIAL_STORE_*
環境変数を設定する必要があります。Karaf コンテナーを起動します。
bin/karaf
credential-store:store
を使用して、シークレットをクレデンシャルストアに追加します。karaf@root()> credential-store:store -a javax.net.ssl.keyStorePassword -s "alias is set" Value stored in the credential store to reference it use: CS:javax.net.ssl.keyStorePassword
Karaf コンテナーを再度終了します。
karaf@root()> logout
値の代わりに、シークレットへの参照を指定して Karaf コンテナーを再実行します。
$ EXTRA_JAVA_OPTS="-Djavax.net.ssl.keyStorePassword=CS:javax.net.ssl.keyStorePassword" bin/karaf
System::getProperty
を使用してアクセスした場合の javax.net.ssl.keyStorePassword
の値には、文字列 "alias is set"
が含まれる必要があります。
EXTRA_JAVA_OPTS
は、システムプロパティーを指定する方法の 1 つです。これらのシステムプロパティーは、Karaf コンテナーの開始時に定義されます。
環境変数が環境外にリークされたり、クレデンシャルストアファイルのコンテンツとともに使用目的に使用されたりすると、シークレットが危険にさらされます。JMX 経由でアクセスした場合のプロパティーの値は、文字列 "<sensitive>"
に置き換えられますが、System::getProperty
となるコードパスが多数あります。たとえば、診断ツールやモニターリングツールは、デバッグ目的でサードパーティーのソフトウェアと共にこれにアクセスする場合があります。