# Talend Studioで暗号化キーをローテーション

Talend Studio、Talend Administration Center、Talendの各コンポーネントでは、AES GCM 256によるパスワードの暗号化および復号化に暗号化キーが2つ使用されるようになりました。

* system.encryption.key: Nexusパスワード、そしてconnection\_user.propertiesファイルと&lt;jobname&gt;\_&lt;jobversion&gt;.itemジョブプロパティファイル内のパスワードを暗号化および復号化します。同じプロジェクトで作業しているすべてのTalend Studioユーザーが同じシステム暗号化キーを持っていることが必要です。
* routine.encryption.key: ジョブをビルド中および実行中に、パスワードを暗号化および復号化します。

情報メモ警告: Qlikは、1つのTalend Studioでキーをローテーション化し、必要であればTalend Administration CenterとTalend JobServerに新しいキーをデプロイした後にこの新しいキーを他のTalend Studioアプリケーションに配布するよう強くお勧めします。

2つのキー(system.encryption.key.v1とroutine.encryption.key.v1)のデフォルト値は、暗号化キー設定ファイルである /configuration/studio.keysに保存されています。このファイルは、Talend Studioの実行ファイルである Talend-Studio-linux-gtk-x86\_64 を初めて実行した後に、Talend Studioのインストールディレクトリーの下に作成されます。以下は、新しく作成されたstudio.keysファイルの例です。

```
system.encryption.key.v1=ObIr3Je6QcJuxJEwErWaFWIxBzEjxIlBrtCPilSByJI\=
routine.encryption.key.v1=YBoRMn8gwD1Kt3CcowOiGeoxRbC2eNNVm7Id6vA3hrk\=
```

パスワードの暗号化および復号化にデフォルトのシステム暗号化キーが使用されない場合は、そのデフォルト値(上記の例では、ObIr3Je6QcJuxJEwErWaFWIxBzEjxIlBrtCPilSByJI\=)を削除して、Talend Studioを再起動すると、その値を変更できます。

ルーチン暗号化キーのデフォルト値は変更できません。プロジェクトに既にログオンしている場合、Qlikでは、暗号化キー設定ファイルにそのキーの新しいバージョンを追加して暗号化キーをローテーション化できます。

システム暗号化キーの新しいバージョンがジョブで有効となるのは、そのジョブを変更して保存した後のみです。

継続的インテグレーションを使用する際に暗号化キーをローテーションする必要がある場合は、-Dstudio.encryption.keys.fileパラメーターを使って暗号化キー設定ファイルへのパスを指定できます。詳細は、[ビルドとデプロイ](https://help.qlik.com/talend/ja-JP/software-dev-lifecycle-best-practices-guide/8.0/ci-build)をご覧ください。

## このタスクについて

暗号化キーは次の手順でローテーション化します。

## 手順

1. Talend Studioのインストールディレクトリーの下の /configuration/studio.keysというキー設定ファイルを開きます。
2. 次の行を追加し、値を空にして暗号化キーの新しいバージョンを追加します。
   * システム暗号化キーの場合:
     ```
     system.encryption.key.v<version_number>=
     ```
   * ルーチン暗号化キーの場合:
     ```
     routine.encryption.key.v<version_number>=
     ```

   &lt;version\_number&gt;には新しい暗号化キーのバージョンを表す単純な整数が入りますが、これは既存のバージョン番号よりも大きくなります。例:
   ```
   system.encryption.key.v2=
   routine.encryption.key.v2=
   ```

   情報メモ警告: 暗号化キーの前のバージョンのうち、パスワードの暗号化で既に使用されてきたものは削除しないでください。
3. キー設定ファイルを保存してTalend Studioを再起動します。

   暗号化キー値の新しいバージョンが生成され、キー設定ファイルに保存されます。
4. ルーチン暗号化キーをローテーション化しており、ジョブがTalend JobServerで実行される場合は、Talend JobServerがインストール済みであるサーバーでディレクトリーにTalend Studioのキー設定ファイルをコピーして、Talend JobServerで-Dencryption.keys.fileというJVMパラメーターを設定します。

   詳細は、[Windows版/ Linux版でJobServerによって実行されるすべてのジョブに対してJVMプロパティを設定](https://community.qlik.com/t5/Official-Support-Articles/Talend-Studio-Set-a-JVM-property-for-all-the-Jobs-executed-by-a/ta-p/2151486) (英語のみ)をご覧ください。
5. ルーチン暗号化キーをローテーション化しており、Studioアーティファクトが Talend Runtimeで実行される場合は、 Talend Runtimeがインストール済みであるホストでディレクトリーにTalend Studioのキー設定ファイルをコピーして、 Talend Runtime用に-Dencryption.keys.fileというJVMパラメーターを設定します。

   詳細は、[Encrypting passwords for Data Services and Routes](https://help.qlik.com/talend/en-US/esb-container-administration-guide/8.0/encrypting-passwords-for-data-services-and-routes) (英語のみ)をご覧ください。
6. リモートプロジェクトで作業しながらシステム暗号化キーをローテーション化している場合は、Talend Administration Center用に同じ暗号化キーを設定します。
   1. Talend Administration Centerがインストール済みであるサーバーで、Talend Studioのキー設定ファイルをディレクトリー(たとえば D:/StudioKeys)にコピーします。
   2. Talend Administration Centerのインストールディレクトリーの下の &lt;TomcatPath&gt;/bin/catalina.shというファイルを開きます。
   3. ファイルの最初に次の行を追加します:
      ```
      JAVA_OPTS="-Dencryption.keys.file=/d/StudioKeys/studio.keys"
      ```
7. ルーチン暗号化キーをローテーション化しており、ジョブがJob ConductorからTalend Administration Centerで実行される場合は、Talend Administration Centerがインストール済みであるサーバーでディレクトリーにTalend Studioのキー設定ファイルをコピーして、Talend Administration Centerで対応するタスクに対して-Dencryption.keys.fileというJVMパラメーターを設定します。

   Talend Administration CenterでタスクのJVMパラメーターを設定する方法は、[特定のタスクにJVMパラメーターを設定](https://help.qlik.com/talend/en-US/administration-center-user-guide/8.0/set-jvm-parameters-for-specific-tasks-in-tac)をご覧ください。
8. 再設定した項目があれば、Talend Administration Centerを再起動します。