Configurazione di gruppi di sicurezza per ambienti con restrizioni - AWS ParallelCluster

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Configurazione di gruppi di sicurezza per ambienti con restrizioni

Per impostazione predefinita, AWS ParallelCluster crea e configura gruppi di sicurezza che consentono tutto il traffico tra i nodi del cluster. In ambienti altamente limitati, potrebbe essere necessario limitare l'accesso alla rete solo alle porte necessarie per il funzionamento del cluster. Questa sezione descrive come configurare gruppi di sicurezza personalizzati con accesso limitato per la AWS ParallelCluster distribuzione.

Panoramica dei gruppi di sicurezza

AWS ParallelCluster utilizza i gruppi di sicurezza per controllare il traffico di rete tra il nodo principale, i nodi di elaborazione e i nodi di accesso (se configurati). Per impostazione predefinita, quando AWS ParallelCluster crea un cluster, crea gruppi di sicurezza che consentono tutto il traffico tra i nodi all'interno del cluster. In ambienti con requisiti di sicurezza rigorosi, è possibile fornire gruppi di sicurezza personalizzati che limitano il traffico solo alle porte necessarie.

I gruppi di sicurezza possono essere configurati nelle seguenti sezioni della configurazione del cluster:

Per ognuna di queste sezioni, puoi specificare:

  • SecurityGroups- Sostituisce i gruppi di sicurezza predefiniti che AWS ParallelCluster verrebbero creati

  • AdditionalSecurityGroups- Aggiunge gruppi di sicurezza oltre a quelli predefiniti creati da AWS ParallelCluster

Porte necessarie per il funzionamento del cluster

Quando si configurano gruppi di sicurezza personalizzati, è necessario assicurarsi che le seguenti porte siano aperte tra i nodi appropriati:

Porte richieste per il nodo principale
Porta Protocollo Direzione Scopo
22 TCP In entrata Accesso SSH al nodo principale (dagli intervalli IP consentiti)
6817-6819 TCP In entrata Porte del controller Slurm (dai nodi di calcolo e di accesso)
6817-6819 TCP In uscita Porte del controller Slurm (per calcolare e accedere ai nodi)
8443 TCP In entrata NICE DCV (se abilitato, dagli intervalli IP consentiti)
11, 2049 TCP/UDP In entrata NFS (dai nodi di calcolo e di accesso, se si utilizza NFS per lo storage condiviso)
443 TCP In uscita Accesso HTTPS ai AWS servizi (se non si utilizzano endpoint VPC)
Porte richieste per i nodi di calcolo
Porta Protocollo Direzione Scopo
22 TCP In entrata Accesso SSH (dal nodo principale e dai nodi di accesso)
6818 TCP In entrata porta daemon Slurm (dal nodo principale)
6817-6819 TCP In uscita Porte del controller Slurm (verso il nodo principale)
111, 2049 TCP/UDP In uscita NFS (al nodo principale, se si utilizza NFS per lo storage condiviso)
443 TCP In uscita Accesso HTTPS ai AWS servizi (se non si utilizzano endpoint VPC)

Se utilizzi EFA (Elastic Fabric Adapter), devi inoltre consentire tutto il traffico tra i nodi di elaborazione che hanno EFA abilitato:

  • Tutto il traffico TCP e UDP tra i nodi di elaborazione con EFA

  • Tutto il traffico sul dispositivo EFA tra i nodi di elaborazione con EFA

Nota

Se utilizzi sistemi di storage condivisi come FSx Lustre, Amazon EFS o altre soluzioni di storage, dovrai assicurarti che le porte appropriate siano aperte anche per questi servizi.

Creazione di gruppi di sicurezza personalizzati

Per creare gruppi di sicurezza personalizzati per la tua AWS ParallelCluster distribuzione, segui questi passaggi:

  1. Crea gruppi di sicurezza per il nodo principale, i nodi di calcolo e i nodi di accesso (se applicabile) utilizzando la console di AWS gestione, la AWS CLI o. AWS CloudFormation

  2. Configura le regole del gruppo di sicurezza per consentire solo il traffico necessario, come indicato nella sezione precedente.

  3. Fai riferimento a questi gruppi di sicurezza nel file di configurazione del cluster.

Ecco un esempio di come creare gruppi di sicurezza utilizzando 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)

Configurazione dei gruppi di sicurezza nella configurazione del cluster

Dopo aver creato i gruppi di sicurezza personalizzati, puoi farvi riferimento nel file di configurazione del 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 ...

Durante l'utilizzoSecurityGroups, AWS ParallelCluster utilizzerà solo i gruppi di sicurezza specificati, sostituendo quelli predefiniti. Durante l'utilizzoAdditionalSecurityGroups, AWS ParallelCluster utilizzerà sia i gruppi di sicurezza predefiniti che crea sia quelli aggiuntivi specificati dall'utente.

avvertimento

Se abiliti Elastic Fabric Adapter (EFA) per le tue istanze di calcolo, assicurati che le istanze abilitate per EFA siano membri di un gruppo di sicurezza che consente tutto il traffico in entrata e in uscita verso se stesso. Ciò è necessario per il corretto funzionamento di EFA.

Utilizzo degli endpoint VPC in ambienti con restrizioni

In ambienti altamente limitati, potresti voler eseguire l'implementazione AWS ParallelCluster in una sottorete senza accesso a Internet. In questo caso, dovrai configurare gli endpoint VPC per consentire al cluster di comunicare con i servizi. AWS Per istruzioni dettagliate, vedi AWS ParallelCluster in un'unica sottorete senza accesso a Internet.

Quando utilizzi gli endpoint VPC, assicurati che i tuoi gruppi di sicurezza consentano il traffico da e verso gli endpoint VPC. Puoi farlo aggiungendo i gruppi di sicurezza associati agli endpoint VPC alla AdditionalSecurityGroups configurazione del nodo principale e dei nodi di calcolo.

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

Le migliori pratiche per la configurazione dei gruppi di sicurezza

Quando configuri i gruppi di sicurezza per ambienti con restrizioni, prendi AWS ParallelCluster in considerazione le seguenti best practice:

  • Principio del privilegio minimo: aprire solo le porte necessarie per il funzionamento del cluster.

  • Utilizza i riferimenti ai gruppi di sicurezza: quando possibile, utilizza i riferimenti ai gruppi di sicurezza (che consentono il traffico proveniente da un altro gruppo di sicurezza) anziché i blocchi CIDR per limitare il traffico tra i componenti del cluster.

  • Limita l'accesso SSH: limita l'accesso SSH al nodo principale solo agli intervalli IP che lo richiedono utilizzando la configurazione HeadNode//Ssh. AllowedIps

  • Limita l'accesso a DCV: se usi NICE DCV, limita l'accesso solo agli intervalli IP che lo richiedono utilizzando HeadNodela configurazioneDcv//AllowedIps.

  • Esegui test approfonditi: dopo aver configurato i gruppi di sicurezza personalizzati, verifica accuratamente tutte le funzionalità del cluster per assicurarti che tutti i percorsi di comunicazione richiesti funzionino.

  • Documenta la tua configurazione: conserva la documentazione della configurazione del tuo gruppo di sicurezza, comprese le porte aperte e il motivo per cui sono necessarie.

Risoluzione dei problemi relativi ai gruppi di sicurezza

Se riscontri problemi dopo la configurazione dei gruppi di sicurezza personalizzati, considera i seguenti passaggi per la risoluzione dei problemi:

  • Controlla i log del cluster: esamina i log del cluster in CloudWatch Logs per eventuali errori di connessione.

  • Verifica le regole del gruppo di sicurezza: assicurati che tutte le porte richieste siano aperte tra i nodi appropriati.

  • Verifica la connettività: utilizza strumenti come telnet o nc per testare la connettività tra nodi su porte specifiche.

  • Espandi temporaneamente le regole: se hai problemi a identificare le porte necessarie, consenti temporaneamente tutto il traffico tra i nodi del cluster e poi limitalo gradualmente man mano che identifichi le porte richieste.

  • Verifica la configurazione degli endpoint VPC: se utilizzi gli endpoint VPC, assicurati che siano configurati correttamente e che i gruppi di sicurezza consentano il traffico da e verso di essi.

Se continui a riscontrare problemi, puoi tornare a utilizzare i gruppi di sicurezza predefiniti creati rimuovendo la configurazione AWS ParallelCluster dal file di SecurityGroups configurazione del cluster.