Liferay PaaS体験:シークレットの管理
Liferay PaaS 環境のシークレットは Argo CD を通じて完全に管理され、GCP アカウント、IAM 構成、または gcloud アクセスは必要ありません。 このプラットフォームは、GCP Secret ManagerとExternal Secrets Operator(ESO)の接続を処理し、シークレットを環境内に同期します。
シークレットを管理するには、PaaSエクスペリエンス環境へのArgo CDアクセスが必要です。
マネージド型シークレットとセルフホスト型シークレット
この記事では、マネージドPaaSエクスペリエンスプラットフォームにおけるシークレット管理について説明します。 チームが代わりに Cloud Native Experience (CNE) GCP 対応 オファリングを通じて独自の GCP プロジェクトを運用する場合は、Argo CD ではなく GCP Secret Manager でシークレットを直接管理します。
どちらの経路も同じクラスタ内コントラクト、つまり External Secrets Operator が Kubernetes シークレットに調整する ExternalSecret リソースに収束するため、Liferay はどちらの方法でもシークレットを同じように消費します。 チームが運用したい基盤となるGCPレイヤーの範囲に基づいて選択してください。
| マネージド(PaaS体験) | セルフホスティング(CNE GCP対応) | |
|---|---|---|
| GCPプロジェクトを運営しているのは誰ですか? | ライフレイ | あなたのチーム |
| 秘密を管理する場所 | アルゴCD | GCP Secret Manager (コンソール、 gcloud、または Terraform) |
| GCPアカウントが必要です | いいえ | はい |
| JSONペイロードの規則 | 内部で処理 | あなたがそれらを執筆します |
| IAMとワークロードIDの設定 | 内部で処理 | あなたのチームの責任 |
自己ホスト型のパスについては、 シークレットとライセンスの管理 を参照してください。
サポートされているシークレットの種類
PaaS Experienceは3種類のシークレットタイプをサポートしています。 プラットフォームは、必要な JSON ペイロードの規則と GCP Secret Manager の命名プレフィックスを内部的に適用します。そのため、ペイロードを手動で作成したり、プレフィックスの要件を覚えておく必要はありません。
TLS 証明書 は、クラスターに証明書と秘密鍵を提供します。 プラットフォームは、それらを liferay-certificates- というプレフィックスの下に GCP Secret Manager に保存し、Kubernetes TLS シークレットに同期します。
Liferay ライセンス は、Liferay コンテナに Liferay ライセンスを提供します。 プラットフォームは、それらを liferay-licenses- というプレフィックスの下に GCP Secret Manager に保存します。
GitOps 認証情報 により、プラットフォームは GitOps リポジトリにアクセスできるようになります。 プラットフォームは、それらを GCP Secret Manager に liferay-credentials-gitops として保存します。
Argo CDにおけるシークレットの管理
Argo CD の シークレットマネージャ 拡張機能を使用して、シークレットを作成、更新、削除します。 シークレットはArgo CDのリソースであり、アプリケーションや構成と並んで表示されるため、デプロイメントの状態を示すビューと同じビューでシークレットの状態も確認できます。
各シークレットはそれぞれの環境に限定されているため、ステージング環境のシークレットが本番環境に到達することはなく、その逆も同様です。
Argo CD レコードは、その履歴内でシークレットに対する作成、更新、および削除操作を記録します。
Grafanaには、シークレット一覧と、それらの操作の監査証跡を表示する読み取り専用のシークレットダッシュボードも含まれています。 メトリクス を参照してください。
秘密がクラスターに届く方法
Argo CDでシークレットを作成または更新すると、プラットフォームはそれをクラスターに同期します。
-
このプラットフォームは、必要な命名規則とJSONペイロード形式を自動的に適用し、秘密値を管理対象のGCP Secret Managerバックエンドに保存します。
-
External Secrets OperatorはGCP Secret Managerからデータを読み込み、Kubernetesシークレットを生成します。
-
Liferayは実行時にシークレットを読み取ります。
回転する秘密
シークレットをローテーションするには、Argo CD でその値を更新します。 External Secrets Operator は、1 時間ごとに GCP Secret Manager をポーリングし、Kubernetes シークレットを自動的に更新します。通常のケースでは、Pod の再起動や手動での kubectl 介入は必要ありません。 即時更新をトリガーする方法はありません。ローテーションされた値は、最大1時間後の次回のポーリング時に有効になります。