AWS 上での ArcGIS Enterprise 構築における WAF(Web Application Firewall) の設定

アイキャッチ画像 (ArcGIS Enterprise)

AWS上でArcGIS Enterprise を構築する際にWAF(Web Application Firewall) を利用することができます。WAFの利用は、ArcGIS Enterprise セキュリティ強化ガイドにも推奨事項として掲載されています。こちらのブログで試したのは、ArcGIS Enterprise 11.3になります。

※ArcGIS Enterprise セキュリティ強化ガイドでは、Esriが推奨するArcGIS Enterpriseのセキュリティ態勢を強化するための戦略と関連設定について説明しています。このドキュメントは、ArcGIS Enterpriseの新規展開を計画中の組織および既存の展開を対象としています。管理者、システムアーキテクト、セキュリティエンジニアは、このガイドを使用して、ArcGIS Enterpriseの展開がベストプラクティスに準拠してセキュリティが確保さていることを実装し、検証できます。

このブログを参照する前に以前記載しました以下の3つのブログもあわせて参照いただきますと幸いです。

WAF(Web Application Firewall)の実装

ArcGIS Enterpriseへのアクセスは、WAF(Webアプリケーションファイアウォール)機能を備えたロードバランサー、プロキシ、またはネットワークアクセスゲートウェイなどのレイヤー7ファイアウォールで制限する必要があります。WAFは、HTTPセッションの細粒度な検査とフィルタリングを可能にします。WAFは継続的な管理が必要ですが、現在ではウェブベースのアプリケーションやサービスを含むセキュアな展開における基本コンポーネントとして考慮されています。

ArcGIS Enterpriseは、WAF(Webアプリケーションファイアウォール)との使用を目的として、特定のOWASP Core Rules(OWASPコアルール)との運用上の互換性が検証されています。(詳細については、ArcGIS Enterprise Web Application Filter Rulesを参照してください。)

重要なポイントとして、WAF ルール(OWASP Core Rule Set を含む)の適切な設定が行われない場合、ArcGIS Enterprise の運用に問題が発生します。運用停止を回避するため、Esri はWAF の構成を保護モードに切り替える前に、検出モードでテストすることを推奨します。

また、注意事項としましてArcGIS EnterpriseのユーザーインターフェースまたはAPIを通じてSOAPを無効化する機能はありません。WAFはSOAPリクエストをブロックできますが、これによりArcGIS Proが一部のArcGIS Enterpriseサービスを利用できなくなる可能性があります。SOAPのブロックに関するガイドラインは、ArcGIS Enterprise Web Application Filter Rulesを参照してください。

AWS WAF では、マネージドのCore rule set を提供しており、こちらの設定を試してみたいと思います。ArcGIS Enterprise Web Application Filter Rulesを参照して、例えば、「Missing User Agent Header 」はルールの提供がDisableと記載されているので、AWS WAF のマネージドCore rule set も適用せずカウントのみにしてBlockはしないように設定してみます。(※下図参照)

※こちらの設定はあくまで参考例であり、必ずご自身で構築する環境やArcGIS Enterprise のバージョンにあわせて設定し、十分な検証を行ってください。

補足ですが、ルールアクションのオプションは以下の通りとなります。( https://docs.aws.amazon.com/ja_jp/waf/latest/developerguide/waf-rule-action.html )

  • Allow – AWS WAF リクエストを保護された AWS リソースに転送して処理および応答できるようにします。これは終了アクションです。定義したルールでは、リクエストを保護されたリソースに転送する前に、カスタムヘッダーを挿入できます。
  • Block – リクエストを AWS WAF ブロックします。これは終了アクションです。デフォルトでは、保護された AWS リソースは HTTP 403 (Forbidden)ステータスコードで応答します。定義したルールでは、応答をカスタマイズできます。リクエストを AWS WAFが ブロックすると、Blockアクション設定によって、保護されたリソースがクライアントに返すレスポンスが決まります。
  • Count – リクエストを AWS WAF カウントしますが、許可するかブロックするかは決定しません。これは終了しないアクションです。保護パックまたはウェブ ACL の残りのルールの処理は AWS WAF を続行します。定義したルールでは、リクエストにカスタムヘッダーを挿入し、他のルールで一致するラベルを追加できます。
  • CAPTCHA および Challenge – CAPTCHA パズルとサイレントチャレンジ AWS WAF を使用して、リクエストがボットから送信されていないことを確認し、トークン AWS WAF を使用して最近成功したクライアントレスポンスを追跡します。

その他AWS WAFを利用する際のルールとして、Known bad inputs(AWSManagedRulesKnownBadInputsRuleSet)やSQL database(AWSManagedRulesSQLiRuleSet)なども適用してみましたが、これらはデフォルト設定のまま利用してみます。

ArcGIS Pro による公開

AWS WAFを作成し 、利用しているApplication Load Balancerと関連付けた後でArcGIS Pro にてデータを公開してみたいと思います。

すべてのデータをコピーにて「フィーチャ」を選択し、WAFを利用したArcGIS Enterprise環境に公開してみます。

「Webレイヤーが正常に公開されました。」というメッセージが出て、無事にArcGIS Pro からのデータ公開の成功を確認できます。

まとめ

AWS上でApplication Load Balancer を設定し、さらにWAFを設定していくことは作業量が増えスキルも必要となりますが、ArcGIS Enterprise の構築や運用上でセキュリティ強化につながります。このブログをきっかけにそれぞれの環境で構築・運用するArcGIS Enterprise環境のセキュリティ向上につながれば幸いです。

フォローする