# (オプション) Talend Runtimeアクセス用の認証情報を暗号化

セキュアなアクセスを強化するため、 Talend Runtime認証情報を暗号化します。

機密情報のセキュリティを確保できるよう、以下の手順で資格情報を暗号化します。

## 始める前に

認証情報の暗号化に進む前に、使用する暗号化アルゴリズムを決定し、暗号化シークレットとしてマスターパスワードを定義します。

* マスターパスワード。
  1. Talend Runtimeでは、[Encrypting clear text parameters and passwords](https://help.qlik.com/talend/r/en-US/8.0/esb-container-administration-guide/encrypting-clear-text-parameters-and-passwords)に従い、マスターパスワードを暗号化シークレットとして定義します。

     Talend Remote Engineはこのパスワードを使用し、 Talend Runtimeにアクセスするための暗号化パスワードを読み取ります。

     [Encrypting clear text parameters and passwords](https://help.qlik.com/talend/r/en-US/8.0/esb-container-administration-guide/encrypting-clear-text-parameters-and-passwords)の説明にあるとおり、このマスターパスワードは、環境変数かTESB\_ENV\_PASSWORDJavaシステムプロパティとして設定する必要があります。

     技術的にはOSレベルに追加する必要はありませんが、セキュリティを強化し、システムサービスとしてインストールされた場合にTalend Remote Engineが簡単にアクセスできるよう、これらの変数をOS環境に含めることをお勧めします。

  2. &lt;RemoteEngineInstallationDirectory&gt;/etc/org.talend.ipaas.rt.dsrunner.talendruntime.client.cfgで、properties.encryption.passwordプロパティが次のようになっていることを確認します:

     ```
     properties.encryption.password=${env:TESB_ENV_PASSWORD:-${TESB_ENV_PASSWORD}}
     ```

     この設定によって、Talend Remote Engineが Talend Runtime側のTESB\_ENV\_PASSWORDで設定した暗号化シークレットを正しく読み取れるようになります。
* 暗号化アルゴリズム。
  1. デフォルトのアルゴリズムを使用する場合は、&lt;RemoteEngineInstallationDirectory&gt;/etc/org.talend.ipaas.rt.dsrunner.talendruntime.client.cfgファイルを開き、properties.encryption.algorithmプロパティが次のようになっていることを確認します:

     ```
     properties.encryption.algorithm=${env:TESB_ENV_ALGORITHM:-${TESB_ENV_ALGORITHM:-PBEWITHSHA256AND256BITAES-CBC-BC}}
     ```

     デフォルトのアルゴリズムはPBEWITHSHA256AND256BITAES-CBC-BCです。

  2. カスタムアルゴリズムが必要な場合は、選択されたアルゴリズムを持つTESB\_ENV\_ALGORITHM変数をOS環境変数かJavaシステムプロパティに追加します。

     &lt;RemoteEngineInstallationDirectory&gt;/etc/org.talend.ipaas.rt.dsrunner.talendruntime.client.cfgファイルのproperties.encryption.algorithmプロパティで使用されるデフォルト式は変更しないでください。

## 手順

1. Talend Runtimeでは、同じく[Encrypting clear text parameters and passwords](https://help.qlik.com/talend/r/en-US/8.0/esb-container-administration-guide/encrypting-clear-text-parameters-and-passwords)の手順に従い、 Talend Runtimeのアクセスパスワードの暗号化文字列を取得します。

   プロシージャーの最後で、アクセスパスワードの次のような暗号化文字列を取得します:
   ```
   ENC(encrypted_password_string) 
   ```

   同じ手順で、ユーザー名もパスワードも暗号化できます。この例ではパスワードのみを暗号化しています。
2. 前のセクション([Talend Remote Engineを Talend Runtimeに接続](https://help.qlik.com/talend/ja-JP/remote-engine-user-guide-linux/Cloud/connect-remote-engine-to-talend-runtime))で定義したプレーンテキストのパスワードの代わりに、暗号化されたパスワードを使用するようTalend Remote Engineを設定します。

   プレーンテキストのパスワードを以前配置した場所に変更を加えます:
   * OS環境変数。

     OS環境変数にRUNTIME\_JMX\_USERNAME変数とRUNTIME\_JMX\_PASSWORD変数を追加済みである場合は、RUNTIME\_JMX\_PASSWORDの値を、前の手順で取得したENC(encrypted\_password\_string)暗号化文字列に置き換えます。

     org.talend.ipaas.rt.dsrunner.talendruntime.client.cfgのtalendruntime.jmx.usernameプロパティとtalendruntime.jmx.passwordプロパティで使用されるデフォルトの式は変更しないようにしてください。これにより、これら2つのプロパティで環境変数が正しく使用されるようになります。

   * Javaシステムプロパティ。

     JavaシステムプロパティにRUNTIME\_JMX\_USERNAMEとRUNTIME\_JMX\_PASSWORDを設定済みである場合は、RUNTIME\_JMX\_PASSWORDの値をENC(encrypted\_password\_string)に置き換えます。

     org.talend.ipaas.rt.dsrunner.talendruntime.client.cfgのtalendruntime.jmx.usernameプロパティとtalendruntime.jmx.passwordプロパティで使用されるデフォルトの式は変更しないようにしてください。これにより、Javaシステムのプロパティがtalendruntime.jmx.usernameとtalendruntime.jmx.passwordで正しく使用されます。

   * 直接設定。

     &lt;RemoteEngineInstallationDirectory&gt;/etc/org.talend.ipaas.rt.dsrunner.talendruntime.client.cfgのtalendruntime.jmx.passwordプロパティでプレーンテキストのパスワードを直接定義済みである場合は、暗号化されたパスワード文字列に置き換えます。たとえば、以下のようにします。

     ```
     talendruntime.jmx.username=<username_you_want_to_use>
     talendruntime.jmx.password=ENC(encrypted_password_string)
     ```
3. Talend Remote Engineと Talend Runtimeを再起動します。

   [この手順](https://help.qlik.com/talend/r/ja-JP/Cloud/remote-engine-user-guide-windows/gracefull-remote-engine-shutdown)に従って、Talend Remote Engineを安全にシャットダウンして再起動させます。