セキュアな環境変数をシークレットで管理する
シークレットを使用すると、Liferay Cloud内のあらゆる環境の変数を安全に保存できます。 Liferay Cloudプロジェクトを見る権限を持つユーザーであれば誰でも環境変数を見ることができますが、secretはそのロールに見る権限が与えられている場合のみ見ることができます。
シークレットとは
シークレットは、その値を保護するための追加のセキュリティ対策を備えた環境変数です。 機密情報やプライベート情報(クレデンシャルなど)を定義する環境変数はすべてシークレットとして保存されるべきです。 シークレットは、環境内の任意の数のサービスの安全な変数として定義できます。
シークレットを表示する権限を持つユーザーは、任意のサービスの[Environment Variables]タブでシークレットを表示できます。 それらは他の環境変数と同じページに表示され、独自のセクションにあります。

デフォルトでは、シークレットは システム管理 ロールを持つユーザーのみが表示できます。 ただし、シークレットは、他のロールを持つユーザーも表示できるように設定できます。
機密情報は暗号化されて保存され、Liferay Cloudのバックエンドでは通常の環境変数よりもさらに高いセキュリティが確保されています。 UIを介してシークレットを表示すると、表示される前に格納された値が復号化されます。
新しいシークレットを追加する
新しいシークレットは、Liferay Cloud の 設定 画面から追加されます。 システム管理ロールを持つユーザーのみが新しいシークレットを追加できます。
サービスに新しいシークレットを追加すると、その値が有効になるようにサービスが再起動されます。
次の手順に従って、新しいシークレットを追加します:
-
Liferay Cloudコンソールにログインします。
-
任意の環境の[Settings]画面に移動します。
![シークレットにアクセスするには、[設定]画面に移動します。](https://resources.learn.liferay.com/images/dxp/latest/en/cloud/tuning-security-settings/managing-secure-environment-variables-with-secrets/images/02.png)
-
ページ上の シークレット セクションで、 新しいシークレットを作成 をクリックします。

-
名前と説明を入力します。

-
安全に保管するためのシークレットの値を入力します。 この値は、保存される前に暗号化されることを除いて、環境変数の値と同じように機能します。

-
該当する場合は、 Contributor または Guest ロールにシークレットの表示を許可するかどうかを選択します。 システム管理のロールを持つユーザーは、いつでもシークレットを表示できます。

-
新しいシークレット環境変数を追加するサービスを選択します。 選択したサービスごとに、環境変数に使用するキーを入力します(複数のサービスで同じキーのシークレットを使用できます)。

-
前の手順でサービスを選択した場合は、下に表示されるボックスをオンにして、影響を受けるサービスにこのシークレットを追加することの影響を受け入れることを示します。 これらのボックスをオンにして、ボタンでシークレットを作成できるようにする必要があります。

-
秘密を作成 をクリックします。
選択したサービスが再起動し、新しいシークレットが環境変数として適用されます。
既存のシークレットの表示と変更
既存のシークレットを表示または変更するには、任意の環境の [Settings] ページに移動します。 次に、[ Secrets ]セクションで、リストされているシークレットのアクションメニューをクリックします。 シークレットを表示、編集、または削除するオプションが表示されます。
![[設定]ページから既存のシークレットを表示、編集、または削除します。](https://resources.learn.liferay.com/images/dxp/latest/en/cloud/tuning-security-settings/managing-secure-environment-variables-with-secrets/images/09.png)
ユーザーがシークレットを表示する権限を持っていても、既存のシークレットを編集または削除できるのは、 管理者 ロールを持つユーザーのみです。 管理者 ロールを持たないユーザーがシークレットのアクション メニューをクリックすると、シークレットを表示するオプションのみが表示されます。
これは、表示権限を持つユーザーがシークレットの [View] オプションをクリックしたときに表示されるページです:

環境変数からのシークレットの参照
シークレット変数 は、安全にシークレットを参照して値を得る環境変数です。 通常の環境変数と同様に、シークレットの変数は、サービス LCP.json ファイル、または環境変数のページで定義できます。 シークレット変数がシークレットのキーを参照できるように、シークレットは すでに追加されている 必要があります。
シークレットを参照するには:
-
選択したサービスの[環境変数]ページに移動します。
-
[Secret variables] のセクションまでスクロールダウンします。
![シークレットは、環境変数ページの[シークレット変数]セクションを使って追加できます。](https://resources.learn.liferay.com/images/dxp/latest/en/cloud/tuning-security-settings/managing-secure-environment-variables-with-secrets/images/11.png)
-
をクリックして変数を追加 します。
-
新しいシークレット変数の名前を決めて( [Key]の下)、それが参照するシークレットを選択します。

これで新しい環境変数は、選択したシークレットの値を参照するようになりました。
LCP.jsonを介したシークレット変数の追加
また、サービスの LCP.json ファイルに追加された環境変数から、シークレットを参照することもできます。 キーの前に @ を付けることで、変数の値でシークレットのキーを参照することができます。
{
"env": {
"VARIABLE_NAME": "@secret-key"
}
}
ファイルをサービスにデプロイすると、シークレット変数が他の変数とともに環境変数ページに表示されます。