プロセッサ・セキュリティ
EDQ, では、EDQプロセッサのセキュリティ・レベルを向上するために使用可能なセキュリティ制御をオプションで使用できるようになりました(スクリプト・プロセッサのセキュアでない使用をブロックするなど)。下位互換性を確保するため、プロセッサ・セキュリティはデフォルトでオフになっていますが、次の行を[EDQローカル・ホーム]/director.propertiesに追加することで有効にできます。
processor.security= off/low/medium/high
プロセッサ・セキュリティ・オプションは、Javaセキュリティ・マネージャの使用と連携して動作します。Javaセキュリティ・マネージャの使用は、サーバーで指定されたJavaオプション(-Djava.security.manager)によって制御されます。これは、EDQサーバーの起動グループのJavaオプションを設定するsetStartupEnv.shスクリプトで指定されるため、WebLogic ServerにEDQを新規インストールすると、デフォルトで有効になります。他のインストールでは、手動で指定する必要があります。
次に、様々なprocessor.security設定ごとのセキュリティ・レベルをまとめます。
-
オフ:
セキュリティ制限は適用されません。
-
低
次の制限が適用されます。
-
プロセスで直接使用するためのツール・パレットからのスクリプト・プロセッサの使用は、システムでJavaセキュリティ・マネージャが実行されていない場合、無効になります。
-
システムでJavaセキュリティ・マネージャが実行されている場合、スクリプト・プロセッサは使用できますが、データ処理に制限された、デフォルト権限のごく一部のみが付与されます。スクリプトは、アプリケーションの外部でネットワーク接続を行ったり、コマンドを発行することができません。
注意:
jarにパッケージ化されたJavaプロセッサおよびスクリプトは、制限なしで実行されますが、jarにpermissions要素が含まれる場合、それらの権限のみがプロセッサに付与されます。
-
-
中:
Lowと同じ制限が適用されますが、jarにパッケージ化されたJavaプロセッサおよびスクリプトには、非常に制限された権限セットが付与されます。プロセッサに必要な追加の権限は、permissions要素にリストする必要があります。
この違いを説明すると、'low'レベルでは、すべての権限が付与され、permissions要素で権限を制限するのに対し、'medium'レベルでは、権限は制限され、permissions要素で権限を拡張するということになります。どちらのレベルでも、permissions要素を持つプロセッサは、まったく同じ権限セットで実行されます。
-
高:
'medium'と同じ制限が適用されますが、Oracle EDQ証明書または承認済パートナに付与された証明書によって署名されたプロセッサのみが、プロセッサに追加の権限を付与するpermissions要素を含むことができます。
未署名のjarにpermissions要素が検出されると、そのjarのプロセッサは拒否され、プロセッサ・パレットに表示されません。
デフォルトの権限
プロセッサ・セキュリティ・セットがmediumまたはhighに設定された状態で実行されると、プロセッサに付与された権限により、次のシステム・プロパティを読み取ることができます。
-
java.version
-
java.vendor
-
java.vendor.url
-
java.class.version
-
os.name
-
os.version
-
os.arch
-
file.separator
-
path.separator
-
line.separator
-
java.specification.version
-
java.specification.vendor
-
java.specification.name
-
java.vm.specification.version
-
java.vm.specification.vendor
-
java.vm.specification.name
-
java.vm.version
-
java.vm.vendor
-
java.vm.name
他の権限は付与されません。
スクリプトへの追加権限の付与
インストールはセキュアなスクリプトで実行できますが、ユーザーもアドホック・スクリプトで追加操作を実行できます。典型的な例は、Webサービス・コールの実行です。この追加機能を実現するため、システムでは、アドホック・スクリプト用の追加権限がリストされた構成ファイルがサポートされます。
追加権限ファイルは、ローカル構成ディレクトリのsecurity/permissionsフォルダにあります。スクリプト・プロセッサでは、ファイル名はscriptprocessor.xmlで、スクリプト一致ガジェットでは、ファイル名はscriptgadget.xmlです。ファイルのXML形式は次のとおりです。
<permissions> <permission type="permissionclass" [name="targetname" [action="action"]]/> … </permissions>
権限クラスは、任意のJava権限クラスの完全名です。name属性は、権限にターゲット名が含まれる場合に指定します(クラスには2つまたは3つの引数のコンストラクタがあります)。actionは、権限にアクションが含まれる場合に指定します(クラスには3つの引数のコンストラクタがあります)。
たとえば、ファイル/etc/hostsを読み取る権限を付与するには、次のようにします。
<permission type="java.io.FilePermssion" name="file:/etc/hosts" action="read"/>
システム・プロパティは、${…}置換を使用してnameに含めることができます。標準のシステム・プロパティとともに、次の追加プロパティを使用できます。
-
rootdir: Webアプリケーションのルートの場所。
-
webinfdir: WebアプリケーションのWEB-INFディレクトリの場所。
-
config.path: 構成ディレクトリのパス。そのnameに${config.path}を使用するpermissionsエントリは、パス内の各場所のエントリで置換されます。