

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Segurança em AWS ParallelCluster
<a name="security"></a>

A segurança na nuvem AWS é a maior prioridade. Como AWS cliente, você se beneficia de uma arquitetura de data center e rede criada para atender aos requisitos das organizações mais sensíveis à segurança.

A segurança é uma responsabilidade compartilhada entre você AWS e você. O [modelo de responsabilidade compartilhada](https://aws.amazon.com/compliance/shared-responsibility-model/) descreve isso como segurança *da* nuvem e segurança *na* nuvem:
+ **Segurança da nuvem** — AWS é responsável por proteger a infraestrutura que executa AWS os serviços na AWS nuvem. AWS também fornece serviços que você pode usar com segurança. Auditores terceirizados testam e verificam regularmente a eficácia de nossa segurança como parte dos Programas de Conformidade Programas de [AWS](https://aws.amazon.com/compliance/programs/) de . Para saber mais sobre os programas de conformidade aplicáveis AWS ParallelCluster, consulte [AWS Serviços no escopo do programa de conformidade AWS](https://aws.amazon.com/compliance/services-in-scope/) .
+ **Segurança na nuvem** — Sua responsabilidade é determinada pelo AWS serviço ou serviços específicos que você usa. Você também é responsável por diversos outros fatores relacionados, incluindo a confidencialidade dos dados, os requisitos da empresa e as leis e regulamentos aplicáveis. 

Esta documentação descreve como você deve aplicar o modelo de responsabilidade compartilhada ao usar AWS ParallelCluster. Os tópicos a seguir mostram como configurar para atender AWS ParallelCluster aos seus objetivos de segurança e conformidade. Você também aprende a usar de uma AWS ParallelCluster forma que o ajude a monitorar e proteger seus AWS recursos.

**Topics**
+ [Informações de segurança para serviços usados por AWS ParallelCluster](#security-seealso)
+ [Proteção de dados em AWS ParallelCluster](data-protection.md)
+ [Identity and Access Management para AWS ParallelCluster](security-iam.md)
+ [Validação de conformidade para AWS ParallelCluster](security-compliance-validation.md)
+ [Impor uma versão mínima do TLS 1.2](security-enforcing-tls.md)
+ [Configurando grupos de segurança para ambientes restritos](security-groups-configuration.md)

## Informações de segurança para serviços usados por AWS ParallelCluster
<a name="security-seealso"></a>
+ [Segurança no Amazon EC2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-security.html)
+ [Segurança no Amazon API Gateway](https://docs.aws.amazon.com/apigateway/latest/developerguide/security.html)
+ [Segurança em AWS Batch](https://docs.aws.amazon.com/batch/latest/userguide/security.html)
+ [Segurança em CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/security.html)
+ [Segurança na Amazon CloudWatch](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/security.html)
+ [Segurança em AWS CodeBuild](https://docs.aws.amazon.com/codebuild/latest/userguide/security.html)
+ [Segurança no Amazon DynamoDB](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/security.html)
+ [Segurança no Amazon ECR](https://docs.aws.amazon.com/AmazonECR/latest/userguide/security.html)
+ [Segurança no Amazon ECS](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/security.html)
+ [Segurança no Amazon EFS](https://docs.aws.amazon.com/efs/latest/ug/security-considerations.html)
+ [Segurança no FSx Lustre](https://docs.aws.amazon.com/fsx/latest/LustreGuide/security.html)
+ [Segurança em AWS Identity and Access Management (IAM)](https://docs.aws.amazon.com/IAM/latest/UserGuide/security.html)
+ [Segurança no EC2 Image Builder](https://docs.aws.amazon.com/imagebuilder/latest/userguide/image-builder-security.html)
+ [Segurança em AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/lambda-security.html)
+ [Segurança no Amazon Route 53](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/security.html)
+ [Segurança no Amazon SNS](https://docs.aws.amazon.com/sns/latest/dg/sns-security.html)
+ [Segurança no Amazon SQS (para a AWS ParallelCluster versão 2.x.)](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-security.html)
+ [Segurança no Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/dev/security.html)
+ [Segurança no Amazon VPC](https://docs.aws.amazon.com/vpc/latest/userguide/security.html)

# Proteção de dados em AWS ParallelCluster
<a name="data-protection"></a>

O modelo de [responsabilidade AWS compartilhada modelo](https://aws.amazon.com/compliance/shared-responsibility-model/) se aplica à proteção de dados em. Conforme descrito neste modelo, AWS é responsável por proteger a infraestrutura global que executa todos os Nuvem AWS. Você é responsável por manter o controle sobre o conteúdo hospedado nessa infraestrutura. Você também é responsável pelas tarefas de configuração e gerenciamento de segurança dos Serviços da AWS que usa. Para saber mais sobre a privacidade de dados, consulte as [Data Privacy FAQ](https://aws.amazon.com/compliance/data-privacy-faq/). Para saber mais sobre a proteção de dados na Europa, consulte a postagem do blog [AWS Shared Responsibility Model and RGPD](https://aws.amazon.com/blogs/security/the-aws-shared-responsibility-model-and-gdpr/) no *Blog de segurança da AWS *.

Para fins de proteção de dados, recomendamos que você proteja Conta da AWS as credenciais e configure usuários individuais com Centro de Identidade do AWS IAM ou AWS Identity and Access Management (IAM). Dessa maneira, cada usuário receberá apenas as permissões necessárias para cumprir suas obrigações de trabalho. Recomendamos também que você proteja seus dados das seguintes formas:
+ Use uma autenticação multifator (MFA) com cada conta.
+ Use SSL/TLS para se comunicar com AWS os recursos. Exigimos TLS 1.2 e recomendamos TLS 1.3.
+ Configure a API e o registro de atividades do usuário com AWS CloudTrail. Para obter informações sobre o uso de CloudTrail trilhas para capturar AWS atividades, consulte Como [trabalhar com CloudTrail trilhas](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-trails.html) no *Guia AWS CloudTrail do usuário*.
+ Use soluções de AWS criptografia, juntamente com todos os controles de segurança padrão Serviços da AWS.
+ Use serviços gerenciados de segurança avançada, como o Amazon Macie, que ajuda a localizar e proteger dados sensíveis armazenados no Amazon S3.
+ Se você precisar de módulos criptográficos validados pelo FIPS 140-3 ao acessar AWS por meio de uma interface de linha de comando ou de uma API, use um endpoint FIPS. Para saber mais sobre os endpoints FIPS disponíveis, consulte [Federal Information Processing Standard (FIPS) 140-3](https://aws.amazon.com/compliance/fips/).

É altamente recomendável que nunca sejam colocadas informações confidenciais ou sensíveis, como endereços de e-mail de clientes, em tags ou campos de formato livre, como um campo **Nome**. Isso inclui quando você trabalha com ou Serviços da AWS usa o console, a API ou AWS SDKs. AWS CLI Quaisquer dados inseridos em tags ou em campos de texto de formato livre usados para nomes podem ser usados para logs de faturamento ou de diagnóstico. Se você fornecer um URL para um servidor externo, é fortemente recomendável que não sejam incluídas informações de credenciais no URL para validar a solicitação nesse servidor.

## Criptografia de dados
<a name="data-encryption"></a>

Um recurso fundamental de qualquer serviço seguro é que as informações sejam criptografadas quando não estão sendo usadas ativamente.

### Criptografia em repouso
<a name="encryption-rest"></a>

AWS ParallelCluster por si só, não armazena nenhum dado do cliente além das credenciais necessárias para interagir com os AWS serviços em nome do usuário.

Para dados nos nós do cluster, os dados podem ser criptografados em repouso.

Para volumes do Amazon EBS, a criptografia é configurada usando as configurações [`EbsSettings`](SharedStorage-v3.md#SharedStorage-v3-EbsSettings)/`Encrypted` e [`EbsSettings`](SharedStorage-v3.md#SharedStorage-v3-EbsSettings)/`KmsKeyId` na seção [`EbsSettings`](SharedStorage-v3.md#SharedStorage-v3-EbsSettings). Para ter mais informações, consulte [Amazon EBS encryption](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSEncryption.html) no Guia do usuário do Amazon EC2.

Para volumes do Amazon EFS, a criptografia é configurada usando as configurações [`EfsSettings`](SharedStorage-v3.md#SharedStorage-v3-EfsSettings)/`Encrypted` e [`EfsSettings`](SharedStorage-v3.md#SharedStorage-v3-EfsSettings)/`KmsKeyId` na seção [`EfsSettings`](SharedStorage-v3.md#SharedStorage-v3-EfsSettings). Para obter mais informações, consulte [Como funciona a Criptografia de dados em repouso](https://docs.aws.amazon.com/efs/latest/ug/encryption-at-rest.html#howencrypt) no *Guia do usuário do Amazon Elastic File System*.

 FSx Para sistemas de arquivos Lustre, a criptografia de dados em repouso é ativada automaticamente ao criar um sistema de FSx arquivos da Amazon. Para obter mais informações, consulte [Criptografar dados em repouso no](https://docs.aws.amazon.com/fsx/latest/LustreGuide/encryption-at-rest.html) Guia do *usuário do Amazon FSx for Lustre.*

Para tipos de instância com NVMe volumes, os dados nos volumes de armazenamento de NVMe instâncias são criptografados usando uma cifra XTS-AES-256 implementada em um módulo de hardware na instância. As chaves de criptografia são geradas usando o módulo de hardware e são exclusivas para cada dispositivo de armazenamento de NVMe instância. Todas as chaves de criptografia são destruídas quando a instância é interrompida ou encerrada e não podem ser recuperadas. Você não pode desativar essa criptografia e não pode fornecer sua própria chave de criptografia. Para ter mais informações, consulte [Criptografia em repouso](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/data-protection.html#encryption-rest) no *Guia do usuário do Amazon EC2*.

Se você costuma AWS ParallelCluster invocar um AWS serviço que transmite dados do cliente para seu computador local para armazenamento, consulte o capítulo Segurança e Conformidade no Guia do Usuário desse serviço para obter informações sobre como esses dados são armazenados, protegidos e criptografados.

### Criptografia em trânsito
<a name="encryption-transit"></a>

Por padrão, todos os dados transmitidos do computador cliente em execução AWS ParallelCluster e dos pontos finais do AWS serviço são criptografados enviando tudo por meio de uma HTTPS/TLS conexão. O tráfego entre os nós no cluster pode ser criptografado automaticamente, dependendo dos tipos de instância selecionados. Para ter mais informações, consulte [Criptografia em trânsito](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/data-protection.html#encryption-transit) no *Guia do usuário do Amazon EC2*.

## Consulte também
<a name="security-data-protection-seealso"></a>
+ [Proteção de dados no Amazon EC2 ](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/data-protection.html)
+ [Proteção de dados no EC2 Image Builder](https://docs.aws.amazon.com/imagebuilder/latest/userguide/data-protection.html)
+ [Proteção de dados em CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/security-data-protection.html)
+ [Proteção de dados no Amazon EFS](https://docs.aws.amazon.com/efs/latest/ug/efs-backup-solutions.html)
+ [Proteção de dados no Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/dev/DataDurability.html)
+ [Proteção de dados no FSx Lustre](https://docs.aws.amazon.com/fsx/latest/LustreGuide/data-protection.html)

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

AWS ParallelCluster usa funções para acessar seus AWS recursos e seus serviços. As políticas de instância e usuário AWS ParallelCluster usadas para conceder permissões estão documentadas em[AWS Identity and Access Management permissões em AWS ParallelCluster](iam-roles-in-parallelcluster-v3.md).

A única diferença importante é como você faz a autenticação ao usar um usuário do padrão e credenciais de longo prazo. Embora um usuário exija uma senha para acessar o console de um AWS serviço, esse mesmo usuário precisa de um par de chaves de acesso para realizar as mesmas operações usando AWS ParallelCluster. Todas as outras credenciais de curto prazo são usadas da mesma maneira que são usadas com o console.

***As credenciais usadas pelo AWS ParallelCluster são armazenadas em arquivos de texto simples e não são criptografadas.***
+ O `$HOME/.aws/credentials` arquivo armazena as credenciais de longo prazo necessárias para acessar seus AWS recursos. Isso inclui o ID de chave de acesso e a chave de acesso secreta.
+ As credenciais de curto prazo, como as de funções que você assume, ou que são para serviços do Centro de Identidade do AWS IAM , também são armazenadas nas pastas `$HOME/.aws/cli/cache` e `$HOME/.aws/sso/cache`, respectivamente.

**Mitigação de riscos**
+ É altamente recomendável que você configure as permissões do sistema de arquivos na pasta `$HOME/.aws` e suas respectivas pastas e arquivos filho para restringir o acesso somente a utilizadores autorizados.
+ Use funções com credenciais temporárias sempre que possível para reduzir a oportunidade de danos se as credenciais estiverem comprometidas. Use credenciais de longo prazo apenas para solicitar e atualizar credenciais de função de curto prazo.

# Validação de conformidade para AWS ParallelCluster
<a name="security-compliance-validation"></a>

Auditores terceirizados avaliam a segurança e a conformidade dos AWS serviços como parte de vários programas de AWS conformidade. Usar AWS ParallelCluster para acessar um serviço não altera a conformidade desse serviço. 

Para obter uma lista de AWS serviços no escopo de programas de conformidade específicos, consulte [AWS serviços no escopo por programa de conformidade AWS](https://aws.amazon.com/compliance/services-in-scope/) . Para obter informações gerais, consulte programas de [AWS conformidade programas AWS](https://aws.amazon.com/compliance/programs/) de .

Você pode baixar relatórios de auditoria de terceiros usando AWS Artifact o. Para obter mais informações, consulte [Fazer download de relatórios no AWS Artifact](https://docs.aws.amazon.com/artifact/latest/ug/downloading-documents.html).

Sua responsabilidade de conformidade ao usar AWS ParallelCluster é determinada pela confidencialidade de seus dados, pelos objetivos de conformidade de sua empresa e pelas leis e regulamentações aplicáveis. AWS fornece os seguintes recursos para ajudar na conformidade:
+ [Guias de início rápido](https://aws.amazon.com/quickstart/?awsf.quickstart-homepage-filter=categories%23security-identity-compliance) sobre sobre segurança e conformidade — Esses guias de implantação discutem considerações arquitetônicas e fornecem etapas para a implantação de ambientes básicos com foco em segurança e conformidade em. AWS
+ Whitepaper sobre [arquitetura para segurança e conformidade com a HIPAA na Amazon Web Services — Este AWS whitepaper](https://docs.aws.amazon.com/pdfs/whitepapers/latest/architecting-hipaa-security-and-compliance-on-aws/architecting-hipaa-security-and-compliance-on-aws.pdf) descreve como as empresas podem usar para criar aplicativos compatíveis com a HIPAA. AWS 
+ AWS recursos de [https://aws.amazon.com/compliance/resources/](https://aws.amazon.com/compliance/resources/) de conformidade — Essa coleção de pastas de trabalho e guias pode ser aplicada ao seu setor e local.
+ [Avaliação de recursos com as regras](https://docs.aws.amazon.com/config/latest/developerguide/evaluate-config.html) do *Guia do AWS Config Desenvolvedor* — O AWS Config serviço avalia se suas configurações de recursos estão em conformidade com as práticas internas, as diretrizes e os regulamentos do setor.
+ [AWS Security Hub CSPM](https://docs.aws.amazon.com/securityhub/latest/userguide/what-is-securityhub.html)— Esse AWS serviço fornece uma visão abrangente do seu estado de segurança interno, AWS que ajuda você a verificar sua conformidade com os padrões e as melhores práticas do setor de segurança.

# Impor uma versão mínima do TLS 1.2
<a name="security-enforcing-tls"></a>

Para aumentar a segurança ao se comunicar com AWS os serviços, você deve configurá-lo AWS ParallelCluster para usar o TLS 1.2 ou posterior. Quando você usa AWS ParallelCluster, o Python é usado para definir a versão do TLS.

Para garantir que não AWS ParallelCluster use uma versão TLS anterior ao TLS 1.2, talvez seja necessário recompilar o OpenSSL para impor esse mínimo e, em seguida, recompilar o Python para usar o OpenSSL recém-criado. 

## Determinar os protocolos atualmente compatíveis
<a name="enforcing-tls-supported"></a>

Primeiro, crie um certificado autoassinado a ser usado para o servidor de teste e o Python SDK usando OpenSSL.

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

Depois, crie um servidor de teste usando OpenSSL.

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

Em uma nova janela do terminal, crie um ambiente virtual e instale o Python SDK.

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

Crie um script Python chamado `check.py` que usa a biblioteca HTTP subjacente do 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'))
```

Execute o novo script.

```
$ python check.py
```

Ele exibe detalhes sobre a conexão feita. Procure “Protocol : ” na saída. Se a saída for "TLSv1.2" ou posterior, o SDK usará como padrão o TLS v1.2 ou posterior. Se for uma versão anterior, é necessário recompilar o OpenSSL e recompilar o Python.

No entanto, mesmo que a instalação do Python defina como padrão TLS v1.2 ou posterior, ainda será possível que o Python renegocie para uma versão anterior ao TLS v1.2 se o servidor não for compatível com TLS v1.2 ou posterior. Para verificar se o Python não renegocia automaticamente para versões anteriores, reinicie o servidor de teste com o seguinte.

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

Se estiver usando uma versão anterior do OpenSSL, talvez você não tenha o sinalizador `-no_tls_3` disponível. Se esse for o caso, remova o sinalizador porque a versão do OpenSSL que você está usando não é compatível com TLS v1.3. Execute novamente o script Python.

```
$ python check.py
```

Se a instalação do Python não renegocia para versões anteriores ao TLS 1.2 corretamente, você deve receber um erro 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)')))
```

Se você conseguir fazer uma conexão, será necessário recompilar o OpenSSL e o Python para desabilitar a negociação de protocolos anteriores ao TLS v1.2.

## Compilar OpenSSL e Python
<a name="enforcing-tls-compile"></a>

Para garantir que isso AWS ParallelCluster não negocie nada anterior ao TLS 1.2, você precisa recompilar o OpenSSL e o Python. Para fazer isso, copie o seguinte conteúdo para criar um script e executá-lo.

```
#!/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
```

Isso compila uma versão do Python que tem um OpenSSL vinculado estaticamente que não negocia automaticamente nada anterior ao TLS 1.2. Isso também instala o OpenSSL no diretório `/opt/openssl-with-min-tls1_2` e instala o Python no diretório `/opt/python-with-min-tls1_2`. Depois de executar esse script, verifique a instalação da nova versão do Python.

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

Isso deve imprimir o seguinte.

```
Python 3.8.1
```

Para verificar se essa nova versão do Python não negocia uma versão anterior ao TLS 1.2, execute novamente as etapas em [Determinar os protocolos atualmente compatíveis](#enforcing-tls-supported) usando a versão do Python recém-instalada (ou seja, `/opt/python-with-min-tls1_2/bin/python3`).

# Configurando grupos de segurança para ambientes restritos
<a name="security-groups-configuration"></a>

Por padrão, AWS ParallelCluster cria e configura grupos de segurança que permitem todo o tráfego entre os nós do cluster. Em ambientes altamente restritos, talvez seja necessário limitar o acesso à rede somente às portas necessárias para a operação do cluster. Esta seção descreve como configurar grupos de segurança personalizados com acesso restrito para sua AWS ParallelCluster implantação.

## Visão geral dos grupos de segurança
<a name="security-groups-configuration-overview"></a>

AWS ParallelCluster usa grupos de segurança para controlar o tráfego de rede entre o nó principal, os nós de computação e os nós de login (se configurados). Por padrão, ao AWS ParallelCluster criar um cluster, ele cria grupos de segurança que permitem todo o tráfego entre os nós dentro do cluster. Em ambientes com requisitos de segurança rígidos, você pode fornecer grupos de segurança personalizados que limitam o tráfego somente às portas necessárias.

Os grupos de segurança podem ser configurados nas seguintes seções da configuração do cluster:
+ [`HeadNode`/`Networking`](HeadNode-v3.md#HeadNode-v3-Networking)- Controla o acesso de e para o nó principal
+ [`Scheduling`/`SlurmQueues`/`Networking`](Scheduling-v3.md#Scheduling-v3-SlurmQueues-Networking)- Controla o acesso de e para os nós de computação
+ [`LoginNodes`](LoginNodes-v3.md)- Controla o acesso de e para os nós de login (se configurado)

Para cada uma dessas seções, você pode especificar:
+ `SecurityGroups`- Substitui os grupos de segurança padrão que AWS ParallelCluster criariam
+ `AdditionalSecurityGroups`- Adiciona grupos de segurança além dos grupos padrão criados por AWS ParallelCluster

## Portas necessárias para operação de cluster
<a name="security-groups-configuration-required-ports"></a>

Ao configurar grupos de segurança personalizados, você deve garantir que as seguintes portas estejam abertas entre os nós apropriados:


**Portas necessárias para o nó principal**  

| Porta | Protocolo | Direção | Finalidade | 
| --- | --- | --- | --- | 
| 22 | TCP | Entrada | Acesso SSH ao nó principal (a partir dos intervalos de IP permitidos) | 
| 6817-6819 | TCP | Entrada | Portas do controlador Slurm (dos nós de computação e login) | 
| 6817-6819 | TCP | Saída | Portas do controlador Slurm (para computadores e nós de login) | 
| 8443 | TCP | Entrada | NICE DCV (se ativado, a partir dos intervalos de IP permitidos) | 
| 11, 2049 | TCP/UDP | Entrada | NFS (dos nós de computação e login, se estiver usando o NFS para armazenamento compartilhado) | 
| 443 | TCP | Saída | Acesso HTTPS aos AWS serviços (se não estiver usando VPC endpoints) | 


**Portas necessárias para nós de computação**  

| Porta | Protocolo | Direção | Finalidade | 
| --- | --- | --- | --- | 
| 22 | TCP | Entrada | Acesso SSH (do nó principal e dos nós de login) | 
| 6818 | TCP | Entrada | Porta do daemon Slurm (do nó principal) | 
| 6817-6819 | TCP | Saída | Portas do controlador Slurm (até o nó principal) | 
| 11, 2049 | TCP/UDP | Saída | NFS (para o nó principal, se estiver usando o NFS para armazenamento compartilhado) | 
| 443 | TCP | Saída | Acesso HTTPS aos AWS serviços (se não estiver usando VPC endpoints) | 

Se você estiver usando o EFA (Elastic Fabric Adapter), também deverá permitir todo o tráfego entre os nós de computação que tenham o EFA ativado:
+ Todo o tráfego TCP e UDP entre nós de computação com EFA
+ Todo o tráfego no dispositivo EFA entre os nós de computação com o EFA

**nota**  
Se você estiver usando sistemas de armazenamento compartilhado, como FSx Lustre, Amazon EFS ou outras soluções de armazenamento, precisará garantir que as portas apropriadas também estejam abertas para esses serviços.

## Criação de grupos de segurança personalizados
<a name="security-groups-configuration-custom"></a>

Para criar grupos de segurança personalizados para sua AWS ParallelCluster implantação, siga estas etapas:

1. Crie grupos de segurança para o nó principal, os nós de computação e os nós de login (se aplicável) usando o AWS Management Console, a AWS CLI ou. AWS CloudFormation

1. Configure as regras do grupo de segurança para permitir somente o tráfego necessário, conforme descrito na seção anterior.

1. Faça referência a esses grupos de segurança no arquivo de configuração do cluster.

Aqui está um exemplo de como criar grupos de segurança usando a 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)
```

## Configurando grupos de segurança na configuração do cluster
<a name="security-groups-configuration-cluster-config"></a>

Depois de criar seus grupos de segurança personalizados, você pode referenciá-los no arquivo de configuração do 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
      ...
```

Ao usar`SecurityGroups`, AWS ParallelCluster usará somente os grupos de segurança que você especificar, substituindo os padrões. Ao usar`AdditionalSecurityGroups`, AWS ParallelCluster usará os grupos de segurança padrão que ele cria e os adicionais que você especificar.

**Atenção**  
Se você habilitar o [Elastic Fabric Adapter (EFA)](Scheduling-v3.md#yaml-Scheduling-SlurmQueues-ComputeResources-Efa) para suas instâncias de computação, certifique-se de que suas instâncias habilitadas para EFA sejam membros de um grupo de segurança que permite todo o tráfego de entrada e saída para si mesmo. Isso é necessário para que o EFA funcione corretamente.

## Usando VPC endpoints em ambientes restritos
<a name="security-groups-configuration-vpc-endpoints"></a>

Em ambientes altamente restritos, talvez você queira implantar AWS ParallelCluster em uma sub-rede sem acesso à Internet. Nesse caso, você precisará configurar VPC endpoints para permitir que o cluster se comunique com os serviços. AWS Para obter instruções detalhadas, consulte [AWS ParallelCluster em uma única sub-rede sem acesso à Internet](aws-parallelcluster-in-a-single-public-subnet-no-internet-v3.md).

Ao usar VPC endpoints, certifique-se de que seus grupos de segurança permitam tráfego de e para os VPC endpoints. Você pode fazer isso adicionando os grupos de segurança associados aos endpoints da VPC à `AdditionalSecurityGroups` configuração do seu nó principal e dos nós de computação.

```
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
```

## Práticas recomendadas para configuração de grupos de segurança
<a name="security-groups-configuration-best-practices"></a>

Ao configurar grupos de segurança para AWS ParallelCluster ambientes restritos, considere as seguintes práticas recomendadas:
+ **Princípio do menor privilégio**: abra somente as portas necessárias para a operação do cluster.
+ **Use referências de grupos de segurança**: quando possível, use referências de grupos de segurança (permitindo tráfego de outro grupo de segurança) em vez de blocos CIDR para limitar o tráfego entre os componentes do cluster.
+ **Restrinja o acesso** SSH: limite o acesso SSH ao nó principal somente aos intervalos de IP que precisam dele usando a configuração [`HeadNode`/`Ssh`/`AllowedIps`](HeadNode-v3.md#yaml-HeadNode-Ssh-AllowedIps).
+ **Restrinja o acesso ao DCV**: se estiver usando o NICE DCV, limite o acesso somente aos intervalos de IP que precisam dele usando [`HeadNode`a configuração`Dcv`//`AllowedIps`](HeadNode-v3.md#yaml-HeadNode-Dcv-AllowedIps).
+ **Teste minuciosamente**: depois de configurar grupos de segurança personalizados, teste minuciosamente todas as funcionalidades do cluster para garantir que todos os caminhos de comunicação necessários estejam funcionando.
+ **Documente sua configuração**: mantenha a documentação da configuração do seu grupo de segurança, incluindo quais portas estão abertas e por que elas são necessárias.

## Solução de problemas do grupo de segurança
<a name="security-groups-configuration-troubleshooting"></a>

Se você encontrar problemas após configurar grupos de segurança personalizados, considere as seguintes etapas de solução de problemas:
+ **Verifique os registros do cluster: analise** os registros do cluster em CloudWatch Logs para ver se há erros de conexão.
+ **Verifique as regras do grupo de segurança**: certifique-se de que todas as portas necessárias estejam abertas entre os nós apropriados.
+ **Teste a conectividade**: use ferramentas como `telnet` ou `nc` para testar a conectividade entre nós em portas específicas.
+ **Expanda temporariamente as regras**: se você tiver problemas para identificar quais portas são necessárias, permita temporariamente todo o tráfego entre os nós do cluster e, em seguida, restrinja-o gradualmente à medida que identifica as portas necessárias.
+ **Verifique a configuração do VPC endpoint**: se você estiver usando VPC endpoints, verifique se eles estão configurados corretamente e se os grupos de segurança permitem tráfego de e para eles.

Se você continuar enfrentando problemas, poderá voltar a usar os grupos de segurança padrão criados AWS ParallelCluster removendo a `SecurityGroups` configuração do arquivo de configuração do cluster.