セキュリティ設定の調整
ここでは、ネットワークプラクティス、データセキュリティ、一般的なセキュリティ対策など、Liferay PaaS プロジェクトのセキュリティを強化して維持するためのベストプラクティスのリストを示します。
一般的なセキュリティ対策
一般的なセキュリティ対策には、リポジトリの適切なメンテナンスと、必要に応じてすべてのセキュリティ パッチを適用することが含まれます。 また、コミットに機密情報を含めないようにする、コードをスキャンしてセキュリティ上の脆弱性を検出する、検索インデックスから機密情報が漏洩しないようにするなどの業界のベスト プラクティスも含まれています。
プロジェクトリポジトリ
デフォルトの GitHub リポジトリは、サービスの管理を開始するための出発点として提供されるテンプレートです。 プライバシー規制のため、独自の組織のコードをこれにコミットしないでください。
コードをコミットする前に、デフォルトの GitHub リポジトリを独自の組織のプライベート リポジトリ (GitHub、GitLab、Bitbucket、または Azure) に移行します。
セキュリティパッチ
Liferay DXP および Liferay PaaS のセキュリティ関連の修正がリリースされたらすぐにすべて適用します(Docker イメージを更新することによって)。
Liferay DXPイメージは Docker Hubで公開されています。 最新の Liferay Cloud サービスのリリースノートは こちらでご覧ください。
リポジトリへのコミット
機密情報 (ライセンス、資格情報、シークレットなど) をリポジトリにコミットしないようにしてください。 Liferay Cloud シークレット を使用して、プロジェクトに必要な資格情報やその他の機密変数を管理します。
Liferay PaaS サブスクリプションには、環境に自動的にデプロイされるエンタープライズ Liferay DXP ライセンスが含まれています。 インストール時にライセンスを提供する必要はありません。
コードスキャン
Liferay PaaS には、ビルド用の カスタマイズ可能な CI パイプライン が含まれています。 コードスキャンを CI プロセスに追加して、よりクリーンで安全なコードプラクティスを適用および自動化します。
Elasticsearch セキュリティ
検索サービスで ENABLE_XPACK_SECURITY 環境変数を true に設定して、Elasticsearch のセキュリティ機能を有効にします。 詳細については、 Elasticsearch のセキュリティ設定ドキュメント を参照してください。
アカウント管理
適切なアカウント管理により、多くのセキュリティ上の懸念を軽減できます。 デフォルトの管理者アカウントを保護し、シングル サインオンを有効にし、チーム メンバー リストを最新の状態に維持することは、システムにアクセスできるユーザーを制限するのに大いに役立ちます。 定期的なユーザー アクティビティ監査によって、疑わしいアクティビティが明らかになることもあります。
多要素認証は、Liferay Cloud コンソールでは利用できません。 代わりに シングル サインオン を使用してください。
シングルサインオン
Liferay PaaS は、SAML 2.0 準拠のシングル サインオン (SSO) ID プロバイダーと統合して、Liferay Cloud でユーザーを認証できます。 SSO 認証をサポートする任意の ID プロバイダーを使用して、開発者または IT チーム メンバーの SSO 認証を設定します。 詳細については、 Liferay Cloud での SSO の使用 を参照してください。
デフォルトの管理者アカウント
すぐに使用できる Liferay Portal ビルドを本番環境にデプロイすると、デフォルトのユーザー (test@liferay.com) が、 弱いパスワードを使用してサインインできるようになります。 できるだけ早くこのパスワードを変更してください。
ユーザーアクティビティ監査
少なくとも四半期ごとに、各 Liferay PaaS 環境と Liferay DXP のユーザーアクティビティの定期的な監査を実行します。
チームメンバー
少なくとも四半期ごとに、Liferay PaaS プロジェクトのメンバーと Liferay DXP のロールの両方について、各環境のチーム メンバーと権限を監査し、非アクティブなチーム メンバーを削除します。
ネットワークコントロール
セキュリティを強化するためにネットワークに変更を加えることもできます。
パブリックエンドポイント
データベース (またはその他のサービス) のエンドポイントをインターネットに公開しないでください。 これらのエンドポイントを公開すると、HTTPS ロードバランサの DDoS 保護がバイパスされます。
レート制限
Liferay サービスへのリクエストを調整するように Nginx を設定できます。 環境のトラフィック パターンを監視し、これらの設定をアクセス レートの許容限度に構成します。
DNSセキュリティ
選択した DNS プロバイダーが DNS セキュリティのベストプラクティスを実装していることを確認します。
モッドセキュリティ
Liferay Cloud の Web アプリケーション ファイアウォール を有効にすると、Web サーバーに送信されたリクエストを、定義済みの一連のカスタム ルールに照らして検査することができます。
バックアップ
定期的なバックアップ、特に災害復旧テスト(つまり、バックアップ戦略が成功するかどうかを確認するためのテスト)を行うことで、災害が発生した場合でも安心できます。
バックアップダウンロード
Liferay PaaS のバックアップは、保存時および転送中に常に暗号化されます。 ただし、バックアップをローカル マシンにダウンロードする場合は、必要なセキュリティ規制に準拠するようにデータ フローを計画しておく必要があります。
個人情報(PII)の匿名化
非本番環境で本番データを使用することはデバッグには役立ちますが、それでもリスクが伴います。 これらのバックアップを非本番環境に復元するときに、PII データ マスキングを実行するスクリプトを実装します。
HTTPレイヤー
HTTP レイヤーを安全に保つことは、セキュリティの問題を回避するための最も重要な方法の 1 つです。
認証方法
最初の方法は 基本認証 です。これは、サーバーがクライアントに認証を要求するときにエンコードされる Authorization ヘッダー内の HTTP プロトコルです。
2 番目はユーザー アクセス トークンによるものです。 SSO が有効になっている場合、トークン認証が必要です。 クッキー access_token からのトークンが取得され、 dxpcloud-authorization ヘッダーで使用されます。
以下は、アップロード API でトークン認証を使用する例です。
curl -X POST /
http://[HOST-NAME]/backup/upload /
-H 'Content-Type: multipart/form-data' /
-H 'dxpcloud-authorization: Bearer <USER_TOKEN>' /
-F 'database=@/my-folder/database.tgz' /
-F 'volume=@/my-folder/volume.tgz'
ヘッダー dxpcloud-authorization でユーザー トークンを渡すことは、バックアップ サービスのバージョン 3.2.0 以上でのみ機能します。 以前のバージョンは少なくとも 3.2.0にアップグレードする必要があります。 以前のバージョンへのリクエストでは、ヘッダー Authorization: Bearer [PROJECT_MASTER_TOKEN]を使用する必要があります。 プロジェクトマスタートークンを見つけるには、Liferay Cloud Console の任意のシェルでコマンド env grep LCP_PROJECT_MASTER_TOKEN を実行します。
暗号化
コンプライアンスのために必要な場合は、SSL の暗号ポリシーの制限を緩和して、許可される機能を減らすようリクエストできます。
デフォルトでは、ポリシーにより、古い SSL 機能のみをサポートするクライアントを含む、幅広いクライアントが SSL をネゴシエートできるようになります。
CORS
クロスオリジン リソース共有 (CORS) を使用すると、外部ドメインからのリソース要求を許可できます。 Liferay DXP インスタンスを設定して、Web アプリケーションとの対話に必要なドメインのみを許可します。
詳細については、 CORS の設定 を参照してください。
コンテンツセキュリティポリシー
コンテンツ セキュリティ ポリシー (CSP) は、Web ブラウザーによる悪意のあるリソースの読み込みを防ぎます。 nginx 構成ファイルで、セキュリティ コンプライアンスのために Content-Security-Policy ヘッダーを構成します。
URLリダイレクト
中間者による悪意のあるサイトへのリダイレクトを防ぐために、HTTP から HTTPS へのリダイレクトが最初に同じ元のサイトの安全なバージョンに直接送信されるようにします。 リダイレクトが HTTP アドレスを指さないようにしてください。
環境の nginx 構成ファイルを使用して URL リダイレクトを構成します。
HSTS
HTTP Strict Transport Security (HSTS) ヘッダーにより、ユーザーが最初にアクセスした後、すぐに HTTPS ウェブサイトに接続されるようになります。 環境の nginx 構成ファイルを使用して、セキュリティ コンプライアンスのために Strict-Transport-Policy ヘッダーを構成します。
ウェブブラウザ
nginx を構成して、ユーザー エージェント ヘッダーを検証し、古い Web ブラウザーからのサイトへのアクセスをブロックします。
シークレット
詳細については、 Secret を使用した安全な環境変数の管理 を参照してください。
格納およびローテーション
秘密は安全で保護された場所にのみ保存し、一定の間隔でローテーションします。
ディザスタリカバリ(DR)のマスタートークン
災害復旧環境を構成するときに、マスター トークンをシークレットとして作成します。
リポジトリへのアクセス
Git リポジトリのプライベート アクセス トークン (PAT) を秘密値として作成します。
Dynatrace
Liferay PaaS サブスクリプションに Dynatrace が含まれている場合は、Dynatrace テナントおよびトークンの値をシークレットとして作成します。
SSL証明書
カスタム SSL 証明書をインストールするときは、キーと証明書のプロパティをシークレットとして作成します。
開発環境へのアクセス
dev 環境の Liferay DXP アクセスは、プロビジョニングメールで共有されるデフォルトの資格情報によって保護されています。 nginx の設定をカスタマイズし、独自の資格情報を設定し、それらをシークレットとして保存します。