Security Groups
This page documents the configuration of security groups that will be used by your clusters.
Note: This process has been automated and is described on the deployment prerequisites page. You can refer to this page to understand the security groups that are created or if you choose to manually create the security groups yourself.
Security Groups for Login Nodes
We call instances that can connect to the Slurm cluster a login node. Login nodes can be used to submit and manage jobs. ParallelCluster can be configured to create login nodes that you must SSH into to use the cluster. If you want to allow instances like remote desktops to use the cluster directly, you must configure them as login nodes and give them network permissions to connect to the cluster instances. You must create three security groups that allow connections between the login node, the Slurm head node, and the Slurm compute nodes. You will also need to know the security group id for your external Slurmdbd instance, if you have one.
Security Group Name | Description |
---|---|
SlurmLoginNodeSG | Security group that must be attached to login nodes |
SlurmHeadNodeSG | Additional security group for head node |
SlurmComputeNodeSG | Additional security group for compute nodes |
SlurmdbdSG | (Optional) Existing Slurmdbd security group |
First create these security groups without any security group rules. The reason for this is that the security group rules reference the other security groups so the groups must all exist before any of the rules can be created. After you have created the security groups then create the rules as described below.
Slurm Login Node Security Group
The LoginNodeSG will be attached to your login nodes, such as your virtual desktops.
NOTE: To make this available to Research and Engineering Studio (RES) so that it can be automatically assigned to virtual desktops, you need to add a tag named res:Resource with a value of vdi-security-group. When you create a project, you can select this security group to be added to virtual desktops that use the project.
It needs at least the following inbound rules:
Type | Port range | Source | Description | Details |
---|---|---|---|---|
TCP | 1024-65535 | SlurmHeadNodeSG | SlurmHeadNode ephemeral | Head node can use ephemeral ports to connect to the login node |
TCP | 1024-65535 | SlurmComputeNodeSG | SlurmComputeNode ephemeral | Compute node will connect to login node using ephemeral ports to manage interactive shells |
TCP | 6000-7024 | SlurmComputeNodeSG | SlurmComputeNode X11 | Compute node can send X11 traffic to login node for GUI applications |
It needs the following outbound rules.
Type | Port range | Destination | Description | Details |
---|---|---|---|---|
TCP | 2049 | SlurmHeadNodeSG | SlurmHeadNode NFS | Mount the slurm NFS file system with binaries and config |
TCP | 6818 | SlurmComputeNodeSG | SlurmComputeNode slurmd | Connect to compute node for interactive jobs |
TCP | 6819 | SlurmHeadNodeSG | SlurmHeadNode slurmdbd | Connect to slurmdbd (accounting database) daemon on head node for versions before 3.10.0. |
TCP | 6819 | SlurmdbdSG | Slurmdbd | Connect to external Slurmdbd instance. For versions starting in 3.10.0. |
TCP | 6820-6829 | SlurmHeadNodeSG | SlurmHeadNode slurmctld | |
TCP | 6830 | SlurmHeadNodeSG | SlurmHeadNode slurmrestd |
Slurm Head Node Security Group
The SlurmHeadNodeSG will be specified in your configuration file for the slurm/SlurmCtl/AdditionalSecurityGroups parameter.
It needs at least the following inbound rules:
Type | Port range | Source | Description |
---|---|---|---|
TCP | 2049 | SlurmLoginNodeSG | SlurmLoginNode NFS |
TCP | 6819 | SlurmLoginNodeSG | SlurmLoginNode slurmdbd. If not using external Slurmdbd. |
TCP | 6820-6829 | SlurmLoginNodeSG | SlurmLoginNode slurmctld |
TCP | 6830 | SlurmLoginNodeSG | SlurmLoginNode slurmrestd |
It needs the following outbound rules.
Type | Port range | Destination | Description |
---|---|---|---|
TCP | 1024-65535 | SlurmLoginNodeSG | SlurmLoginNode ephemeral |
Slurm Compute Node Security Group
The SlurmComputeNodeSG will be specified in your configuration file for the slurm/InstanceConfig/AdditionalSecurityGroups parameter.
It needs at least the following inbound rules:
Type | Port range | Source | Description |
---|---|---|---|
TCP | 6818 | SlurmLoginNodeSG | SlurmLoginNode slurmd |
It needs the following outbound rules.
Type | Port range | Destination | Description |
---|---|---|---|
TCP | 2049 | SlurmHeadNodeSG | SlurmHeadNode NFS |
TCP | 1024-65535 | SlurmLoginNodeSG | SlurmLoginNode ephemeral |
TCP | 6000-7024 | SlurmLoginNodeSG | SlurmLoginNode X11 |
External Slurmdbd Security Group
Note: ParallelCluster 3.10.0 added support for an external Slurmdbd instance.
The login node must be able to directly access the Slurmdbd instance on port 6819 when running commands like sacctmgr
.
You must edit the inbound rules of the Slurmdbd instance's security group to allow the access.
Add the following inbound rule.
Type | Port range | Source | Description |
---|---|---|---|
TCP | 6819 | SlurmLoginNodeSG | SlurmLoginNode slurmdbd |
Security Groups for File Systems
You will usually have externally created file systems that should be mounted on the compute nodes and login nodes. You will need to define security groups for the file system network interfaces and modify the Slurm security groups to give them access to the file systems.
FSx for Lustre Security Group
We'll refer to this group as FSxLustreSG, but you can name it whatever you want. This security group can either be provided when the file system is created, or can be attached to the network interfaces of the file system after it is created.
The required security group rules are documented in the FSx documentation.
It needs the following inbound rules.
Type | Port range | Source | Description | Details |
---|---|---|---|---|
TCP | 988 | FSxLustreSG, SlurmHeadNodeSG, SlurmComputeNodeSG, SlurmLoginNodeSG | Allows Lustre traffic between FSx for Lustre file servers and Lustre clients | |
TCP | 1018-1023 | FSxLustreSG, SlurmHeadNodeSG, SlurmComputeNodeSG, SlurmLoginNodeSG | Allows Lustre traffic between FSx for Lustre file servers and Lustre clients |
It needs the following outbound rules.
Type | Port range | Destination | Description | Details |
---|---|---|---|---|
TCP | 988 | FSxLustreSG, SlurmHeadNodeSG, SlurmComputeNodeSG, SlurmLoginNodeSG | Allow Lustre traffic between FSx for Lustre file servers and Lustre clients | |
TCP | 1018-1023 | FSxLustreSG, SlurmHeadNodeSG, SlurmComputeNodeSG, SlurmLoginNodeSG | Allow Lustre traffic between FSx for Lustre file servers and Lustre clients |
The same inbound and outbound rules need to be added to all 3 of the Slurm security groups too.
FSx for NetApp Ontap Security Group
We'll refer to this group as FSxOntapSG, but you can name it whatever you want. This security group can either be provided when the file system is created, or can be attached to the network interfaces of the file system after it is created.
All the security group rule are documented in the FSx documentation.
The minimum set required for mounting the file system are documented below.
It needs the following inbound rules.
Type | Port range | Source | Description | Details |
---|---|---|---|---|
TCP, UDP | 111 | SlurmHeadNodeSG, SlurmComputeNodeSG, SlurmLoginNodeSG | Remote procedure call for NFS | |
TCP, UDP | 635 | SlurmHeadNodeSG, SlurmComputeNodeSG, SlurmLoginNodeSG | NFS mount | |
TCP, UDP | 2049 | SlurmHeadNodeSG, SlurmComputeNodeSG, SlurmLoginNodeSG | NFS server daemon | |
TCP, UDP | 4045 | SlurmHeadNodeSG, SlurmComputeNodeSG, SlurmLoginNodeSG | NFS lock daemon | |
TCP, UDP | 4046 | SlurmHeadNodeSG, SlurmComputeNodeSG, SlurmLoginNodeSG | Network status monitor for NFS |
It needs the following outbound rules.
Type | Port range | Destination | Description | Details |
---|---|---|---|---|
All | All |
The Slurm security groups need to add the following outbound rule to allow mounting using NFS.
Type | Port range | Destination | Description | Details |
---|---|---|---|---|
TCP, UDP | 111 | FSxOntap | Remote procedure call for NFS | |
TCP, UDP | 635 | FSxOntap | NFS mount | |
TCP, UDP | 2049 | FSxOntap | NFS server daemon | |
TCP,UDP | 4045 | FSxOntap | NFS lock daemon | |
TCP, UDP | 4046 | FSxOntap | Network status monitor for NFS |
FSx for OpenZFS Security Group
We'll refer to this group as FSxZfsSG, but you can name it whatever you want. This security group can either be provided when the file system is created, or can be attached to the network interfaces of the file system after it is created.
The required security group rule are documented in the FSx documentation.
It needs the following inbound rules.
Type | Port range | Source | Description | Details |
---|---|---|---|---|
TCP, UDP | 111 | SlurmHeadNodeSG, SlurmComputeNodeSG, SlurmLoginNodeSG | Remote procedure call for NFS | |
TCP, UDP | 2049 | SlurmHeadNodeSG, SlurmComputeNodeSG, SlurmLoginNodeSG | NFS server daemon | |
TCP, UDP | 20001-20003 | SlurmHeadNodeSG, SlurmComputeNodeSG, SlurmLoginNodeSG | NFS mount, status monitor, and lock daemon |
Remove all outbound rules.
The Slurm security groups need to add the following outbound rule to allow mounting using NFS.
Type | Port range | Destination | Description | Details |
---|---|---|---|---|
TCP, UDP | 111 | FSxZfs | Remote procedure call for NFS | |
TCP, UDP | 2049 | FSxZfs | NFS server daemon | |
TCP, UDP | 20001-20003 | FSxZfs | NFS mount, status monitor, and lock daemon |