Skip to main content

Java 2セキュリティ

Java 2セキュリティマネージャを使用すると、システム管理者は、JVM内のJavaコードに対して使用可能な権限を規定するポリシーを適用できます。

JavaエージェントでJava 2セキュリティマネージャを使用する場合は、Javaセキュリティポリシーファイルを設定して、Javaコードのプリンシパルに権限を適用する必要があります。

Javaコードのプリンシパルは、通常CodeSource (JARなど)によって識別され、まれに署名付きJARのエンティティによる場合もあります。

例えば、Tomcatのデフォルトのcatalina.policyファイルで、このポリシーはJDBCドライバのJARに権限を付与しています。

// The permission granted to your JDBC driver
grant codeBase "jar:file:${catalina.base}/webapps/examples/WEB-INF/lib/driver.jar!/-" {
     permission java.net.SocketPermission "dbhost.mycompany.com:5432", "connect";
};

Java 2セキュリティマネージャは、ユーザがデプロイするコードをシステム管理者が完全に信頼できない場合には便利です。例えば、マルチテナントのTomcatインスタンスでユーザのアプリケーションをホストする場合、Java 2セキュリティマネージャを使用して、ユーザのアプリケーションによってサービス全体が停止されないように制御できます(例、System.exit()の呼出しを許可しないなど)。

ContrastのJavaエージェントでJava 2セキュリティマネージャを使用する場合は、セキュリティポリシーファイルで、Javaエージェントに全権限を付与する必要があります(java.security.AllPermission)。これを行うには、<YourContrastJarPath>Contrast JARファイルへのパスに置き換えて、以下を使用してください。

grant codeBase "file:<YourContrastJarPath>" {
  permission java.security.AllPermission;
};

Java 2セキュリティマネージャと、以下のいずれかの環境を使用する場合は、さらに設定が必要になる場合があります。