AWS上でArcGIS Enterprise を構築する際にWAF(Web Application Firewall) を利用することができます。WAFの利用は、ArcGIS Enterprise Hardening Guide にも推奨事項として掲載されています。また、ArcGIS Enterprise 11.5 では、ArcGIS Web Adaptor 経由での ArcGIS Server サイトへの管理アクセスがデフォルトで有効となっており、これを無効化することはできなくなりました。詳細は、ArcGIS Enterprise 11.5 の ArcGIS Web Adaptor に関するお知らせ を参照してください。また、WAFに関するドキュメントは、ArcGIS Enterprise Web Application Filter Rules を参照してください。
本ブログでは、WAFを利用してArcGIS Enterprise の管理サイトへのアクセスを制限してみます。試したバージョンは、ArcGIS Enterprise 11.5になります。
このブログを参照する前に以前記載しました以下の3つのブログもあわせて参照いただきますと幸いです。
- AWS のロードバランサーを利用して Portal for ArcGIS を活用する
- AWS のロードバランサーを利用して ArcGIS Server を活用する
- AWS 上での ArcGIS Enterprise 構築における Application Load Balancer の設定
拡張エンドポイントフィルタリング(管理APIのブロック)
これから説明する設定を実施すると、ArcGIS EnterpriseのフロントエンドWebインターフェース経由での管理APIへのアクセスが禁止されます。この強化措置により、フェデレーション、読み取り専用モード、システムおよびセキュリティ構成など、ArcGIS Enterpriseへのグローバルな管理変更がブロックされます。この設定を実施する組織は、ArcGIS Enterprise を管理するために以下の追加手順のうち少なくとも 1 つを実施する必要があります。
- IP ホワイトリスト化された管理用ロードバランサーを実装し、ポート 7443 経由で ArcGIS Enterprise のポータルホストに直接リクエストをプロキシします。これにより、リクエストがホワイトリスト登録された IP 範囲から発信されている場合、「管理者」は ArcGIS Enterprise への制限のないアクセスが可能になります。
- Webアプリケーションファイアウォール(WAF)の設定を一時的に「検出モード」に切り替える。管理変更完了後、WAF設定を「保護モード」に戻します。
- 7443ポート経由で、ポータルホスト自体またはセキュアなネットワーク接続を介してArcGIS Enterpriseの管理APIにアクセスします(例:https://localhost:7443/arcgis/admin)。
以下のアプリケーション固有のエンドポイントは外部アクセスから安全にフィルタリングできますが、これらの制限により管理アクセスもブロックされます。これらの正規表現ルールをWAFに適用することで、ArcGIS Enterpriseサイト内の機密URIへの外部アクセスを拒否できます。(※ArcGIS Enterprise Web Application Filter Rules を参照)
.*\/portaladmin\/system\/properties.*update.*
.*\/portaladmin\/system\/directories.*
.*\/portaladmin\/federation\/.*federate.*
.*\/portaladmin\/security\/sslCertificates.*
.*\/portaladmin\/security\/config.*update.*
.*\/portaladmin\/system\/webadaptors.*
.*\/portaladmin\/system\/emailSettings.*
.*\/portaladmin\/system\/database.*
.*\/portaladmin\/mode.*
.*\/admin\/importSite.*
.*\/manager\/.*
.*\/admin\/exportSite.*
.*\/admin\/system.*
.*\/admin\/deleteSite.*
.*\/admin\/.*federate.*
.*\/admin\/clusters.*
.*\/admin\/uploads.*
.*\/admin\/machines.*
.*\/admin\/security.*
AWSでの設定例
AWS WAF を利用して上記の記載のある管理エンドポイントへのアクセスを制限できます。ここでは、特定のグローバルIPのみの発信元からのアクセスのみ管理エンドポイントへのアクセスを許可します。
まず管理エンドポイントのPATHを正規表現として、AWS WAF の正規表現パターンセットに登録します。


Portal for ArcGIS と ArcGIS Server の管理エンドポイントのPATHを2つに分けて登録します。この正規表現パターンセットの登録文字数の制限は512文字以内である必要があります。
次に AWS WAF の IP セットの許可したいグローバルIP のリストを登録します。

保護パック(ウェブACL)を作成します。
正規表現パターンセットとIPセットで作成した設定を組み合わせて、特定のグローバルIPからのみ管理エンドポイントURLのアクセスを許可設定します。設定の意味は、「アクセス元が特定のグローバルIP以外のIPである場合は管理エンドポイントURLへのアクセスをブロックする」という内容となります。 条件が少々複雑なためここではJSONで表現します。
{
"Action": {
"Block": {}
},
"Name": "AllowedArcGISAdmin-FromSpecifiedIP",
"Priority": 10,
"Statement": {
"AndStatement": {
"Statements": [
{
"OrStatement": {
"Statements": [
{
"RegexPatternSetReferenceStatement": {
"ARN": "arn:aws:wafv2:ap-northeast-3:xxxxxxxxxxxx:regional/regexpatternset/arcgis_portal_waf_regex_pattern_set/yyyyyyyyyyyy[※Portal for ArcGIS 用の正規表現パターンセットのARN]",
"FieldToMatch": {
"UriPath": {}
},
"TextTransformations": [
{
"Priority": 1,
"Type": "NONE"
}
]
}
},
{
"RegexPatternSetReferenceStatement": {
"ARN": "arn:aws:wafv2:ap-northeast-3:xxxxxxxxxxxx:regional/regexpatternset/arcgis_server_waf_regex_pattern_set/yyyyyyyyyyyy[※ArcGIS Server 用の正規表現パターンセットのARN]",
"FieldToMatch": {
"UriPath": {}
},
"TextTransformations": [
{
"Priority": 1,
"Type": "NONE"
}
]
}
}
]
}
},
{
"NotStatement": {
"Statement": {
"IPSetReferenceStatement": {
"ARN": "arn:aws:wafv2:ap-northeast-3:xxxxxxxxxxxx:regional/ipset/arcgis_admin_ip_set/yyyyyyyyyyyy[※IPセットのARN]"
}
}
}
}
]
}
},
"VisibilityConfig": {
"CloudWatchMetricsEnabled": false,
"MetricName": "egihs-AllowedArcGISAdmin-Metric",
"SampledRequestsEnabled": false
}
}
アクセス制御したいロードバランサーを登録
保護パック(ウェブACL)のリソース管理画面より、WAF設定を反映したいロードバランサーに登録します。

動作確認
特定のグローバルIPからは、ArcGIS Server のAdminページが表示されますが、それ以外のグローバルIPからは表示されないことを確認します。
特定のグローバルIPからArcGIS Server Managerページへアクセス)
正常にアクセスできます。

特定のIP以外からArcGIS Server Managerページへアクセス)
アクセスがブロックされます。

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