OSGi 環境における AEM Forms の堅牢化と保護 hardening-and-securing-aem-forms-on-osgi-environment

OSGi サーバー上で AEM Forms を保護するための推奨事項とベストプラクティスについて説明します。

サーバー環境のセキュリティを強化することは、組織にとって最も重要な課題です。この記事では、AEM Forms が稼働するサーバーを保護するための推奨事項とベストプラクティスについて説明します。オペレーティングシステムのホストの堅牢化についての包括的な説明は、この記事の対象外です。デプロイされているアプリケーションのセキュリティを強化するために実装する必要がある、様々なセキュリティ堅牢化設定について説明します。ただし、アプリケーションサーバーのセキュリティを確保するには、この記事に記載されている推奨事項だけでなく、セキュリティのモニタリング、検出、応答の手順も実行する必要があります。この記事では、PII(個人を特定できる情報)を保護するためのベストプラクティスとガイドラインについても説明します。

この記事は、アプリケーションまたはインフラストラクチャの開発と AEM Forms のデプロイメントを計画するコンサルタント、セキュリティスペシャリスト、システムアーキテクト、IT 専門スタッフを対象としています。また、この対象読者には、次のような一般的な職務の担当者も含まれます。

  • 自社または顧客の組織に、web アプリケーションとサーバーを保護した状態でデプロイする必要がある IT エンジニアおよびオペレーションエンジニア。
  • 組織内のクライアントマシンのアーキテクチャ計画に責任を負うアーキテクトおよびプランナー.
  • 組織内のプラットフォーム全体のセキュリティ保護に取り組む IT セキュリティスペシャリスト。
  • 顧客とパートナー向けの詳細なリソースを必要とするアドビおよびパートナーのコンサルタント。

以下の図は、適切なファイアウォールトポロジーが設定された、AEM Forms の一般的なデプロイメント環境で使用されるコンポーネントとプロトコルを示しています。

典型的なアーキテクチャ

AEM Forms は非常にカスタマイズ性が高いため、様々な環境で使用することができます。ここで紹介するいくつかの推奨事項は、お客様の組織に該当しない場合があります。

トランスポート層を保護 secure-transport-layer

トランスポート層の脆弱性は、インターネットやイントラネットに接続されているアプリケーションサーバーにとって、最も重大な脅威の 1 つです。ここでは、このような脆弱性に対してネットワーク上のホストを堅牢化する手順について説明します。具体的には、ネットワークのセグメント化、TCP/IP(Transmission Control Protocol/Internet Protocol)スタックの堅牢化、ホスト保護のためのファイアウォールの使用などの手順を取り上げます。

エンドポイントのアクセスを制限 limit-open-endpoints

外部のファイアウォールを使用して、エンドユーザーによる AEM Forms パブリッシュファームへのアクセスを制限することができます。また、内部のファイアウォールを使用して、社内の他の要素(オーサーインスタンス、処理インスタンス、データベースなど)とパブリッシュファーム間のアクセスを制限することもできます。これらのファイアウォールでは、エンドユーザーや組織内の各要素に、AEM Forms の一部の URL に対するアクセスを許可することができます。

外部ファイアウォールを設定 configure-external-firewall

外部のファイアウォールを設定することにより、AEM Forms の特定の URL に対して、インターネットへのアクセスを許可することができます。これらの URL にアクセスするには、アダプティブフォーム、HTML5 フォーム、Correspondence Management レターを入力するか(またはこれらを送信するか)、AEM Forms サーバーにログインする必要があります。

コンポーネント
URI
アダプティブフォーム
  • /content/dam/formsanddocuments/AF_PATH/jcr:content
  • /etc/clientlibs/fd/
  • /content/forms/af/AF_PATH
  • /libs/granite/csrf/
HTML5 のフォーム
  • /content/forms/formsets/profiles/
Correspondence Management
  • /aem/forms/createcorrespondence*
Forms ポータル
  • /content/forms/portal/
  • /libs/cq/ui/widgets*
  • /libs/cq/security/
AEM Forms アプリケーション
  • /j_security_check*
  • /soap/services/AuthenticationManagerService

内部ファイアウォールを設定 configure-internal-firewall

内部のファイアウォールを設定することにより、特定の AEM Forms コンポーネント(オーサーインスタンス、処理インスタンス、データベースなど)に対して、パブリッシュファームや、トポロジーダイアグラムに記述されている他の内部コンポーネントとの通信を許可することができます。

ホスト
URI
パブリッシュファーム(パブリッシュノード)
/bin/receive
処理サーバー
/content/forms/fp/*
Forms Workflow のアドオンサーバー(JEE サーバー上の AEM Forms)
/soap/sdk

リポジトリの権限とアクセス権限リスト(ACL)を設定 setup-repository-permissions-and-access-control-lists-acls

パブリッシュノード上で使用可能なアセットには、デフォルトですべてのユーザーがアクセスすることができます。すべてのアセットで、読み取り専用アクセス権が有効になっています。匿名アクセスを有効にするには、読み取り専用アクセス権が必要になります。フォームの表示アクセス権と送信アクセス権を認証済みユーザーだけに制限する場合は、共通グループを使用して、パブリッシュノード上で使用可能なアセットに対する読み取り専用アクセス権を、認証ユーザーに対してのみ付与します。以下に示す場所/ディレクトリには、保護する必要がある(認証済みユーザーに対する読み取り専用アクセス権が必要な)フォームアセットが保管されています。

  • /content/*
  • /etc.clientlibs/fd/*
  • /libs/fd/*

フォームデータの安全な操作 securely-handle-forms-data

AEM Forms では、事前に定義された場所と一時フォルダーにデータが保管されます。これらのデータを保護して、データの不正使用を防ぐ必要があります。

一時フォルダーの定期的なクリーンアップを設定 setup-periodic-cleanup-of-temporary-folder

添付ファイル、コンポーネントの検証、コンポーネントのプレビュー用のフォームを設定すると、対応するデータが /tmp/fd/ のパブリッシュノードに格納されます。これらのデータは定期的に削除されます。デフォルトのデータ削除ジョブを変更して、データの削除間隔を短くすることができます。スケジュール設定されているデータ削除ジョブを変更するには、AEM web コンソールを開いて AEM Forms 一時ストレージクリーニングタスクを起動し、Cron 式を変更します。

上記のシナリオの場合、認証済みユーザーのデータだけが保存されます。また、アクセス制御リスト(ACL)によってデータが保護されます。そのため、データの削除間隔を短くすると、データの保護をさらに強化することができます。

フォームポータル送信アクションによる保存データの保護 secure-data-saved-by-forms-portal-submit-action

デフォルトでは、アダプティブフォームのフォームポータル送信アクションを実行すると、パブリッシュノードのローカルレポジトリにデータが保存されます。このデータは、/content/forms/fp に保存されます。パブリッシュインスタンスにデータを保存することはお勧めしません。

ストレージサービスを設定して、データをローカルのパブリッシュノード上に保存せずに、ネットワーク経由で処理クラスターに送信することができます。処理クラスターは、プライベートファイアウォールによって保護された安全な場所に配置されているため、データのセキュリティを確保することができます。

パブリッシュノードから処理サーバーにデータをポストするには、AEM DS 設定サービスに対する処理サーバーの資格情報を使用します。処理サーバーのリポジトリに対する読み取りアクセス権と書き込みアクセス権が設定された、権限が制限されている非管理者ユーザーの資格情報を使用します。詳しくは、ドラフトと送信に使用するストレージサービスの設定を参照してください。

フォームデータモデル(FDM)で使用するデータを保護 secure-data-handled-by-form-data-model-fdm

最低限必要な権限だけが設定されているユーザーアカウントを使用して、フォームデータモデル(FDM)のデータソースを設定します。管理者アカウントを使用すると、認証されていないユーザーがメタデータとスキーマエンティティにアクセスする可能性があります。
データを統合して、FDM サービス要求を認証する方法を提供することもできます。実行前と実行後の認証メカニズムを挿入して、サービス要求を検証することができます。サービス要求は、フォームの事前入力時、フォームの送信時、ルールを使用したサービスの呼び出し時に生成されます。

処理前認証機能: ​処理前認証機能を使用すると、要求を実行する前に、その要求の妥当性を検証することができます。入力、サービス、要求の詳細情報を使用して、要求の実行を許可または停止できます。実行を停止する場合は、データ統合例外として OPERATION_ACCESS_DENIED を返すことができます。また、クライアント要求を送信して実行する前に、変更することもできます。例えば、入力を変更して追加情報を指定することができます。

処理後認証機能: ​処理後認証機能を使用すると、実行結果を要求者に返す前に、その結果の検証と制御を行うことができます。また、実行結果に対するフィルタリングやプルーニング、追加データの挿入を行うこともできます。

ユーザーアクセスの制限 limit-user-access

オーサーインスタンス、パブリッシュインスタンス、処理インスタンスに対して、それぞれ異なるユーザー役割を設定する必要があります。いずれのインスタンスについても、管理者の資格情報を使用して実行することは避けてください。

パブリッシュインスタンスで:

  • forms-users グループに属しているユーザーだけが、プレビュー、ドラフトの作成、フォームの送信を実行することができます。
  • cm-user-agent グループに属しているユーザーだけが、Correspondence Management のレターをプレビューすることができます。
  • 不要な匿名アクセスをすべて無効にしてください。

オーサーインスタンスの場合:

  • 各役割に対して、特定の権限が設定された異なる事前定義グループのセットが用意されています。ユーザーを各グループに割り当ててください。

    • forms-user グループのユーザー:

      • フォームの作成、入力、発行、送信を行うことができます。
      • XDP ベースのアダプティブフォームを作成することはできません。
      • アダプティブフォームのスクリプトを作成する権限がありません。
      • XDP のインポートや、XDP が含まれているパッケージのインポートはできません。
    • forms-power-user グループに属しているユーザーは、すべてのタイプのフォームについて、作成、入力、発行、送信を行うことができます。また、アダプティブフォームのスクリプトの作成と、XDP が含まれているパッケージのインポートも実行できます。

    • template-authors グループと template-power-user グループに属しているユーザーは、テンプレートのプレビューと作成を行うことができます。

    • fdm-authors グループに属しているユーザーは、フォームデータモデルの作成と変更を行うことができます。

    • cm-user-agent グループに属しているユーザーは、Correspondence Management レターの作成、プレビュー、発行を行うことができます。

    • workflow-editors グループに属しているユーザーは、インボックスアプリケーションとワークフローモデルを作成することができます。

作成者の処理について:

  • リモート保存および送信の使用例では、crx-repository の content/form/fp パスに対する読み取り、作成および変更権限を持つユーザーを作成します。
  • ユーザーによる AEM インボックスアプリケーションの使用を許可するには、そのユーザーを workflow-user グループに追加します。

AEM Forms 環境のイントラネット要素の保護 secure-intranet-elements-of-an-aem-forms-environment

通常、処理クラスタと Forms ワークフローアドオン(JEE 上の AEM Forms)は、ファイアウォールの背後で稼働します。そのため、これらのクラスタとアドオンのセキュリティは確保されています。いくつかの手順を実行することにより、こうした環境のセキュリティをさらに強化することができます。

処理クラスターの保護 secure-processing-cluster

処理クラスターはオーサーモードで稼働しますが、開発作業で使用しないでください。また、一般ユーザーを、処理クラスターの content-authors グループや form-users グループに追加しないでください。

AEM のベストプラクティスの実施による AEM Forms 環境の保護 use-aem-best-practices-to-secure-an-aem-forms-environment

このドキュメントでは、AEM Forms 環境に固有の手順について説明します。デプロイメントを行う際に、ベースとなる AEM インストール環境のセキュリティを確保する必要があります。詳しい手順については、「AEM セキュリティチェックリスト」を参照してください。

recommendation-more-help
19ffd973-7af2-44d0-84b5-d547b0dffee2