シークレットで安全な環境変数を管理
シークレットを使用すると、Liferay Cloud内のあらゆる環境の変数を安全に保存することができます。 Liferay Cloud プロジェクトを閲覧する権限を持つ全てのユーザーが 環境変数を閲覧できるのに対し、secret はそのロールに閲覧権限が与えられている場合にのみ閲覧可能です。
シークレットとは
シークレットは、その値を保護するための追加のセキュリティ対策を備えた環境変数です。 機密情報やプライベート情報(クレデンシャルなど)を定義する環境変数はすべてシークレットとして保存されるべきです。 シークレットは、環境内の任意の数のサービスの安全な変数として定義できます。
シークレットを表示する権限を持つユーザーは、任意のサービスの[Environment Variables]タブでシークレットを表示できます。 それらは他の環境変数と同じページに表示され、独自のセクションにあります。
デフォルトでは、シークレットは システム管理 ロールを持つユーザーのみが表示できます。 ただし、シークレットは、他のロールを持つユーザーも表示できるように設定できます。
シークレットは暗号化されて保存され、通常の環境変数よりもLiferay Cloudのバックエンドで追加のセキュリティがあります。 UIを介してシークレットを表示すると、表示される前に格納された値が復号化されます。
新しいシークレットを追加する
新しいシークレットは、Liferay Cloud の 設定 画面から追加します。 システム管理 ロールを持つユーザーのみが新しいシークレットを追加できます。
サービスに新しいシークレットを追加すると、その値が有効になるようにサービスが再起動されます。
次の手順に従って、新しいシークレットを追加します:
-
Liferay Cloud のコンソールにログインします。
-
任意の環境の[Settings]画面に移動します。
-
ページ内の [Secrets] のセクションで、 [Create New Secret] をクリックします。
-
名前と説明を入力します。
-
安全に保管するためのシークレットの値を入力します。 この値は、保存される前に暗号化されることを除いて、環境変数の値と同じように機能します。
-
該当する場合は、 Contributor または Guest ロールにシークレットの表示を許可するかどうかを選択します。 システム管理 のロールを持つユーザーは、いつでもシークレットを表示できます。
-
新しいシークレット環境変数を追加するサービスを選択します。 選択したサービスごとに、環境変数に使用するキーを入力します(複数のサービスで同じキーのシークレットを使用できます)。
-
前の手順でサービスを選択した場合は、下に表示されるボックスをオンにして、影響を受けるサービスにこのシークレットを追加することの影響を受け入れることを示します。 これらのボックスをオンにして、ボタンでシークレットを作成できるようにする必要があります。
-
[Create Secret] をクリックします。
選択したサービスが再起動し、新しいシークレットが環境変数として適用されます。
既存のシークレットの表示と変更
既存のシークレットを表示または変更するには、任意の環境の [Settings] ページに移動します。 次に、[Secrets]セクションで、リストされているシークレットのアクションメニューをクリックします。 シークレットを表示、編集、または削除するオプションが表示されます。
ユーザーがシークレットを閲覧する権限を持っていても、既存のシークレットを編集したり削除したりできるのは Admin
ロールを持つユーザーだけです。 Admin
ロールを持たないユーザーがシークレットのアクションメニューをクリックすると、シークレットを表示するオプションのみが表示されます。
これは、表示権限を持つユーザーがシークレットの [View] オプションをクリックしたときに表示されるページです:
環境変数からのシークレットの参照
シークレット変数 は、安全にシークレットを参照して値を得る環境変数です。 通常の環境変数と同様に、シークレットの変数は、サービス LCP.json
ファイル、または環境変数のページで定義できます。 シークレット変数がシークレットのキーを参照できるように、シークレットは すでに追加されている 必要があります。
シークレットを参照するには:
-
選択したサービスの[環境変数]ページに移動します。
-
[Secret variables] のセクションまでスクロールダウンします。
-
[Add variables] をクリックします。
-
新しいシークレット変数の名前を決めて([Key] の下)、それが参照するシークレットを選択します。
これで新しい環境変数は、選択したシークレットの値を参照するようになりました。
LCP.jsonを介したシークレット変数の追加
また、サービスの LCP.json
ファイルに追加された環境変数から、シークレットを参照することもできます。 キーの前に @
を付けることで、変数の値でシークレットのキーを参照することができます。
{
"env": {
"VARIABLE_NAME": "@secret-key"
}
}
ファイルをサービスにデプロイすると、シークレット変数が他の変数とともに環境変数ページに表示されます。