Configuration des groupes de sécurité pour les environnements restreints - AWS ParallelCluster

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Configuration des groupes de sécurité pour les environnements restreints

Par défaut, AWS ParallelCluster crée et configure des groupes de sécurité qui autorisent tout le trafic entre les nœuds du cluster. Dans les environnements très restreints, vous devrez peut-être limiter l'accès au réseau aux seuls ports nécessaires au fonctionnement du cluster. Cette section décrit comment configurer des groupes de sécurité personnalisés avec un accès restreint pour votre AWS ParallelCluster déploiement.

Vue d'ensemble des groupes de sécurité

AWS ParallelCluster utilise des groupes de sécurité pour contrôler le trafic réseau entre le nœud principal, les nœuds de calcul et les nœuds de connexion (s'ils sont configurés). Par défaut, lors de la AWS ParallelCluster création d'un cluster, il crée des groupes de sécurité qui autorisent tout le trafic entre les nœuds du cluster. Dans les environnements soumis à des exigences de sécurité strictes, vous pouvez fournir des groupes de sécurité personnalisés qui limitent le trafic aux seuls ports nécessaires.

Les groupes de sécurité peuvent être configurés dans les sections suivantes de la configuration de votre cluster :

Pour chacune de ces sections, vous pouvez spécifier :

  • SecurityGroups- Remplace les groupes de sécurité par défaut qui AWS ParallelCluster créeraient

  • AdditionalSecurityGroups- Ajoute des groupes de sécurité en plus de ceux par défaut créés par AWS ParallelCluster

Ports requis pour le fonctionnement du cluster

Lorsque vous configurez des groupes de sécurité personnalisés, vous devez vous assurer que les ports suivants sont ouverts entre les nœuds appropriés :

Ports requis pour le nœud principal
Port Protocole Direction Objectif
22 TCP Entrant Accès SSH au nœud principal (à partir des plages d'adresses IP autorisées)
6817-6819 TCP Entrant Ports du contrôleur Slurm (depuis les nœuds de calcul et de connexion)
6817-6819 TCP Sortant Ports du contrôleur Slurm (pour calculer et connecter les nœuds)
8443 TCP Entrant NICE DCV (si activé, à partir des plages d'adresses IP autorisées)
111, 2049 TCP/UDP Entrant NFS (à partir des nœuds de calcul et de connexion, si vous utilisez NFS pour le stockage partagé)
443 TCP Sortant Accès HTTPS aux AWS services (si vous n'utilisez pas de points de terminaison VPC)
Ports requis pour les nœuds de calcul
Port Protocole Direction Objectif
22 TCP Entrant Accès SSH (depuis le nœud principal et les nœuds de connexion)
6818 TCP Entrant Port du démon Slurm (depuis le nœud principal)
6817-6819 TCP Sortant Ports du contrôleur Slurm (vers le nœud principal)
111, 2049 TCP/UDP Sortant NFS (vers le nœud principal, si vous utilisez NFS pour le stockage partagé)
443 TCP Sortant Accès HTTPS aux AWS services (si vous n'utilisez pas de points de terminaison VPC)

Si vous utilisez l'EFA (Elastic Fabric Adapter), vous devez également autoriser tout le trafic entre les nœuds de calcul sur lesquels l'EFA est activé :

  • Tout le trafic TCP et UDP entre les nœuds de calcul avec EFA

  • Tout le trafic sur le périphérique EFA entre les nœuds de calcul avec EFA

Note

Si vous utilisez des systèmes de stockage partagés tels que FSx Lustre, Amazon EFS ou d'autres solutions de stockage, vous devez vous assurer que les ports appropriés sont également ouverts pour ces services.

Création de groupes de sécurité personnalisés

Pour créer des groupes de sécurité personnalisés pour votre AWS ParallelCluster déploiement, procédez comme suit :

  1. Créez des groupes de sécurité pour le nœud principal, les nœuds de calcul et les nœuds de connexion (le cas échéant) à l'aide de la console AWS de gestion, de la AWS CLI ou AWS CloudFormation.

  2. Configurez les règles du groupe de sécurité pour autoriser uniquement le trafic nécessaire, comme indiqué dans la section précédente.

  3. Référencez ces groupes de sécurité dans le fichier de configuration de votre cluster.

Voici un exemple de création de groupes de sécurité à l'aide de la AWS CLI :

# Create security group for head node aws ec2 create-security-group \ --group-name pcluster-head-node-sg \ --description "Security group for ParallelCluster head node" \ --vpc-id vpc-12345678 # Create security group for compute nodes aws ec2 create-security-group \ --group-name pcluster-compute-node-sg \ --description "Security group for ParallelCluster compute nodes" \ --vpc-id vpc-12345678 # Add rules to allow necessary traffic between head and compute nodes # (Add specific rules based on the required ports listed above)

Configuration des groupes de sécurité dans la configuration du cluster

Une fois que vous avez créé vos groupes de sécurité personnalisés, vous pouvez les référencer dans le fichier de configuration de votre cluster :

# Example cluster configuration with custom security groups HeadNode: ... Networking: SubnetId: subnet-12345678 SecurityGroups: - sg-headnode12345 # Custom security group for head node # Or use AdditionalSecurityGroups if you want to keep the default security groups # AdditionalSecurityGroups: # - sg-additional12345 ... Scheduling: Scheduler: slurm SlurmQueues: - Name: queue1 ... Networking: SubnetIds: - subnet-12345678 SecurityGroups: - sg-computenode12345 # Custom security group for compute nodes # Or use AdditionalSecurityGroups if you want to keep the default security groups # AdditionalSecurityGroups: # - sg-additional12345 ... # If using login nodes LoginNodes: Pools: - Name: login-pool ... Networking: SubnetIds: - subnet-12345678 SecurityGroups: - sg-loginnode12345 # Custom security group for login nodes # Or use AdditionalSecurityGroups if you want to keep the default security groups # AdditionalSecurityGroups: # - sg-additional12345 ...

Lors de l'utilisationSecurityGroups, seuls les groupes de sécurité que vous spécifiez AWS ParallelCluster seront utilisés, en remplacement des groupes par défaut. Lors de son utilisationAdditionalSecurityGroups, il AWS ParallelCluster utilisera à la fois les groupes de sécurité par défaut qu'il crée et les groupes supplémentaires que vous spécifiez.

Avertissement

Si vous activez Elastic Fabric Adapter (EFA) pour vos instances de calcul, assurez-vous que vos instances compatibles EFA sont membres d'un groupe de sécurité qui autorise l'intégralité du trafic entrant et sortant à destination de lui-même. Cela est nécessaire au bon fonctionnement de l'EFA.

Utilisation de points de terminaison VPC dans des environnements restreints

Dans les environnements très restreints, vous souhaiterez peut-être déployer AWS ParallelCluster dans un sous-réseau sans accès à Internet. Dans ce cas, vous devez configurer les points de terminaison VPC pour permettre au cluster de communiquer avec les services. AWS Pour obtenir des instructions complètes, veuillez consulter AWS ParallelCluster dans un seul sous-réseau sans accès à Internet.

Lorsque vous utilisez des points de terminaison VPC, assurez-vous que vos groupes de sécurité autorisent le trafic à destination et en provenance des points de terminaison VPC. Vous pouvez le faire en ajoutant les groupes de sécurité associés aux points de terminaison VPC à la AdditionalSecurityGroups configuration de votre nœud principal et de vos nœuds de calcul.

HeadNode: ... Networking: SubnetId: subnet-1234567890abcdef0 AdditionalSecurityGroups: - sg-abcdef01234567890 # Security group that enables communication with VPC endpoints ... Scheduling: Scheduler: slurm SlurmQueues: - ... Networking: SubnetIds: - subnet-1234567890abcdef0 AdditionalSecurityGroups: - sg-1abcdef01234567890 # Security group that enables communication with VPC endpoints

Meilleures pratiques pour la configuration des groupes de sécurité

Lorsque vous configurez des groupes de sécurité AWS ParallelCluster dans des environnements restreints, tenez compte des meilleures pratiques suivantes :

  • Principe du moindre privilège : ouvrez uniquement les ports nécessaires au fonctionnement du cluster.

  • Utiliser des références de groupes de sécurité : dans la mesure du possible, utilisez des références de groupes de sécurité (autorisant le trafic provenant d'un autre groupe de sécurité) plutôt que des blocs CIDR pour limiter le trafic entre les composants du cluster.

  • Restreindre l'accès SSH : limitez l'accès SSH au nœud principal aux seules plages d'adresses IP qui en ont besoin à l'aide de la configuration HeadNode/Ssh/AllowedIps.

  • Restreindre l'accès au DCV : si vous utilisez NICE DCV, limitez l'accès aux seules plages d'adresses IP qui en ont besoin à l'aide de HeadNodela configurationDcv//AllowedIps.

  • Testez minutieusement : après avoir configuré des groupes de sécurité personnalisés, testez minutieusement toutes les fonctionnalités du cluster pour vous assurer que tous les chemins de communication requis fonctionnent.

  • Documentez votre configuration : conservez la documentation de la configuration de votre groupe de sécurité, y compris les ports ouverts et les raisons pour lesquelles ils sont nécessaires.

Résolution des problèmes liés aux groupes de sécurité

Si vous rencontrez des problèmes après avoir configuré des groupes de sécurité personnalisés, envisagez les étapes de résolution des problèmes suivantes :

  • Vérifiez les journaux du cluster : consultez les journaux du cluster dans CloudWatch les journaux pour détecter toute erreur de connexion.

  • Vérifiez les règles du groupe de sécurité : assurez-vous que tous les ports requis sont ouverts entre les nœuds appropriés.

  • Testez la connectivité : utilisez des outils tels que telnet ou nc pour tester la connectivité entre les nœuds sur des ports spécifiques.

  • Étendre temporairement les règles : si vous ne parvenez pas à identifier les ports nécessaires, autorisez temporairement tout le trafic entre les nœuds du cluster, puis limitez-le progressivement au fur et à mesure que vous identifiez les ports requis.

  • Vérifiez la configuration des points de terminaison VPC : si vous utilisez des points de terminaison VPC, assurez-vous qu'ils sont correctement configurés et que les groupes de sécurité autorisent le trafic à destination et en provenance de ceux-ci.

Si vous continuez à rencontrer des problèmes, vous pouvez revenir à l'utilisation des groupes de sécurité par défaut créés en AWS ParallelCluster supprimant la SecurityGroups configuration de votre fichier de configuration de cluster.