データベースパスワードの暗号化¶
フェールオーバーマネージャーでは、データベースパスワードをクラスタープロパティファイルに含める前に暗号化する必要があります。 efmユーティリティを使用します (` 0 `/usr/edb/efm-3.8/bin`` 1``を使用できます。
パスワードを暗号化するには、次のコマンドを使用します。
# efm encrypt <cluster_name> [ --from-env ]
どこで<cluster_name>フェールオーバーマネージャークラスターの名前を指定します。
--from-env オプションを含める場合、暗号化ユーティリティを呼び出す前に、暗号化する値をエクスポートする必要があります。例:
export EFMPASS=password
--from-env オプションを含めない場合、フェールオーバーマネージャーは、クラスタープロパティファイルに配置するための暗号化されたパスワードを生成する前に、データベースパスワードを2回入力するように求めます。ユーティリティが暗号化されたパスワードを共有したら、暗号化されたパスワードをコピーして、クラスタプロパティファイルに貼り付けます。
注:多くのJavaベンダーは、完全な強度の暗号化が含まれたバージョンのJavaを出荷していますが、輸出制限のため有効になっていません。データベースパスワードを暗号化しようとしたときに不正なキーサイズを参照するエラーが発生した場合は、プラットフォームに制限のないポリシーを提供するJava Cryptography Extension(JCE)をダウンロードして有効にする必要があります。
次の例は、暗号化ユーティリティを使用してacctgクラスターのパスワードを暗号化する方法を示しています。
# efm encrypt acctg
This utility will generate an encrypted password for you to place in
your EFM cluster property file:
/etc/edb/efm-3.8/acctg.properties
Please enter the password and hit enter:
Please enter the password again to confirm:
The encrypted password is: 516b36fb8031da17cfbc010f7d09359c
Please paste this into your acctg.properties file
db.password.encrypted=516b36fb8031da17cfbc010f7d09359c
注:プロパティファイルが存在しない場合、ユーティリティは通知します。
暗号化されたパスワードを受け取ったら、パスワードをプロパティファイルに貼り付け、Failover Managerサービスを開始します。暗号化されたパスワードに問題がある場合、Failover Managerサービスは開始されません。
[witness@localhost ~]# service efm-3.8 start
Starting local efm-3.8 service: [FAILED]
Failover Managerサービスの開始時にこのメッセージを受け取った場合、詳細については起動ログ(/var/log/efm-3.8/startup-efm.logにあります)を参照してください。
RHEL 7.xまたはCentOS 7.xを使用している場合、起動情報は次のコマンドでも利用できます。
systemctl status efm-3.8
クラスターが誤って別のクラスターのデータベースに接続するのを防ぐため、クラスター名は暗号化されたパスワードに組み込まれます。クラスター名を変更する場合は、データベースパスワードを再暗号化し、クラスタープロパティファイルを更新する必要があります。
EFMPASS環境変数の使用
次の例は、パスワードを暗号化するときに--from-env環境変数を使用する方法を示しています。 efm encrypt コマンドを呼び出す前に、 EFMPASS の値をパスワード( 1safepassword )に設定します。
# export EFMPASS=1safepassword
次に、 --from-env オプションを指定して efm encrypt を呼び出します。
# efm encrypt acctg --from-env
# 7ceecd8965fa7a5c330eaa9e43696f83
暗号化されたパスワード( 0 )はテキスト値として返されます。スクリプトを使用する場合、コマンドの終了コードを確認して、コマンドが成功したことを確認できます。実行が成功すると 0 が返されます。