Sun Java System Application Server Enterprise Edition 8.1 2005Q2 管理ガイド

セキュリティーの概要

セキュリティーとはデータの保護に関することであり、ストレージ内または伝送中のデータへの不正アクセスやそうしたデータの破損をどのようにして防止するか、ということです。Application Server には、J2EE 標準に基づく動的で拡張可能なセキュリティーアーキテクチャーがあります。標準実装されているセキュリティー機能には、暗号化、認証と承認、および公開鍵インフラストラクチャーがあります。Application Server は Java セキュリティーモデルをベースに構築され、アプリケーションが安全に動作できるサンドボックスを使用するため、システムやユーザーにリスクが及ぶ可能性がありません。説明する項目は次のとおりです。

アプリケーションおよびシステムセキュリティーについて

概して、2 種類のアプリケーションセキュリティーがあります。

アプリケーションによるセキュリティーのほかに、Application Server システムのアプリケーション全体に影響するシステムセキュリティーもあります。

プログラムによるセキュリティーはアプリケーション開発者により制御されるため、このマニュアルでは説明していません。宣言によるセキュリティーについては、このマニュアルである程度説明しています。このマニュアルは、主にシステム管理者を対象としているため、システムセキュリティーを中心に説明しています。

セキュリティー管理用ツール

Application Server には次のセキュリティー管理用ツールがあります。

Java 2 プラットフォーム、J2SE (Java 2 Standard Edition) には、次の 2 つのセキュリティー管理用ツールがあります。

keytoolpolicytool、およびその他の Java セキュリティーツールの使用方法の詳細については、http://java.sun.com/j2se/1.4.2/docs/tooldocs/tools.html#security の「Java 2 SDK Tools and Utilities」を参照してください。

Enterprise Edition では、NSS (Network Security Services) を実装した 2 つのセキュリティー管理ツールも利用可能です。NSS の詳細については、http://www.mozilla.org/projects/security/pki/nss/ を参照してください。それらのセキュリティー管理ツールは次のとおりです。

certutilpk12util、およびその他の NSS セキュリティーツールの使用方法の詳細については、http://www.mozilla.org/projects/security/pki/nss/tools の「NSS Security Tools」を参照してください。

パスワードのセキュリティー管理

Application Server のこのリリースでは、特定のドメインの仕様が収められるファイル domain.xml 内に、Sun Java System Message Queue ブローカのパスワードが、あらかじめ平文で格納されています。このパスワードを収めた domain.xml ファイルの要素は、jms-host 要素の admin-password 属性です。このパスワードは変更不可能なので、インストールの際、セキュリティーに重大な影響は与えません。

ただし、管理コンソールを使用してユーザーやリソースを追加し、そのユーザーやリソースにパスワードを割り当ててください。このパスワードの中には、たとえばデータベースにアクセスするためのパスワードなど、平文で domain.xml ファイルに記述されているものがあります。このようなパスワードを平文で domain.xml ファイルに保持すると、セキュリティー上の危険を引き起こす可能性があります。次の手順を実行すると、admin-password 属性やデータベースパスワードを含む domain.xml のすべてのパスワードを暗号化できます。

Proceduredomain.xml 内のパスワードを暗号化する

手順
  1. domain.xml ファイルが格納されているディレクトリ (デフォルトでは domain-dir/config) から、次の asadmin コマンドを実行します。


    asadmin create-password-alias --user admin alias-name
    

    次に例を示します。


    asadmin create-password-alias --user admin jms-password

    パスワードプロンプトが表示されます。この場合は admin です。詳細については、create-password-aliaslist-password-aliasesdelete-password-alias コマンドのマニュアルページを参照してください。

  2. domain.xml のパスワードの削除および置き換えを行います。これは、asadmin set コマンドを使用して行います。このような目的での set コマンドの使用例は、次のとおりです。


    asadmin set --user admin server.jms-service.jms-host.
    default_JMS_host.admin-password=${ALIAS=jms-password}
  3. 該当するドメインの Application Server を再起動します。

エンコード化されたパスワードを含むファイルの保護

ファイルの中にはエンコード化されたパスワードを含むものがあり、ファイルシステムのアクセス権を使用しての保護が必要になります。これらのファイルには次のものが含まれます。

Procedureマスターパスワードを変更する

マスターパスワード (MP) とは、全体で共有するパスワードです。これを認証に使用したり、ネットワークを介して送信したりすることは決してありません。このパスワードはセキュリティー全体の要なので、ユーザーが必要に応じて手動で入力したり、またはファイルに隠蔽したりすることができます。これは、システムで最高の機密データです。ユーザーは、このファイルを削除することで、強制的に MP の入力を要求できます。マスターパスワードが変更されると、マスターパスワードキーストアに再保存されます。

手順
  1. ドメインの Application Server を停止します。新旧のパスワードの入力を促す asadmin change-master-password コマンドを使用して、依存するすべての項目を再暗号化してください。次に例を示します。


    asadmin change-master-password>
    Please enter the master password>
    Please enter the new master password>
    Please enter the the new master password again>
  2. Application Server を再起動します。


    注意 – 注意 –

    この時点で、実行中のサーバーインスタンスを開始してはいけません。対応するノードエージェントの SMP が変更されるまでは、決して実行中のサーバーインスタンスを再起動しないでください。SMP が変更される前にサーバーインスタンスを再起動すると、起動に失敗します。


  3. 各ノードエージェントおよび関連するサーバーを 1 つずつ停止します。asadmin change-master-password コマンドをもう一度実行してから、ノードエージェントおよび関連するサーバーを再起動してください。

  4. すべてのノードエージェントで対応が終了するまで、次のノードエージェントで同様の作業を継続します。このようにして、継続的な変更作業が完了します。

Procedure管理パスワードを変更する

管理パスワードの暗号化については、「パスワードのセキュリティー管理」を参照してください。管理パスワードの暗号化は強く推奨されています。管理パスワードを暗号化する前に変更する場合は、asadmin set コマンドを使用してください。このような目的での set コマンドの使用例は、次のとおりです。


asadmin set --user admin 
server.jms-service.jms-host.default_JMS_host.admin-password=new_pwd

管理コンソールを使って管理パスワードを変更することもできます。その手順を次に示します。

手順
  1. 管理コンソールのツリーコンポーネントで、「設定」ノードを展開します。

  2. 設定するインスタンスを選択します。

    • 特定のインスタンスを設定するには、そのインスタンスの設定ノードを展開します。たとえば、デフォルトインスタンス server の場合は、server-config ノードを展開します。

    • すべてのインスタンスのデフォルト値を設定するには、default-config ノードを展開します。

  3. 「セキュリティー」ノードを展開します。

  4. 「レルム」ノードを展開します。

  5. admin-realm ノードを選択します。

  6. 「レルムを編集」ページで、「ユーザーを管理」ボタンをクリックします。

  7. admin という名前のユーザーを選択します。

  8. 新しいパスワードを入力し、そのパスワードをもう一度入力します。

  9. 「保存」をクリックして保存するか、「閉じる」をクリックして保存しないで閉じます。

セキュリティーの責任の割り当て

セキュリティーの責任は次のように割り当てます。

アプリケーション開発者

アプリケーション開発者は次の責任を負います。

アプリケーション開発者は、deploytool などのツールを使用してアプリケーション配備記述子を編集できます。これらのセキュリティータスクの詳細については、『J2EE 1.4 Tutorial』の「Security」の章 (http://java.sun.com/j2ee/1.4/docs/tutorial/doc/index.html) を参照してください。

アプリケーション配備担当者

アプリケーション配備担当者は次の責任を負います。

アプリケーション配備担当者は、deploytool などのツールを使用してアプリケーション配備記述子を編集できます。これらのセキュリティータスクの詳細については、『J2EE 1.4 Tutorial』の「Security」の章 (http://java.sun.com/j2ee/1.4/docs/tutorial/doc/index.html) を参照してください。

システム管理者

システム管理者は次の責任を負います。

システム管理者は、管理コンソールを使ってサーバーのセキュリティー設定を管理し、certutil を使って証明書を管理します。このマニュアルは主にシステム管理者を対象にしています。