MATLAB ジョブ スケジューラ クラスターのセキュリティの設定
セキュリティ レベルの設定
クラスター ノード上の mjs サービスの開始前に、mjs_def
ファイルの SECURITY_LEVEL
パラメーターを使用して、MATLAB® ジョブ スケジューラのセキュリティ レベルを設定します。mjs_def
ファイルは、許可される値を示し、それぞれのセキュリティ レベルについて簡単に説明します。
次の表では、MATLAB ジョブ スケジューラとそのジョブへのアクセスに使用できるセキュリティ レベルについて説明しています。
セキュリティ レベル | 説明 | ユーザー要件 |
---|---|---|
0 | セキュリティは設定されません。
|
|
1 | ジョブはその投入ユーザーにより識別されます。
|
|
2 | ジョブ マネージャー (MATLAB ジョブ スケジューラ) はジョブをパスワードで保護します。
|
|
3 | レベル 2 のセキュリティに加えて、タスクがワーカー マシン上の投入ユーザーの権限で実行されます。
|
|
ジョブ マネージャーとワーカーは、同一のセキュリティ レベルで実行しなければなりません。セキュリティ レベルが非常に低い状態で実行されているワーカーは、ジョブ マネージャーによって信頼されないため、ジョブ マネージャーへの登録が失敗します。
ローカル、MATLAB ジョブ スケジューラおよびネットワークのパスワード
セキュリティ レベルが 0 より大きい場合、MATLAB ジョブ スケジューラを起動すると (startjobmanager
コマンドなどによる)、このクラスターに対して admin
という名前のクラスター ユーザー アカウントが作成され、この新しいアカウントのパスワードを入力するように求められます。クラスターの admin
アカウントには、クラスターおよびクラスターの全ジョブへのアクセスに必要なすべての権限があります。
いずれのセキュリティ レベルでも、MATLAB ジョブ スケジューラはそれぞれのジョブを、そのジョブの投入ユーザーにより識別します。そのため、ユーザーが MATLAB ジョブ スケジューラまたはジョブにアクセスするときはいつでも、MATLAB ジョブ スケジューラはそのユーザーが誰であるかを認識しなければなりません。
セキュリティ レベル 0 では、MATLAB ジョブ スケジューラおよびジョブ オブジェクトの UserName
プロパティが、そのジョブを作成したユーザーのログイン名に設定されます。この設定はいつでも変更できます。それより上のすべてのセキュリティ レベルでは、MATLAB ジョブ スケジューラへの初回アクセス時にユーザー名を求めるダイアログ ボックスが開きます。セキュリティ レベルが 2 または 3 の場合、パスワードも入力しなければなりません。MATLAB ジョブ スケジューラに入力するユーザー名とパスワードは、セキュリティ レベル 3 を使用している場合に "のみ" ネットワークのユーザー名およびパスワードと一致させる必要があります。それ以外の場合は、MATLAB ジョブ スケジューラで一意の新しいユーザー名とパスワードを作成できます。利便性を高めるため、ジョブにアクセスするたびにユーザー名とパスワードを入力する必要がないようにローカル コンピューター上にそれらを保存する期間を選択できます。
パスワードの変更および MATLAB ジョブ スケジューラからのログアウトの詳細については、changePassword
(Parallel Computing Toolbox) および logout
(Parallel Computing Toolbox) を参照してください。
ジョブおよびタスクへのユーザー アクセスの承認
この例では、セキュリティ レベル 2 または 3 の MATLAB ジョブ スケジューラ クラスター上のジョブにアクセスできるようにユーザーを承認する方法を説明します。セキュリティ レベル 2 および 3 の場合、ジョブを作成して MATLAB ジョブ スケジューラ クラスターに投入すると、ジョブおよびタスクは投入ユーザーによって識別されます。これらのジョブおよびタスクはパスワードで保護されるため、他の未承認のユーザーはそのジョブにアクセスできません。
parcluster
でクラスター プロファイル 'MyMJSCluster'
を使用してクラスター オブジェクトを作成します。'MyMJSCluster'
をクラスター プロファイルの名前に置き換えます。次に、batch
を使用して、ジョブを作成してクラスターに投入します。
c = parcluster('MyMJSCluster');
j = batch(c,@rand,1,{2});
ジョブの AuthorizedUsers
を使用すると、ジョブやタスクへのユーザー アクセスを承認できます。指定するユーザーはそれぞれ、以前に MATLAB ジョブ スケジューラ クラスターと交信していなければなりません。ユーザー "user1"
および "user2"
に対してジョブへのアクセスを承認するには、ジョブの AuthorizedUsers
を ["user1","user2"]
に設定します。
j.AuthorizedUsers = ["user1","user2"];
セキュリティで保護された通信の設定
MATLAB ジョブ スケジューラ、クライアントおよびワーカーの間にセキュリティで保護された暗号化通信を確立するには、
USE_SECURE_COMMUNICATION = true
ALL_SERVER_SOCKETS_IN_CLUSTER = true
(既定)
を mjs_def
ファイルに設定します。保護された暗号化通信は SSLSocket (TLSv1.2 のみを使用) によって提供されます。
メモ
mjs_def
ファイルで ALL_SERVER_SOCKETS_IN_CLUSTER = false
の場合、MATLAB ジョブ スケジューラとワーカーの間にのみ、セキュリティで保護された暗号化通信が確立されます。ワーカー間の通信が暗号化されることはありません。ワーカーとクライアント間の通信が別のワーカー経由でルーティングされることがあり、その場合は、ワーカーとクライアント間の通信のみが暗号化されます。
また、mjs_def
ファイルで SHARED_SECRET_FILE
パラメーターにも値を指定し、MATLAB ジョブ スケジューラからこのファイルの場所が特定されるようにしなければなりません。このファイルを作成するには、次のいずれかのスクリプトを実行します。
(UNIX)matlabroot
/toolbox/parallel/bin/createSharedSecret
(Windows)matlabroot
\toolbox\parallel\bin\createSharedSecret.bat
シークレット ファイルにより、異なるマシン上のプロセス間で信頼が確立されます。
共有ファイル システムでは、すべてのノードで同じシークレット ファイルをポイントでき、さらに同じ
mjs_def
ファイルを共有することもできます。非共有ファイル システムでは、提供されたスクリプトによりシークレット ファイルを作成してから、そのファイルを各ノードにコピーして、各ノードの
mjs_def
ファイルで特定のシークレット ファイルのある場所を確実に示します。
メモ
MATLAB ジョブ スケジューラのセキュリティ レベル 3 を使用する場合は、セキュリティで保護された通信が必要です。