ArcGIS Enterprise on Kubernetes には、一般的なセキュリティ問題のスキャンを行う Python スクリプトである kubernetesScan.py があります。 スクリプトは、デプロイメント パッケージを抽出したディレクトリの setup/tools/security にあります。
このスクリプトを実行するには、Python 3.x (requests および urllib3 モジュールを含む) が必要です。
使用法
組織をスキャンしてセキュリティのベスト プラクティスを実現するには、次の手順を実行します。
- Kubernetes クライアント コンピューターでターミナルを開きます。
- ディレクトリを setup/tools/security ディレクトリに変更します。
- 次のコマンドの書式を使用して kubernetesScan.py スクリプトを実行します。
python3 kubernetesScan.py
たとえは、スクリプトは次のように入力を求めます。
Enter ArcGIS Enterprise on Kubernetes hostname [machine.example.com]:
Enter ArcGIS Enterprise on Kubernetes context:
Enter administrator username:
Enter administrator password:
Enter output directory [/setup/tools/security]:
このスクリプトは、ArcGIS Enterprise 用のセキュリティで保護された環境の構成のベスト プラクティスに基づき、問題をチェックします。 スクリプトは、HTML ファイルを指定した出力ディレクトリに生成します。 HTML ファイルを開いて結果を表示できます。
重要度レベルと基準
スクリプトは、多数の基準または構成プロパティを分析して、Critical、Important、Recommended という 3 段階の重要度レベルに分割します。 これらの基準を次の表に示します。
ID | 重要度 | プロパティ | 説明 |
---|---|---|---|
ES01 | 重要 | プロキシ制限 | ポータルのプロキシ機能が制限されているかどうかを判断します。 デフォルトでは、ポータル プロキシ サーバーはどの URL にも開いています。 DoS (サービス拒否) や SSRF (サーバー サイド リクエスト フォージェリー) 攻撃を受けるリスクを軽減するため、ポータルのプロキシ機能を、許可された Web アドレスに制限することをおすすめします。 |
ES02 | 重要 | Web コンテンツのフィルタリング | Web コンテンツのフィルタリングのプロパティが無効になっているフィーチャ サービスのリストを生成します。 このプロパティを無効にすると、ユーザーが入力フィールドにテキストを入力できるようになり、サービスがクロスサイト スクリプティング (XSS) 攻撃を受ける可能性があります。 デフォルトではこのプロパティは有効になっており、サポートされていない HTML エンティティまたは属性が必要にならない限り、無効にしないでください。 |
ES03 | 重要 | エンタープライズ サービス ディレクトリ | Web ブラウザーを通じて ArcGIS Enterprise サービス ディレクトリにアクセスできるかどうかを決定します。 ユーザーがサービスの検索のために積極的に使用している場合を除き、サービスの参照、Web 検索でのサービスの検索、または HTML フォームからのサービスのクエリの機会を減らすために、このプロパティを無効にしてください。 無効化すると、XSS (クロスサイト スクリプティング) 攻撃から保護することもできます。 |
ES04 | 重要 | Web の通信 | ArcGIS Enterprise に対して HTTPS が有効かどうかを決定します。 あらゆる通信が傍受されないよう、ArcGIS Enterprise とリバース プロキシをホストする Web サーバー、または ArcGIS Web Adaptor (インストールされている場合) で SSL 暗号化を使用するよう構成することをお勧めします。 |
ES05 | 推奨 | 組み込みアカウントのサインアップ | ユーザーが組織のサインアップ ページで [アカウントの作成] ボタンをクリックして、組み込みアカウントを作成できるかどうかを決定します。 組織固有のアカウントを使用している場合や、すべてのアカウントを手動で作成する場合は、このオプションを無効にする必要があります。 |
ES06 | 推奨 | 匿名アクセス | 匿名アクセスが可能かどうかを判断します。 認証情報を入力していないユーザーがコンテンツにアクセスできないように、匿名アクセスを無効化して組織を構成することをお勧めします。 |
ES07 | 推奨 | LDAP アイデンティティ ストア | 組織が LDAP アイデンティティ ストアを使用して構成されている場合、このストアによって暗号化通信を使用するかどうかが決定されます。 ユーザーとグループの LDAP URL には、LDAP を使用することをおすすめします。 |
ES08 | 推奨 | ingress コントローラーの TLS 証明書 | 自己署名証明書を ingress コントローラーで使用するかどうかを決定します。 ポータルと通信するクライアントの Web ブラウザーによる警告メッセージなどの予期しない動作を減らすには、ingress コントローラーにバインドされた CA 署名 TLS 証明書をインポートして使用することをお勧めします。 |
ES09 | 推奨 | クロス ドメイン リクエスト | クロス ドメイン (CORS) リクエストが制限されないかどうかを決定します。 未知のアプリケーションが共有ポータル アイテムにアクセスする可能性を減らすには、クロス ドメイン リクエストを信頼済みドメインでのみホストされているアプリケーションに制限することをお勧めします。 |
ES10 | 重要 | フェデレーション サーバーの管理 URL | フェデレーション サーバーの管理者 URL がポータルからアクセスできるかどうか、およびこの URL で使用されている TLS 証明書が信頼済みかどうかを決定します。 証明書が信頼済みでない場合や、ポータルからアクセスできない場合、多くのポータルの機能および操作は失敗します。 |
ES11 | 推奨 | フェデレーション サーバーのサービス URL | フェデレーション サーバーのサービス URL がポータルからアクセスできるかどうか、およびこの URL で使用されている SSL 証明書が信頼済みかどうかを決定します。 証明書が信頼済みでない場合や、ポータルからアクセスできない場合でも、ポータルは機能しますが、一部のポータル操作は失敗する可能性があります。 |
ES12 | 推奨 | パブリック コンテンツ | メンバーがコンテンツをパブリックに共有できないように組織が構成されている場合でも、[すべてのユーザー] と共有されているアイテムはすべて表示されます。 |
ES13 | 重要 | ダイナミック ワークスペース | ダイナミック ワークスペースを介してデータベースにアクセスできるサービスのリストを生成します。 適切な保護措置を取らない限り、これによってデータベースおよびワークスペースが、REST 経由で悪意のある第三者によってアクセスされる可能性があります。 サービスおよびダイナミック レイヤーまたはワークスペース機能が、Web アプリケーションでアクティブに使用するためのものである場合のみ、ダイナミック ワークスペースを有効にします。 この場合、マップ サービスがワークスペースまたはデータベースに接続するために使用するデータベース コネクションでは、たとえば、ワークスペース内に追加したテーブルのうち必要なテーブルのみに読み取り専用アクセスを付与するなど、アプリケーションに必要な最低限の権限だけが付与されていることを確認します。 |
ES14 | 推奨 | フィーチャ サービスの権限 | 更新または削除操作が有効になっており、匿名アクセスに開かれているフィーチャ サービスのリストを返します。 これにより、認証なしでフィーチャ サービスのデータを変更または削除できるようになります。 |
ES15 | 重要 | SAML 構成設定 | 組織が SAML 認証を使用するように構成されている場合、暗号化アサーションと署名付きリクエストを有効にするかどうかを決定します。 ID プロバイダーがサポートしている場合、暗号化アサーションと署名付きリクエストの両方を要求するようにポータルを構成することをお勧めします。 |