25.7. Java のセキュリティーマネージャー


25.7.1. Java Security Manager

Java Security Manager
Java Security Manager は、Java 仮想マシン (JVM) サンドボックスの外部の境界を管理するクラスで、JVM 内で実行しているコードと JVM 外のリソースとの連携方法を制御します。Java Security Manager がアクティブになると、Java API は安全でない多様な動作を実行する前に Security Manager と承認を確認します。
Java Security Manager は、セキュリティーポリシーを使用して、特定のアクションが許可または拒否されるかどうかを決定します。

25.7.2. Java Security Manager のポリシー

セキュリティーポリシー
コードの様々なクラスに対して定義されたパーミッションのセットです。Java Security Manager はセキュリティーポリシーとアプリケーションから要求されたアクションを比較します。ポリシーがアクションを許可している場合は、Java Security Manager はそのアクションが行われることを許可します。ポリシーがアクションを許可していない場合は、Java Security Manager はそのアクションを拒否します。セキュリティポリシーは、コードの場所またはコードのシグニチャー、またはサブジェクトのプリンシパルに基づいてパーミッションを定義できます。
使用する Java Security Manager とセキュリティーポリシーは、Java 仮想マシンのオプション java.security.managerjava.security.policy を使用して設定されます。
基本情報

セキュリティーポリシーのエントリーは、policytool に関係のある以下の設定要素から構成されています。

CodeBase
コードの元の URL の場所 (ホストとドメインの情報以外)。オプションのパラメーターです。
SignedBy
コードを署名するためにプライベートキーが使用された署名者を参照するキーストアで使用されたエイリアス。これは、単一値またはカンマ区切りの値リストになります。オプションのパラメーターです。省略された場合は、署名の有無に関わらず Java Security Manager に影響はありません。
Principals
principal_typeprincipal_name のペアのリスト。これは、実行スレッドのプリンシパルセット内に存在する必要があります。Principals エントリーは任意です。このエントリーを省略すると、実行スレッドのプリンシパルによる Java Security Manager への影響はありません。
Permissions
パーミッションは、コードに与えられるアクセス権です。多くのパーミッションは、Java Enterprise Edition 6 (Java EE 6) 仕様の一部として提供されます。本書では、JBoss EAP 6 で提供される追加のパーミッションについてのみ説明します。

重要

実装によって設定が異なる可能性があるため、セキュリティーポリシーの設定方法についてコンテナーのドキュメントを参照してください。

25.7.3. Java Security Manager ポリシーの記述

はじめに

ほとんどの JDK および JRE ディストリビューションには、Java Security Manager セキュリティーポリシーを作成および編集するための policytool という名前のアプリケーションが含まれます。policytool の詳細については、http://docs.oracle.com/javase/6/docs/technotes/tools/ を参照してください。

手順25.1 新しい Java Security Manager ポリシーの設定

  1. policytool を起動します。

    policytool ツールを次のいずれかの方法で起動します。
    • Red Hat Enterprise Linux

      GUI またはコマンドプロンプトで、/usr/bin/policytool を実行します。
    • Microsoft Windows Server

      スタートメニューまたは Java インストールの bin\ から、policytool.exe を実行します。場所は異なることがあります。
  2. ポリシーを作成します。

    ポリシーを作成するには、Add Policy Entry を選択します。必要なパラメーターを追加し、Done をクリックします。
  3. 既存のポリシーを編集します。

    既存のポリシーのリストからポリシーを選択し、Edit Policy Entry ボタンを選択します。必要に応じてパラメーターを編集します。
  4. 既存のポリシーを削除します。

    既存のポリシーのリストからポリシーを選択し、Remove Policy Entry ボタンを選択します。

25.7.4. Java Security Manager 内での Red Hat JBoss Data Grid Server の実行

Java Security Manager ポリシーを指定するには、ブートストラッププロセス中にサーバーインスタンスに渡す Java オプションを編集する必要があります。このため、standalone.sh スクリプトにパラメーターをオプションとして渡すことはできません。次の手順を実行すると、インスタンスが Java Security Manager ポリシー内で実行されるように設定できます。

前提条件

  • この手順を実行する前に、Java Development Kit (JDK) に含まれる policytool コマンドを使用してセキュリティーポリシーを記述する必要があります。この手順では、ポリシーが JDG_HOME/bin/server.policy にあることを前提としています。この代わりに、テキストエディターを使用してセキュリティーポリシーを書き、JDG_HOME/bin/server.policy として手作業で保存することもできます。
  • 設定ファイルを編集する前に、JBoss Data Grid サーバーを完全に停止する必要があります。
環境内の各物理ホストまたはインスタンスに対して次の手順を実行してください。

手順25.2 JBoss Data Grid Server の Security Manager の設定

  1. 設定ファイルを開きます。

    編集のために設定ファイルを開きます。このファイルの場所は OS で以下のように一覧表示されます。これはサーバーを起動するために使用される実行可能ファイルではなく、ランタイムパラメーターを含む設定ファイルであることに注意してください。
    • Linux の場合: JDG_HOME/bin/standalone.conf
    • Windows の場合: JDG_HOME\bin\standalone.conf.bat
  2. ファイルに Java オプションを追加します。

    確実に Java オプションが使用されるようにするため、以下で始まるコードブロックに Java オプションを追加します。
    if [ "x$JAVA_OPTS" = "x" ]; then
    
    Copy to Clipboard Toggle word wrap
    -Djava.security.policy の値を編集して、セキュリティーポリシーの場所を指定できます。改行を入れずに 1 行で指定する必要があります。-Djava.security.policy プロパティーを設定するときに == を使用して指定すると、セキュリティーマネージャーは指定されたポリシーファイルのみを使用します。= を使用して指定すると、セキュリティーマネージャーは指定されたポリシーと JAVA_HOME/lib/security/java.securitypolicy.url セクションに指定されたポリシーを一緒に使用します。

    重要

    JBoss Enterprise Application Platform 6.2.2 およびそれ以降のリリースでは、システムプロパティー jboss.modules.policy-permissionstrue に設定する必要があります。

    例25.5 standalone.conf

    JAVA_OPTS="$JAVA_OPTS -Djava.security.manager -Djava.security.policy==$PWD/server.policy -Djboss.home.dir=$JBOSS_HOME -Djboss.modules.policy-permissions=true"
    Copy to Clipboard Toggle word wrap

    例25.6 standalone.conf.bat

    set "JAVA_OPTS=%JAVA_OPTS% -Djava.security.manager -Djava.security.policy==\path\to\server.policy -Djboss.home.dir=%JBOSS_HOME% -Djboss.modules.policy-permissions=true"
    Copy to Clipboard Toggle word wrap
  3. サーバーを起動します。

    サーバーを通常どおりに起動します。
トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2025 Red Hat