セキュリティ設定の調整
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でユーザー認証を行うことができます。 開発者またはITチームメンバー向けに、それをサポートする任意のIDプロバイダーを使用してSSO認証を設定します。 詳細については、 Liferay Cloud での SSO の使用 を参照してください。
デフォルトの管理者アカウント
すぐに使える Liferay Portal ビルドを本番環境にデプロイすると、デフォルトユーザー (test@liferay.com) が 弱いパスワード を使用してサインインできます。 できるだけ早くこのパスワードを変更してください。
ユーザーアクティビティ監査
少なくとも四半期に一度、各Liferay PaaS環境およびLiferay DXPにおけるユーザーアクティビティの定期監査を実施する。
チームメンバー
少なくとも四半期に一度、各環境におけるチームメンバーとその権限を監査し、Liferay PaaSプロジェクトのメンバーとLiferay DXPのロールの両方について、活動していないチームメンバーを削除してください。
ネットワークコントロール
ネットワークの設定を変更することで、セキュリティを強化することもできます。
パブリックエンドポイント
データベース(またはその他のサービス)のエンドポイントをインターネットに公開しないようにしてください。 これらのエンドポイントを公開すると、HTTPSロードバランサーのDDoS攻撃対策が回避されます。
律速段階
Nginxを設定することで、Liferayサービスへのリクエストを制限できます。 環境内のトラフィックパターンを監視し、アクセス速度が許容範囲内になるようにこれらの設定を構成してください。
DNSセキュリティ
選択したDNSプロバイダーが、最良のDNSセキュリティ対策を実施していることを確認してください。
ModSecurity
Liferay Cloud の Web アプリケーション ファイアウォール を有効にすると、Web サーバーに送信されるリクエストを、定義済みのカスタム ルール セットと照合して検査できます。
バックアップ
定期的なバックアップ、特に災害復旧テスト(つまり、バックアップ戦略が確実に成功することを確認するためのテスト)は、災害が発生した場合に安心感を与えてくれます。
バックアップダウンロード
Liferay PaaSにおけるバックアップデータは、保存時および転送時ともに常に暗号化されます。 ただし、バックアップをローカルマシンにダウンロードする場合は、必要なセキュリティ規制を遵守するために、データフローを事前に計画しておくようにしてください。
個人情報(PII)の匿名化
本番環境以外の環境で本番データを使用することはデバッグ目的には役立つが、依然としてリスクを伴う。 これらのバックアップを非本番環境に復元する際に、個人情報(PII)のマスキングを実行するスクリプトを実装してください。
HTTPレイヤー
HTTPレイヤーのセキュリティを維持することは、セキュリティ上の問題を回避するための最も重要な方法の一つです。
認証方法
最初の方法は、 基本認証 で、これはサーバーがクライアントに認証を要求するときにエンコードされる Authorization ヘッダー内の HTTP プロトコルです。
2つ目は、ユーザーアクセストークンによる方法です。 SSOが有効になっている場合、トークン認証が必要です。 Cookie 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)は、ウェブブラウザが悪意のあるリソースを読み込むことを防ぎます。 nginx 設定ファイルで、セキュリティ準拠のために Content-Security-Policy ヘッダーを設定します。
URLリダイレクト
HTTPからHTTPSへのリダイレクトは、まず元のサイトの安全なバージョンに直接誘導されるようにし、中間者攻撃による悪意のあるサイトへのリダイレクトを防いでください。 リダイレクト先がHTTPアドレスにならないようにしてください。
URLリダイレクトは、お使いの環境のnginx設定ファイルを使用して設定してください。
HSTS
HTTP Strict Transport Security (HSTS) ヘッダーは、ユーザーが最初のアクセス後すぐにHTTPSウェブサイトに接続されることを保証します。 環境のnginx設定ファイルを使用して、セキュリティ準拠のために Strict-Transport-Policy ヘッダーを設定します。
ウェブブラウザ
nginxを設定してユーザーエージェントヘッダーを検証し、古いWebブラウザからのサイトへのアクセスをブロックします。
シークレット
詳細については、 シークレットを使用した安全な環境変数の管理 を参照してください。
格納およびローテーション
機密情報は安全で確実な場所に保管し、一定の間隔で定期的に変更してください。
ディザスタリカバリ(DR)のマスタートークン
ディザスタリカバリ環境を構成する際に、マスタートークンをシークレットとして作成します。
リポジトリへのアクセス
Gitリポジトリのプライベートアクセストークン(PAT)を秘密の値として作成します。
Dynatrace
Liferay PaaS サブスクリプションに Dynatrace が含まれている場合は、Dynatrace テナントとトークン値をシークレットとして作成してください。
SSL証明書
カスタムSSL証明書をインストールする際は、キーと証明書のプロパティをシークレットとして作成してください。
開発環境へのアクセス
dev 環境の Liferay DXP アクセスは、プロビジョニング メールで共有されるデフォルトの認証情報によって保護されています。 nginxの設定をカスタマイズし、独自の認証情報を設定して、それらをシークレットとして保存します。