设置可选安全功能
为 MATLAB® 作业调度器集群设置可选的安全功能。例如,您可以:
创建一个共享密钥文件,以在不同计算机上的进程之间建立信任。
在 MATLAB 作业调度器、客户端和工作单元之间建立加密通信。
配置集群以验证 MATLAB 客户端是否可以连接到您的 MATLAB 作业调度器集群。
将特权命令的使用限制为指定用户。
使用您公司的轻量级目录访问协议 (LDAP) 服务器配置集群以验证用户凭据。
在集群节点上启动 mjs 服务之前,请先设置安全级别。有关说明,请参阅设置 MATLAB 作业调度器集群安全性。
在以下说明中,matlabroot 指的是您安装的 MATLAB Parallel Server™ 软件的位置。如果在随后的说明中看到此术语的使用,请将其替换为您位置的路径。
您可以在 中找到 matlabroot/toolbox/parallel/binmjs_def 文件,用于 Linux® (mjs_def.sh) 和 Windows® (mjs_def.bat)。要了解 mjs_def 文件中的参数,请参阅 定义 MATLAB 作业调度器启动参数。
创建共享秘密文件
密钥文件在不同计算机上的进程之间建立信任。
要创建此文件,请运行以下脚本之一:
Linux 操作系统上的
matlabroot/toolbox/parallel/bin/createSharedSecretWindows 操作系统上的
matlabroot\toolbox\parallel\bin\createSharedSecret.bat
在 SHARED_SECRET_FILE 文件中的 mjs_def 参数中指定密钥文件的位置,以便 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 之前的版本中: 如果在 ALL_SERVER_SOCKETS_IN_CLUSTER 文件中将 false 指定为 mjs_def,则 mjs 服务仅在 MATLAB 作业调度器和工作单元之间建立加密通信。工作单元之间的通信从未加密。如果一个工作单元与客户端之间的通信是通过另一个工作单元发送的,则只有该工作单元与客户端之间的通信是加密的。
此外,运行作业管理器或工作单元的所有主机都需要在 SHARED_SECRET_FILE 文件中的 mjs_def 参数指定的位置放置密钥文件。要创建密钥文件,请参阅创建共享秘密文件。
注意
使用 MATLAB 作业调度器安全级别 3 时需要进行加密通信。
设置 MATLAB 客户端验证
验证 MATLAB 客户端是否可以连接到您的 MATLAB 作业调度器集群。
您必须使用与集群相同的密钥文件来创建证书文件。在启动作业管理器时使用该证书并创建经过认证的集群配置文件。要创建密钥文件,请参阅创建共享秘密文件。
MATLAB 客户端和 MATLAB 作业调度器集群之间的连接使用相互 TLS (mTLS) 进行验证。
配置 MATLAB 作业调度器集群
在 mjs_def 文件中,将 REQUIRE_CLIENT_CERTIFICATE 设置为 true。
导航到以下某个文件夹:
Windows 操作系统上的
matlabroot\toolbox\parallel\binLinux 操作系统上的
matlabroot/toolbox/parallel/bin
当您有了密钥文件的位置后,请使用 generateCerticate 命令来生成证书。指定密钥文件的路径和证书的名称。
generateCertificate -secretfile path_to_shared_secret_file/secret -certfile mjsClusterClientCert
要启动作业管理器,请使用 -certificate 标志向 startjobmanager 命令指定证书的文件路径。
startjobmanager -certificate mjsClusterClientCert
创建认证集群配置文件
MATLAB 客户端还必须具有带有正确证书的集群配置文件文件才能连接到作业管理器。
要创建经过认证的集群配置文件,请使用 createProfile 命令。指定集群的名称和主机名以及证书文件的路径。例如,为集群 clusterName、主机名 mjsHost 和证书文件 mjsClusterClientCert 创建集群配置文件。该命令创建一个扩展名为 clusterName 集群配置文件文件 .mlsettings。该文件包含 MATLAB 客户端连接到作业管理器所需的证书。
createProfile -name clusterName -host mjsHost -certfile mjsClusterClientCert
证书和相关的集群配置文件控制哪些用户可以连接到作业管理器。您必须安全地存储这些数据并通过安全通道将集群配置文件分发给用户。您可以使用集群配置文件管理器将配置文件导入 MATLAB 客户端。有关详细信息,请参阅发现集群并使用集群配置文件 (Parallel Computing Toolbox)。
设置集群命令验证
MATLAB 作业调度器集群管理员可以将 MATLAB 作业调度器集群命令的使用限制为仅限指定用户。限制命令的使用,以防止未经授权的用户向集群发送特权命令。特权命令是可以改变集群状态的命令。
特权命令
下表列出了需要验证的特权命令。您可以在以下文件夹中找到这些命令的可执行文件:
Windows 操作系统上的
matlabroot\toolbox\parallel\binLinux 操作系统上的
matlabroot/toolbox/parallel/bin
| 命令 | 描述 |
|---|---|
暂停在 | |
| 确定或更新 |
恢复在 | |
在 | |
在 | |
停止 | |
停止 | |
| 设置或获取 |
| 将 MATLAB 工作单元注册到指定的作业管理器。 |
注意
当您将 MATLAB 作业调度器设置为安全级别 3 时,命令验证默认启用。
在 mjs_def 文件中设置命令验证
要在 mjs 服务在集群上执行特权命令之前要求验证,请在 REQUIRE_SCRIPT_VERIFICATION 文件中将 true 参数设置为 mjs_def。
您还必须将 SHARED_SECRET_FILE 参数设置为您尝试向其发送命令的 mjs 进程使用的密钥文件的位置。
使用以下选项之一指定密钥文件。
在命令行提供一个密钥文件。当您向集群发送特权命令时,您可以提供密钥文件的路径。
例如,要停止集群中的某个工作单元,请在 Windows 或 Linux 命令提示符中输入此命令:
stopworker -name worker1 -secretfile path_to_shared_secret_file/secret
在
mjs_def文件中提供一个路径。如果您使用与密钥文件位置相同的集群主机,则可以在mjs_def文件中提供密钥文件的路径。只有对密钥文件具有读取权限的用户才能在集群上运行特权命令。
设置 LDAP 服务器身份验证
配置 MATLAB 作业调度器以使用公司的轻量级目录访问协议 (LDAP) 服务器来验证用户凭据。有关详细信息,请参阅为 MATLAB 作业调度器配置 LDAP 服务器身份验证。