Encrypting your database password

フェールオーバーマネージャーでは、データベースパスワードをクラスタープロパティファイルに含める前に暗号化する必要があります。 /usr/edb/efm-4.<x>/bin ディレクトリにある Using the efm utility を使用して、パスワードを暗号化します。パスワードを暗号化する場合、ユーティリティを呼び出すときにコマンドラインでパスワードを渡すか、 EFMPASS 環境変数を使用できます。

パスワードを暗号化するには、次のコマンドを使用します。

efm encrypt <cluster_name> [ --from-env ]

<cluster_name> は、Failover Managerクラスターの名前を指定します。

--from-env オプションを含める場合、暗号化ユーティリティを呼び出す前に、暗号化する値をエクスポートする必要があります。例:

export EFMPASS=password

--from-env オプションを含めない場合、フェールオーバーマネージャーは、クラスタープロパティファイルに配置する暗号化されたパスワードを生成する前に、データベースパスワードを2回入力するように求めます。ユーティリティが暗号化されたパスワードを共有する場合、暗号化されたパスワードをコピーしてクラスタープロパティファイルに貼り付けます。

注釈

多くのJavaベンダーは、完全な強度の暗号化を含むJavaのバージョンを出荷していますが、輸出制限のため有効になっていません。データベースパスワードを暗号化しようとしたときに不正なキーサイズを参照するエラーが発生した場合は、プラットフォームに無制限のポリシーを提供するJava暗号化拡張機能(JCE)をダウンロードして有効にします。

この例では、 encrypt ユーティリティを使用して、 acctg クラスターのパスワードを暗号化する方法を示します。

#  efm encrypt acctg

This utility will generate an encrypted password for you to place in
 your Failover Manager cluster property file:
/etc/edb/efm-4.7/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 ~]# systemctl start edb-efm-4.7
Job for edb-efm-4.7.service failed because the control process exited with error code. See "systemctl status edb-efm-4.7.service" and "journalctl -xe" for details.

Failover Managerサービスの開始時にこのメッセージを受け取った場合、詳細については、起動ログ/var/log/efm-4.7/startup-efm.log を参照してください。

RHEL/CentOS 7.xまたはRHEL/Rocky Linux/AlmaLinux 8.xを使用している場合、次のコマンドで起動情報も利用できます。

systemctl status edb-efm-4.7

クラスターが誤って別のクラスターのデータベースに接続するのを防ぐために、クラスター名は暗号化されたパスワードに組み込まれます。クラスター名を変更する場合は、データベースパスワードを再暗号化し、クラスタープロパティファイルを更新する必要があります。

EFMPASS環境変数の使用

この例では、パスワードを暗号化するときに--from-env 環境変数を使用する方法を示しています。 efm encrypt コマンドを呼び出す前に、 EFMPASS の値をパスワード1safepassword に設定します。

#  export EFMPASS=1safepassword

次に、 --from-env オプションを指定してefm encrypt を呼び出します。

#  efm encrypt acctg --from-env

#  7ceecd8965fa7a5c330eaa9e43696f83

暗号化されたパスワード7ceecd8965fa7a5c330eaa9e43696f83 はテキスト値として返されます。スクリプトを使用する場合、コマンドの終了コードを確認して、コマンドが成功したことを確認できます。実行が成功すると、 0 が返されます。