

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.

# Sécurité dans AWS ParallelCluster
<a name="security"></a>

La sécurité du cloud AWS est la priorité absolue. En tant que AWS client, vous bénéficiez d'un centre de données et d'une architecture réseau conçus pour répondre aux exigences des entreprises les plus sensibles en matière de sécurité.

La sécurité est une responsabilité partagée entre vous AWS et vous. Le [modèle de responsabilité partagée](https://aws.amazon.com/compliance/shared-responsibility-model/) décrit ceci comme la sécurité *du* cloud et la sécurité *dans* le cloud :
+ **Sécurité du cloud** : AWS est chargée de protéger l'infrastructure qui exécute les AWS services dans le AWS cloud. AWS vous fournit également des services que vous pouvez utiliser en toute sécurité. Des auditeurs tiers testent et vérifient régulièrement l'efficacité de notre sécurité dans le cadre des programmes de [AWS conformité Programmes](https://aws.amazon.com/compliance/programs/) de de conformité. Pour en savoir plus sur les programmes de conformité qui s'appliquent à AWS ParallelCluster, voir [AWS Services concernés par programme de conformitéAWS](https://aws.amazon.com/compliance/services-in-scope/) .
+ **Sécurité dans le cloud** — Votre responsabilité est déterminée par le ou les AWS services spécifiques que vous utilisez. Vous êtes également responsable de plusieurs autres facteurs connexes, notamment la sensibilité de vos données, les exigences de votre entreprise et les lois et réglementations applicables. 

Cette documentation décrit comment appliquer le modèle de responsabilité partagée lors de son utilisation AWS ParallelCluster. Les rubriques suivantes expliquent comment procéder à la configuration AWS ParallelCluster pour atteindre vos objectifs de sécurité et de conformité. Vous apprenez également à les utiliser AWS ParallelCluster de manière à surveiller et à sécuriser vos AWS ressources.

**Topics**
+ [Informations de sécurité pour les services utilisés par AWS ParallelCluster](#security-seealso)
+ [Protection des données dans AWS ParallelCluster](data-protection.md)
+ [Identity and Access Management pour AWS ParallelCluster](security-iam.md)
+ [Validation de conformité pour AWS ParallelCluster](security-compliance-validation.md)
+ [Application d'une version minimale de TLS 1.2](security-enforcing-tls.md)
+ [Configuration des groupes de sécurité pour les environnements restreints](security-groups-configuration.md)

## Informations de sécurité pour les services utilisés par AWS ParallelCluster
<a name="security-seealso"></a>
+ [Sécurité dans Amazon EC2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-security.html)
+ [Sécurité dans Amazon API Gateway](https://docs.aws.amazon.com/apigateway/latest/developerguide/security.html)
+ [Sécurité dans AWS Batch](https://docs.aws.amazon.com/batch/latest/userguide/security.html)
+ [Sécurité dans CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/security.html)
+ [Sécurité sur Amazon CloudWatch](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/security.html)
+ [Sécurité dans AWS CodeBuild](https://docs.aws.amazon.com/codebuild/latest/userguide/security.html)
+ [Sécurité dans Amazon DynamoDB](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/security.html)
+ [Sécurité dans Amazon ECR](https://docs.aws.amazon.com/AmazonECR/latest/userguide/security.html)
+ [Sécurité dans Amazon ECS](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/security.html)
+ [Sécurité dans Amazon EFS](https://docs.aws.amazon.com/efs/latest/ug/security-considerations.html)
+ [La sécurité au cœur FSx de Lustre](https://docs.aws.amazon.com/fsx/latest/LustreGuide/security.html)
+ [Sécurité dans Gestion des identités et des accès AWS (IAM)](https://docs.aws.amazon.com/IAM/latest/UserGuide/security.html)
+ [Sécurité dans EC2 Image Builder](https://docs.aws.amazon.com/imagebuilder/latest/userguide/image-builder-security.html)
+ [Sécurité dans AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/lambda-security.html)
+ [Sécurité dans Amazon Route 53](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/security.html)
+ [Sécurité sur Amazon SNS](https://docs.aws.amazon.com/sns/latest/dg/sns-security.html)
+ [Sécurité dans Amazon SQS (pour la AWS ParallelCluster version 2.x.)](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-security.html)
+ [Sécurité dans Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/dev/security.html)
+ [Sécurité dans Amazon VPC](https://docs.aws.amazon.com/vpc/latest/userguide/security.html)

# Protection des données dans AWS ParallelCluster
<a name="data-protection"></a>

Le [modèle de responsabilité AWS partagée](https://aws.amazon.com/compliance/shared-responsibility-model/) de s'applique à la protection des données dans. Comme décrit dans ce modèle, AWS est chargé de protéger l'infrastructure mondiale qui gère tous les AWS Cloud. La gestion du contrôle de votre contenu hébergé sur cette infrastructure relève de votre responsabilité. Vous êtes également responsable des tâches de configuration et de gestion de la sécurité des Services AWS que vous utilisez. Pour plus d’informations sur la confidentialité des données, consultez [Questions fréquentes (FAQ) sur la confidentialité des données](https://aws.amazon.com/compliance/data-privacy-faq/). Pour en savoir plus sur la protection des données en Europe, consultez le billet de blog [Modèle de responsabilité partagée d’AWS et RGPD (Règlement général sur la protection des données)](https://aws.amazon.com/blogs/security/the-aws-shared-responsibility-model-and-gdpr/) sur le *Blog de sécuritéAWS *.

À des fins de protection des données, nous vous recommandons de protéger les Compte AWS informations d'identification et de configurer les utilisateurs individuels avec AWS IAM Identity Center ou Gestion des identités et des accès AWS (IAM). Ainsi, chaque utilisateur se voit attribuer uniquement les autorisations nécessaires pour exécuter ses tâches. Nous vous recommandons également de sécuriser vos données comme indiqué ci-dessous :
+ Utilisez l’authentification multifactorielle (MFA) avec chaque compte.
+  SSL/TLS À utiliser pour communiquer avec AWS les ressources. Nous exigeons TLS 1.2 et recommandons TLS 1.3.
+ Configurez l'API et la journalisation de l'activité des utilisateurs avec AWS CloudTrail. Pour plus d'informations sur l'utilisation des CloudTrail sentiers pour capturer AWS des activités, consultez la section [Utilisation des CloudTrail sentiers](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-trails.html) dans le *guide de AWS CloudTrail l'utilisateur*.
+ Utilisez des solutions de AWS chiffrement, ainsi que tous les contrôles de sécurité par défaut qu'ils contiennent Services AWS.
+ Utilisez des services de sécurité gérés avancés tels qu’Amazon Macie, qui contribuent à la découverte et à la sécurisation des données sensibles stockées dans Amazon S3.
+ Si vous avez besoin de modules cryptographiques validés par la norme FIPS 140-3 pour accéder AWS via une interface de ligne de commande ou une API, utilisez un point de terminaison FIPS. Pour plus d’informations sur les points de terminaison FIPS disponibles, consultez [Norme FIPS (Federal Information Processing Standard) 140-3](https://aws.amazon.com/compliance/fips/).

Nous vous recommandons fortement de ne jamais placer d’informations confidentielles ou sensibles, telles que les adresses e-mail de vos clients, dans des balises ou des champs de texte libre tels que le champ **Nom**. Cela inclut lorsque vous travaillez avec ou d'autres Services AWS utilisateurs de la console, de l'API ou AWS SDKs. AWS CLI Toutes les données que vous entrez dans des balises ou des champs de texte de forme libre utilisés pour les noms peuvent être utilisées à des fins de facturation ou dans les journaux de diagnostic. Si vous fournissez une adresse URL à un serveur externe, nous vous recommandons fortement de ne pas inclure d’informations d’identification dans l’adresse URL permettant de valider votre demande adressée à ce serveur.

## Chiffrement des données
<a name="data-encryption"></a>

Une caractéristique clé de tout service sécurisé est que les informations sont chiffrées lorsqu’elles ne sont pas utilisées activement.

### Chiffrement au repos
<a name="encryption-rest"></a>

AWS ParallelCluster ne stocke elle-même aucune donnée client autre que les informations d'identification dont elle a besoin pour interagir avec les AWS services au nom de l'utilisateur.

Pour les données relatives aux nœuds du cluster, les données peuvent être chiffrées au repos.

Pour les volumes Amazon EBS, le chiffrement est configuré à l'aide des `KmsKeyId` paramètres [`EbsSettings`](SharedStorage-v3.md#SharedStorage-v3-EbsSettings)[`EbsSettings`](SharedStorage-v3.md#SharedStorage-v3-EbsSettings)/`Encrypted`et/de la [`EbsSettings`](SharedStorage-v3.md#SharedStorage-v3-EbsSettings) section. Pour plus d'informations, consultez la section [Chiffrement Amazon EBS](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSEncryption.html) dans le guide de l'utilisateur Amazon EC2.

Pour les volumes Amazon EFS, le chiffrement est configuré à l'aide des `KmsKeyId` paramètres [`EfsSettings`](SharedStorage-v3.md#SharedStorage-v3-EfsSettings)[`EfsSettings`](SharedStorage-v3.md#SharedStorage-v3-EfsSettings)/`Encrypted`et/de la [`EfsSettings`](SharedStorage-v3.md#SharedStorage-v3-EfsSettings) section. Pour plus d'informations, consultez [Comment fonctionne le chiffrement au repos](https://docs.aws.amazon.com/efs/latest/ug/encryption-at-rest.html#howencrypt) dans le *guide de l'utilisateur d'Amazon Elastic File System.*

 FSx Pour les systèmes de fichiers Lustre, le chiffrement des données au repos est automatiquement activé lors de la création d'un système de FSx fichiers Amazon. Pour plus d'informations, consultez la section [Chiffrer les données au repos](https://docs.aws.amazon.com/fsx/latest/LustreGuide/encryption-at-rest.html) dans le *guide de l'utilisateur d'Amazon FSx for Lustre*.

Pour les types d'instance dotés de NVMe volumes, les données des volumes de stockage d' NVMe instance sont chiffrées à l'aide d'un chiffrement XTS-AES-256 implémenté sur un module matériel de l'instance. Les clés de chiffrement sont générées à l'aide du module matériel et sont uniques à chaque périphérique de stockage d' NVMe instance. Toutes les clés de chiffrement sont détruites lorsque l’instance est arrêtée ou résiliée et ne peuvent pas être récupérées. Vous ne pouvez pas désactiver le chiffrement et vous ne pouvez pas fournir votre propre clé de chiffrement. Pour plus d'informations, consultez la section [Encryption at rest](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/data-protection.html#encryption-rest) dans le guide de l'*utilisateur Amazon EC2*.

Si vous invoquez un AWS service qui transmet les données des clients à votre ordinateur local à des fins de stockage, reportez-vous au chapitre Sécurité et conformité du guide de l'utilisateur de ce service pour obtenir des informations sur la manière dont ces données sont stockées, protégées et cryptées. AWS ParallelCluster 

### Chiffrement en transit
<a name="encryption-transit"></a>

Par défaut, toutes les données transmises depuis l'ordinateur client en cours d'exécution AWS ParallelCluster et les points de terminaison du AWS service sont cryptées en envoyant le tout via une HTTPS/TLS connexion. Le trafic entre les nœuds du cluster peut être automatiquement chiffré, en fonction des types d'instances sélectionnés. Pour plus d'informations, consultez la section [Chiffrement en transit](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/data-protection.html#encryption-transit) dans le guide de l'*utilisateur Amazon EC2*.

## Consultez aussi
<a name="security-data-protection-seealso"></a>
+ [Protection des données dans Amazon EC2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/data-protection.html)
+ [Protection des données dans EC2 Image Builder](https://docs.aws.amazon.com/imagebuilder/latest/userguide/data-protection.html)
+ [Protection des données dans CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/security-data-protection.html)
+ [Protection des données dans Amazon EFS](https://docs.aws.amazon.com/efs/latest/ug/efs-backup-solutions.html)
+ [Protection des données dans Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/dev/DataDurability.html)
+ [Protection des données FSx pour Lustre](https://docs.aws.amazon.com/fsx/latest/LustreGuide/data-protection.html)

# Identity and Access Management pour AWS ParallelCluster
<a name="security-iam"></a>

AWS ParallelCluster utilise des rôles pour accéder à vos AWS ressources et à leurs services. Les politiques d'instance et d'utilisateur AWS ParallelCluster utilisées pour accorder des autorisations sont documentées sur[Gestion des identités et des accès AWS autorisations dans AWS ParallelCluster](iam-roles-in-parallelcluster-v3.md).

La seule différence majeure réside dans la façon dont vous vous authentifiez lorsque vous utilisez un utilisateur standard et des informations d'identification à long terme. Bien qu'un utilisateur ait besoin d'un mot de passe pour accéder à la console d'un AWS service, ce même utilisateur a besoin d'une paire de clés d'accès pour effectuer les mêmes opérations AWS ParallelCluster. Toutes les autres informations d'identification à court terme sont utilisées de la même manière qu'avec la console.

Les informations d'identification utilisées par AWS ParallelCluster sont stockées dans des fichiers en texte brut et ***ne sont pas*** cryptées.
+ Le `$HOME/.aws/credentials` fichier stocke les informations d'identification à long terme nécessaires pour accéder à vos AWS ressources. Vos ID de clé d'accès et clé d'accès secrète sont inclus.
+ Les informations d'identification à court terme, telles que celles relatives aux rôles que vous assumez ou aux AWS IAM Identity Center services, sont également stockées dans les `$HOME/.aws/sso/cache` dossiers `$HOME/.aws/cli/cache` et, respectivement.

**Atténuation des risques**
+ Nous vous recommandons fortement de configurer vos autorisations de système de fichiers sur le dossier `$HOME/.aws` et ses dossiers et fichiers enfants, afin de restreindre l'accès aux seuls utilisateurs autorisés.
+ Utilisez des rôles avec des informations d'identification temporaires dans la mesure du possible pour réduire les risques de dommages si les informations d'identification sont compromises. Utilisez les informations d'identification à long terme uniquement pour demander et actualiser les informations d'identification de rôle à court terme.

# Validation de conformité pour AWS ParallelCluster
<a name="security-compliance-validation"></a>

Des auditeurs tiers évaluent la sécurité et la conformité des AWS services dans le cadre de multiples programmes de AWS conformité. L'utilisation AWS ParallelCluster pour accéder à un service ne modifie pas la conformité de ce service. 

Pour obtenir la liste des AWS services concernés par des programmes de conformité spécifiques, voir [AWS Services concernés par programme de conformitéAWS](https://aws.amazon.com/compliance/services-in-scope/) . Pour des informations générales, consultez [AWS la section Programmes de conformité Programmes AWS](https://aws.amazon.com/compliance/programs/) .

Vous pouvez télécharger des rapports d'audit tiers à l'aide du AWS Artifact. Pour plus d’informations, voir [Téléchargement de rapports sur AWS Artifact](https://docs.aws.amazon.com/artifact/latest/ug/downloading-documents.html).

Votre responsabilité en matière de conformité lors de l'utilisation AWS ParallelCluster est déterminée par la sensibilité de vos données, les objectifs de conformité de votre entreprise et les lois et réglementations applicables. AWS fournit les ressources suivantes pour faciliter la mise en conformité :
+ Guides [de démarrage rapide sur la sécurité et la conformité Guides](https://aws.amazon.com/quickstart/?awsf.quickstart-homepage-filter=categories%23security-identity-compliance) sur la sécurité et la conformité : ces guides de déploiement abordent les considérations architecturales et indiquent les étapes à suivre pour déployer des environnements de base axés sur la sécurité et la conformité sur. AWS
+ Livre blanc [sur l'architecture pour la sécurité et la conformité HIPAA sur Amazon Web Services — Ce AWS livre blanc](https://docs.aws.amazon.com/pdfs/whitepapers/latest/architecting-hipaa-security-and-compliance-on-aws/architecting-hipaa-security-and-compliance-on-aws.pdf) décrit comment les entreprises peuvent créer des applications conformes à la loi HIPAA. AWS 
+ AWS ressources de [https://aws.amazon.com/compliance/resources/](https://aws.amazon.com/compliance/resources/) de conformité — Cette collection de classeurs et de guides peut s'appliquer à votre secteur d'activité et à votre région.
+ [Évaluation des ressources à l'aide des règles](https://docs.aws.amazon.com/config/latest/developerguide/evaluate-config.html) énoncées dans le *guide du AWS Config développeur* : le AWS Config service évalue dans quelle mesure les configurations de vos ressources sont conformes aux pratiques internes, aux directives du secteur et aux réglementations.
+ [AWS Security Hub CSPM](https://docs.aws.amazon.com/securityhub/latest/userguide/what-is-securityhub.html)— Ce AWS service fournit une vue complète de l'état de votre sécurité interne, AWS ce qui vous permet de vérifier votre conformité aux normes et aux meilleures pratiques du secteur de la sécurité.

# Application d'une version minimale de TLS 1.2
<a name="security-enforcing-tls"></a>

Pour renforcer la sécurité lors de la communication avec les AWS services, vous devez configurer votre système AWS ParallelCluster pour utiliser le protocole TLS 1.2 ou version ultérieure. Lorsque vous l'utilisez AWS ParallelCluster, Python est utilisé pour définir la version TLS.

Pour garantir qu'aucune version de TLS antérieure à TLS 1.2 n'est AWS ParallelCluster utilisée, vous devrez peut-être recompiler OpenSSL pour appliquer ce minimum, puis recompiler Python pour utiliser le nouvel OpenSSL. 

## Déterminez vos protocoles actuellement pris en charge
<a name="enforcing-tls-supported"></a>

Tout d'abord, créez un certificat auto-signé à utiliser pour le serveur de test et le SDK Python à l'aide d'OpenSSL.

```
$ openssl req -subj '/CN=localhost' -x509 -newkey rsa:4096 -nodes -keyout key.pem -out cert.pem -days 365
```

Ensuite, faites tourner un serveur de test à l’aide d’OpenSSL.

```
$ openssl s_server -key key.pem -cert cert.pem -www
```

Dans une nouvelle fenêtre de terminal, créez un environnement virtuel et installez le SDK Python.

```
$ python3 -m venv test-env
source test-env/bin/activate
pip install botocore
```

Créez un nouveau script Python nommé `check.py` qui utilise la bibliothèque HTTP sous-jacente du SDK.

```
$ import urllib3
URL = 'https://localhost:4433/'

http = urllib3.PoolManager(
ca_certs='cert.pem',
cert_reqs='CERT_REQUIRED',
)
r = http.request('GET', URL)
print(r.data.decode('utf-8'))
```

Exécutez votre nouveau script.

```
$ python check.py
```

Des détails sur la connexion effectuée s’affichent. Recherchez « Protocole :  » dans le résultat. Si le résultat est « TLSv1 .2" ou version ultérieure, le SDK utilise par défaut TLS v1.2 ou version ultérieure. S'il s'agit d'une version antérieure, vous devez recompiler OpenSSL et recompiler Python.

Cependant, même si votre installation de Python est par défaut TLS v1.2 ou version ultérieure, il est toujours possible pour Python de renégocier vers une version antérieure à TLS v1.2 si le serveur ne prend pas en charge TLS v1.2 ou une version ultérieure. Pour vérifier que Python ne renégocie pas automatiquement des versions antérieures, redémarrez le serveur de test avec ce qui suit.

```
$ openssl s_server -key key.pem -cert cert.pem -no_tls1_3 -no_tls1_2 -www
```

Si vous utilisez une version antérieure d'OpenSSL, vous n'avez peut-être pas l’indicateur `-no_tls_3` disponible. Si c'est le cas, supprimez l'indicateur car la version d'OpenSSL que vous utilisez ne prend pas en charge TLS v1.3. Exécutez à nouveau le script Python.

```
$ python check.py
```

Si votre installation de Python ne renégocie pas correctement des versions antérieures à TLS 1.2, vous devriez recevoir une erreur SSL.

```
$ urllib3.exceptions.MaxRetryError: HTTPSConnectionPool(host='localhost', port=4433): Max retries exceeded with url: / (Caused by SSLError(SSLError(1, '[SSL: UNSUPPORTED_PROTOCOL] unsupported protocol (_ssl.c:1108)')))
```

Si vous êtes en mesure d'établir une connexion, vous devez recompiler OpenSSL et Python pour désactiver la négociation des protocoles antérieurs à TLS v1.2.

## Compiler OpenSSL et Python
<a name="enforcing-tls-compile"></a>

Pour vous assurer que AWS ParallelCluster cela ne négocie rien de antérieur à TLS 1.2, vous devez recompiler OpenSSL et Python. Pour ce faire, copiez le contenu suivant pour créer un script et exécutez-le.

```
#!/usr/bin/env bash
set -e

OPENSSL_VERSION="1.1.1d"
OPENSSL_PREFIX="/opt/openssl-with-min-tls1_2"
PYTHON_VERSION="3.8.1"
PYTHON_PREFIX="/opt/python-with-min-tls1_2"


curl -O "https://www.openssl.org/source/openssl-$OPENSSL_VERSION.tar.gz"
tar -xzf "openssl-$OPENSSL_VERSION.tar.gz"
cd openssl-$OPENSSL_VERSION
./config --prefix=$OPENSSL_PREFIX no-ssl3 no-tls1 no-tls1_1 no-shared
make > /dev/null
sudo make install_sw > /dev/null


cd /tmp
curl -O "https://www.python.org/ftp/python/$PYTHON_VERSION/Python-$PYTHON_VERSION.tgz"
tar -xzf "Python-$PYTHON_VERSION.tgz"
cd Python-$PYTHON_VERSION
./configure --prefix=$PYTHON_PREFIX --with-openssl=$OPENSSL_PREFIX --disable-shared > /dev/null
make > /dev/null
sudo make install > /dev/null
```

On compile ainsi une version de Python qui a un OpenSSL lié statiquement qui ne négocie pas automatiquement quoi que ce soit d’antérieur à TLS 1.2. On installe également OpenSSL dans le répertoire `/opt/openssl-with-min-tls1_2` et Python dans le répertoire `/opt/python-with-min-tls1_2`. Après avoir exécuté ce script, confirmez l'installation de la nouvelle version de Python.

```
$ /opt/python-with-min-tls1_2/bin/python3 --version
```

Ce qui suit devrait s’imprimer.

```
Python 3.8.1
```

Pour confirmer que cette nouvelle version de Python ne négocie pas une version antérieure à TLS 1.2, exécutez à nouveau les étapes à partir de [Déterminez vos protocoles actuellement pris en charge](#enforcing-tls-supported)à l’aide de la version Python nouvellement installée (c'est-à-dire `/opt/python-with-min-tls1_2/bin/python3`).

# Configuration des groupes de sécurité pour les environnements restreints
<a name="security-groups-configuration"></a>

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é
<a name="security-groups-configuration-overview"></a>

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 :
+ [`HeadNode`/`Networking`](HeadNode-v3.md#HeadNode-v3-Networking)- Contrôle l'accès depuis et vers le nœud principal
+ [`Scheduling`/`SlurmQueues`/`Networking`](Scheduling-v3.md#Scheduling-v3-SlurmQueues-Networking)- Contrôle l'accès vers et depuis les nœuds de calcul
+ [`LoginNodes`](LoginNodes-v3.md)- Contrôle l'accès vers et depuis les nœuds de connexion (si configuré)

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
<a name="security-groups-configuration-required-ports"></a>

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
<a name="security-groups-configuration-custom"></a>

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.

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

1. 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
<a name="security-groups-configuration-cluster-config"></a>

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'utilisation`SecurityGroups`, 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 utilisation`AdditionalSecurityGroups`, 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)](Scheduling-v3.md#yaml-Scheduling-SlurmQueues-ComputeResources-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
<a name="security-groups-configuration-vpc-endpoints"></a>

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](aws-parallelcluster-in-a-single-public-subnet-no-internet-v3.md).

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é
<a name="security-groups-configuration-best-practices"></a>

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`](HeadNode-v3.md#yaml-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 [`HeadNode`la configuration`Dcv`//`AllowedIps`](HeadNode-v3.md#yaml-HeadNode-Dcv-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é
<a name="security-groups-configuration-troubleshooting"></a>

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.