

 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 TLS determinada por Node.js, que é configurável via. `https.Agent` AWS recomenda usar a versão atual do Active LTS do Node.js.

## Verifique e aplique o TLS em Node.js
<a name="node-verify-enforce-tls"></a>

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

Node.js 12.0.0 e versões posteriores usam uma versão mínima do OpenSSL 1.1.1b, que suporta TLS 1.3. Node.js o padrão é usar o TLS 1.3 quando disponível. É 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 em seu computador, execute o seguinte comando.

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

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

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

Para obter a versão do TLS usada pelo seu Node.js computador, inicie o shell do Node e execute os seguintes comandos, em 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'
```

Node.js usa como padrão essa versão do TLS e tenta 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 de TLS suportadas 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>

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 na linha de comando, você deve usar a Node.js versão 11.4.0 ou posterior. Para instalar uma Node.js versão específica, primeiro instale o Node Version Manager (nvm) usando as etapas encontradas em Instalação e atualização do gerenciador de versões do [ Node. ](https://github.com/nvm-sh/nvm#installing-and-updating) Em seguida, execute os seguintes comandos 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 para 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 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
```