オプションのセキュリティ機能の設定
MATLAB® ジョブ スケジューラ クラスターのオプションのセキュリティ機能を設定します。たとえば、次のことが可能です。
異なるマシン上のプロセス間の信頼を確立するために共有シークレット ファイルを作成する。
MATLAB ジョブ スケジューラ、クライアントおよびワーカーの間に暗号化通信を確立する。
MATLAB クライアントが MATLAB ジョブ スケジューラ クラスターに接続できるかどうかを検証するようにクラスターを構成する。
特権コマンドの使用は、指定したユーザーのみに制限する。
会社の LDAP (Lightweight Directory Access Protocol) サーバーを使用してユーザー資格情報を認証するようにクラスターを構成する。
クラスター ノードで mjs サービスを開始する前に、セキュリティ レベルを設定します。手順については、MATLAB ジョブ スケジューラ クラスターのセキュリティの設定を参照してください。
以下の手順において、matlabroot はインストールされている MATLAB Parallel Server™ ソフトウェアの場所を示します。以下の説明でこの文字列が使用されていたら、パスをご使用の場所に置き換えてください。
mjs_def ファイルは、 にあります (Linux® の場合は matlabroot/toolbox/parallel/binmjs_def.sh、Windows® の場合は mjs_def.bat)。mjs_def ファイル内のパラメーターの詳細については、MATLAB ジョブ スケジューラのスタートアップ パラメーターの定義を参照してください。
共有シークレット ファイルの作成
シークレット ファイルにより、異なるマシン上のプロセス間で信頼が確立されます。
このファイルを作成するには、次のいずれかのスクリプトを実行します。
(Linux オペレーティング システム)matlabroot/toolbox/parallel/bin/createSharedSecret(Windows オペレーティング システム)matlabroot\toolbox\parallel\bin\createSharedSecret.bat
mjs_def ファイル内の SHARED_SECRET_FILE パラメーターにシークレット ファイルの場所を指定して、MATLAB ジョブ スケジューラがその場所を見つけられるようにします。共有シークレット ファイルには機密データが含まれ、mjs プロセスを開始するユーザーには読み取り専用にする必要があります。
共有ファイル システムでは、すべてのノードで同じシークレット ファイルを指定できます。ノードは同じ
mjs_defファイルを共有することもできます。非共有ファイル システムでは、提供されたスクリプトによりシークレット ファイルを作成してから、そのファイルを各ノードにコピーして、各ノードの
mjs_defファイルでそのシークレット ファイルの場所を確実に示します。
暗号化通信の設定
MATLAB ジョブ スケジューラ、クライアントおよびワーカーの間に暗号化通信を設定するには、mjs_def ファイルで以下の値を設定します。
USE_SECURE_COMMUNICATION = trueALL_SERVER_SOCKETS_IN_CLUSTER = true
暗号化通信は TLSv1.3 を使用して提供されます。
R2023a より前: 暗号化通信は TLSv1.2 を使用して SSLSocket によって提供されます。
メモ
R2023a より前: mjs_def ファイルで ALL_SERVER_SOCKETS_IN_CLUSTER を false として指定した場合、mjs サービスは MATLAB ジョブ スケジューラとワーカーの間にのみ暗号化通信を確立します。ワーカー間の通信が暗号化されることはありません。ワーカーとクライアント間の通信が別のワーカー経由で送信された場合、そのワーカーとクライアント間の通信のみが暗号化されます。
また、ジョブ マネージャーまたはワーカーを実行するすべてのホストで、mjs_def ファイルの SHARED_SECRET_FILE パラメーターで指定された場所にシークレット ファイルがある必要があります。シークレット ファイルを作成する場合は、共有シークレット ファイルの作成を参照してください。
メモ
MATLAB ジョブ スケジューラのセキュリティ レベル 3 を使用する場合は、暗号化通信が必要です。
MATLAB クライアント検証の設定
MATLAB クライアントが MATLAB ジョブ スケジューラ クラスターに接続できるかどうかを検証します。
クラスターと同じシークレット ファイルを使用して証明書ファイルを作成する必要があります。ジョブ マネージャーの開始時、および認証済みクラスター プロファイルを作成する場合に証明書を使用します。シークレット ファイルを作成する場合は、共有シークレット ファイルの作成を参照してください。
MATLAB クライアントと MATLAB ジョブ スケジューラ クラスター間の接続は、相互 TLS (mTLS) を使用して検証されます。
MATLAB ジョブ スケジューラ クラスターの構成
mjs_def ファイルで REQUIRE_CLIENT_CERTIFICATE を true に設定します。
次のフォルダーのいずれかに移動します。
matlabroot\toolbox\parallel\bin(Windows オペレーティング システム)matlabroot/toolbox/parallel/bin(Linux オペレーティング システム)
シークレット ファイルの場所がある場合は、generateCerticate コマンドを使用して証明書を生成します。シークレット ファイルのパスおよび証明書の名前を指定します。
generateCertificate -secretfile path_to_shared_secret_file/secret -certfile mjsClusterClientCert
ジョブ マネージャーを開始するには、-certificate フラグを使用して証明書のファイル パスを startjobmanager コマンドに指定します。
startjobmanager -certificate mjsClusterClientCert
認証済みクラスター プロファイルの作成
MATLAB クライアントには、ジョブ マネージャーに接続するために正しい証明書が含まれたクラスター プロファイルも必要です。
認証済みクラスター プロファイルを作成するには、createProfile コマンドを使用します。クラスターの名前とホスト名および証明書ファイルのパスを指定します。たとえば、クラスター clusterName、ホスト名 mjsHost、および証明書ファイル mjsClusterClientCert のクラスター プロファイルを作成します。コマンドにより、拡張子が .mlsettings のクラスター プロファイル ファイル clusterName が作成されます。このファイルには、MATLAB クライアントがジョブ マネージャーに接続するために必要な証明書が含まれます。
createProfile -name clusterName -host mjsHost -certfile mjsClusterClientCert
証明書および関連付けられたクラスター プロファイルにより、ジョブ マネージャーに接続できるユーザーが制御されます。このデータは安全に保存しなければならず、セキュリティで保護されたチャネルを介してクラスター プロファイルをユーザーに配布する必要があります。[クラスター プロファイル マネージャー] を使用して、プロファイルを MATLAB クライアントにインポートできます。詳細については、クラスターの検出とクラスター プロファイルの使用 (Parallel Computing Toolbox)を参照してください。
クラスター コマンド検証の設定
MATLAB ジョブ スケジューラ クラスター管理者は、MATLAB ジョブ スケジューラ クラスターのコマンドの使用を、指定したユーザーのみに制限できます。コマンドの使用を制限して、未承認のユーザーが "特権" コマンドをクラスターに送信できないようにします。特権コマンドとは、クラスターの状態を変更できるコマンドのことです。
特権コマンド
この表は、検証が必要な特権コマンドの一覧です。これらのコマンドの実行可能ファイルは次のフォルダーにあります。
matlabroot\toolbox\parallel\bin(Windows オペレーティング システム)matlabroot/toolbox/parallel/bin(Linux オペレーティング システム)
| コマンド | 説明 |
|---|---|
| |
|
|
| |
ジョブ マネージャー プロセスおよび関連するジョブ マネージャー ルックアップ プロセスを | |
| |
ジョブ マネージャー プロセスおよび関連するジョブ マネージャー ルックアップ プロセスを | |
| |
|
|
| MATLAB ワーカーを、指定したジョブ マネージャーに登録します。 |
メモ
MATLAB ジョブ スケジューラをセキュリティ レベル 3 に設定した場合は、既定でコマンド検証が有効になります。
mjs_def ファイルでのコマンド検証の設定
mjs サービスがクラスターで特権コマンドを実行する前に検証を必須とするには、mjs_def ファイルで REQUIRE_SCRIPT_VERIFICATION パラメーターを true に設定します。
また、SHARED_SECRET_FILE パラメーターを、コマンド送信先の mjs プロセスで使用されるシークレット ファイルの場所に設定する必要もあります。
以下のいずれかのオプションを使用してシークレット ファイルを指定します。
コマンド ラインでシークレット ファイルを指定する。特権コマンドをクラスターに送信する際にシークレット ファイルのパスを指定できます。
たとえば、クラスターでワーカーを停止するには、Windows または Linux コマンド プロンプトで次のコマンドを入力します。
stopworker -name worker1 -secretfile path_to_shared_secret_file/secret
mjs_defファイルにパスを指定する。シークレット ファイルの場所と同じクラスター ホストを使用している場合は、mjs_defファイルにシークレット ファイルのパスを指定できます。シークレット ファイルへの読み取りアクセス権をもつユーザーのみがクラスターで特権コマンドを実行できます。
LDAP サーバー認証の設定
会社の LDAP (Lightweight Directory Access Protocol) サーバーを使用してユーザー資格情報を認証するように MATLAB ジョブ スケジューラを構成します。詳細については、MATLAB ジョブ スケジューラの LDAP サーバー認証の構成を参照してください。