TomcatのWebアプリケーションマネージャ(manager)でIPアドレスのアクセス制限を設定する方法

TomcatのWebアプリケーションマネージャ(manager)でIPアドレスのアクセス制限を設定する方法

TomcatのWebアプリケーションマネージャは、Tomcatサーバーの管理やデプロイされたアプリケーションの操作を行うためのウェブインターフェースです。
セキュリティを確保するために、特定のIPアドレスからのアクセスのみを許可する設定が必要な場合があります。
今回はその設定方法について共有します。

context.xmlを編集する方法

以下のように、webapps/manager/META-INF/context.xmlにValveを追加して、特定のIPアドレスからのみアクセスを許可します。

<Context privileged="true" antiResourceLocking="false" docBase="${catalina.home}/webapps/manager">
  
  <!-- 特定のIPからのみアクセスを許可 -->
  <Valve className="org.apache.catalina.valves.RemoteAddrValve"
         allow="192.168.1.100"/>

</Context>

web.xmlを編集する方法

以下のように、webapps/manager/WEB-INF/web.xmlにsecurity-constraint要素を追加して、特定のIPアドレスからのみアクセスを許可します。

<security-constraint>
  <web-resource-collection>
    <web-resource-name>Manager interface</web-resource-name>
    <url-pattern>/manager/*</url-pattern>
  </web-resource-collection>
  <auth-constraint>
    <role-name>manager-gui</role-name>
  </auth-constraint>
  <user-data-constraint>
    <transport-guarantee>CONFIDENTIAL</transport-guarantee>
  </user-data-constraint>
  <ip-filter>
    <allow>192.168.1.100</allow>
  </ip-filter>
</security-constraint>

推奨されているのは、webapps/manager/META-INF/context.xmlを編集する方法のようです。
いずれの場合も、変更を反映するためにはTomcatの再起動が必要になるので注意してください。

systemctl restart tomcat

また、可能であればTomcatに到達する前に、LBやApache/Nginxでも設定した方が安全なため、そちらでIP制限をかけることも検討してみてください。