

 O [Guia de referência da API do AWS SDK para JavaScript V3](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/) descreve em detalhes todas as operações da API para o AWS SDK para JavaScript versão 3 (V3). 

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á.

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

Para aumentar a segurança ao se comunicar com AWS os serviços, configure o AWS SDK para JavaScript para usar o TLS 1.2 ou posterior. 

O Transport Layer Security (TLS) é um protocolo usado por navegadores da web e outros aplicativos para garantir a privacidade e a integridade dos dados trocados por meio de uma rede.

**Importante**  
Em 10 de junho de 2024, [anunciamos](https://aws.amazon.com/blogs//security/faster-aws-cloud-connections-with-tls-1-3/) que o TLS 1.3 está disponível nos endpoints da API AWS de serviço em cada uma das regiões. AWS A AWS SDK para JavaScript v3 não negocia a versão TLS em si. Em vez disso, ele usa a versão do TLS determinada pelo Node.js, que pode ser configurada via `https.Agent`. A AWS recomenda usar a versão atual do Active LTS do Node.js.

## Verificar e impor o TLS no Node.js
<a name="node-verify-enforce-tls"></a>

Quando você usa o AWS SDK para JavaScript com o Node.js, a camada de segurança subjacente do Node.js é usada para definir a versão do TLS.

O Node.js 12.0.0 e posterior usam uma versão mínima do OpenSSL 1.1.1b, que oferece suporte ao TLS 1.3. O Node.js usa o TLS 1.3 quando disponível por padrão. É possível especificar explicitamente um perfil diferente, se necessário.

### Verificar a versão do OpenSSL e do TLS
<a name="verify-tls-version"></a>

Para obter a versão do OpenSSL usada pelo Node.js no seu computador, execute o comando a seguir.

```
node -p process.versions
```

A versão do OpenSSL na lista é a versão usada pelo Node.js, como mostrado no exemplo a seguir.

```
openssl: '1.1.1b'
```

Para obter a versão do TLS usada pelo Node.js no seu computador, inicie o shell do Node e execute os comandos a seguir, na ordem.

```
> var tls = require("tls");
> var tlsSocket = new tls.TLSSocket();
> tlsSocket.getProtocol();
```

O último comando gera a versão do TLS, como mostrado no exemplo a seguir.

```
'TLSv1.3'
```

O padrão do Node.js é usar essa versão do TLS e tentará negociar outra versão do TLS se uma chamada não for bem-sucedida.

### Como verificar as versões mínima e máxima compatíveis do TLS
<a name="checking-tls-version-min-max"></a>

Os desenvolvedores podem verificar as versões mínima e máxima do TLS compatíveis no Node.js usando o seguinte script:

```
import tls from "tls";
console.log("Supported TLS versions:", tls.DEFAULT_MIN_VERSION + " to " + tls.DEFAULT_MAX_VERSION);
```

O último comando indica a versão mínima e máxima padrão do TLS, como mostrado no exemplo a seguir.

```
Supported TLS versions: TLSv1.2 to TLSv1.3
```

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

O Node.js negocia uma versão do TLS quando uma chamada falha. Você pode aplicar a versão mínima permitida do TLS durante essa negociação, seja ao executar um script na linha de comando ou por solicitação em seu código. JavaScript 

Para especificar a versão mínima do TLS por meio da linha de comandos, você deve usar o Node.js versão 11.4.0 ou posterior. Para instalar uma versão específica do Node.js, primeiro instale o Gerenciador de versão do Node (nvm) usando as etapas encontradas em [Instalação e atualização do Gerenciador de versão do Node](https://github.com/nvm-sh/nvm#installing-and-updating). Execute os comandos a seguir para instalar e usar uma versão específica do Node.js. 

```
nvm install 11
nvm use 11
```

------
#### [ Enforce TLS 1.2 ]

Para impor que o TLS 1.2 seja a versão mínima permitida, especifique o argumento `--tls-min-v1.2` ao executar o script, como mostrado no exemplo a seguir.

```
node --tls-min-v1.2 yourScript.js
```

Para especificar a versão mínima permitida do TLS para uma solicitação específica em seu JavaScript código, use o `minVersion` parâmetro para especificar o protocolo, conforme mostrado no exemplo a seguir.

```
import https from "https";
import { NodeHttpHandler } from "@smithy/node-http-handler";
import { DynamoDBClient } from "@aws-sdk/client-dynamodb";

const client = new DynamoDBClient({
    region: "us-west-2",
    requestHandler: new NodeHttpHandler({
        httpsAgent: new https.Agent(
            {
                minVersion: 'TLSv1.2'
            }
        )
    })
});
```

------
#### [ Enforce TLS 1.3 ]

Para impor que o TLS 1.3 seja a versão mínima permitida, especifique o argumento `--tls-min-v1.3` ao executar o script, como mostrado no exemplo a seguir.

```
node --tls-min-v1.3 yourScript.js
```

Para especificar a versão mínima permitida do TLS para uma solicitação específica em seu JavaScript código, use o `minVersion` parâmetro para especificar o protocolo, conforme mostrado no exemplo a seguir.

```
import https from "https";
import { NodeHttpHandler } from "@smithy/node-http-handler";
import { DynamoDBClient } from "@aws-sdk/client-dynamodb";

const client = new DynamoDBClient({
    region: "us-west-2",
    requestHandler: new NodeHttpHandler({
        httpsAgent: new https.Agent(
            {
                minVersion: 'TLSv1.3'
            }
        )
    })
});
```

------

## Verificar e impor o TLS em um script de navegador
<a name="browser-verify-enforce-tls"></a>

Quando você usa o SDK JavaScript em um script de navegador, as configurações do navegador controlam a versão do TLS usada. A versão do TLS usada pelo navegador não pode ser descoberta nem definida por script e deve ser configurada pelo usuário. Para verificar e impor a versão do TLS usada em um script de navegador, consulte as instruções para seu navegador específico.

------
#### [ Microsoft Internet Explorer ]

1. Abra o **Internet Explorer**.

1. Na barra de menu, escolha a guia **Ferramentas** - **Opções da Internet** - **Avançado**.

1. Role para baixo até a categoria **Segurança** e marque manualmente a caixa de opção **Usar TLS 1.2**.

1. Clique em **OK**.

1. Feche o navegador e reinicie o Internet Explorer.

------
#### [ Microsoft Edge ]

1. Na caixa de pesquisa do menu do Windows, digite*Internet options*.

1. Em **Melhor correspondência**, clique em **Opções da Internet**.

1. Na janela **Propriedades da Internet**, na guia **Avançado**, role para baixo até a seção **Segurança**.

1. Marque a caixa de seleção **Usar TLS 1.2**.

1. Clique em **OK**.

------
#### [ Google Chrome ]

1. Abra o **Google Chrome**.

1. Clique em **Alt F** e selecione **Configurações**.

1. Role para baixo e selecione **Mostrar configurações avançadas...**.

1. Role para baixo até a seção **Sistema** e clique em **Abrir configurações de proxy...**.

1. Selecione a guia **Avançado**.

1. Role para baixo até a categoria **Segurança** e marque manualmente a caixa de opção **Usar TLS 1.2**.

1. Clique em **OK**.

1. Feche seu navegador e reinicie o Google Chrome.

------
#### [ Mozilla Firefox ]

1. Abra o **Firefox**.

1. Na barra de endereço, digite **about:config** e pressione Enter.

1. No campo **Pesquisar**, digite **tls**. Localize e clique duas vezes na entrada de **security.tls.version.min**.

1. Defina o valor inteiro como 3 para forçar o protocolo TLS 1.2 a ser o padrão.

1. Clique em **OK**.

1. Feche seu navegador e reinicie o Mozilla Firefox.

------
#### [ Apple Safari ]

Não há opções para ativar os protocolos SSL. Se você estiver usando o Safari versão 7 ou superior, o TLS 1.2 será ativado automaticamente.

------

## Recuperando a versão TLS em AWS SDK para JavaScript solicitações v3
<a name="retrieve-tls-version"></a>

Você pode registrar a versão do TLS usada em uma solicitação do AWS SDK com o seguinte script:

```
import { S3Client, ListBucketsCommand } from "@aws-sdk/client-s3";
import tls from "tls";

const client = new S3Client({ region: "us-east-1" });

const tlsSocket = new tls.TLSSocket();

client.middlewareStack.add((next, context) => async (args) => {
  console.log(`Using TLS version: ${tlsSocket.getProtocol()}`);
    return next(args);
});
```

O último comando gera a versão do TLS em uso, como mostrado no exemplo a seguir.

```
Using TLS version: TLSv1.3
```