

 Le [guide de référence de l'API AWS SDK pour JavaScript V3](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/) décrit en détail toutes les opérations de l'API pour la AWS SDK pour JavaScript version 3 (V3). 

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.

# Appliquer une version minimale de TLS
<a name="enforcing-tls"></a>

Pour renforcer la sécurité lors de la communication avec les AWS services, configurez le AWS SDK pour JavaScript pour utiliser le protocole TLS 1.2 ou version ultérieure. 

Transport Layer Security (TLS) est un protocole utilisé par les navigateurs web et d'autres applications pour assurer la confidentialité et l'intégrité des données échangées sur un réseau.

**Important**  
Depuis le 10 juin 2024, nous avons [annoncé](https://aws.amazon.com/blogs//security/faster-aws-cloud-connections-with-tls-1-3/) que le protocole TLS 1.3 est disponible sur les points de terminaison des API de AWS service dans chacune des AWS régions. La AWS SDK pour JavaScript v3 ne négocie pas la version TLS elle-même. Il utilise plutôt la version TLS déterminée par Node.js, qui est configurable via`https.Agent`. AWS recommande d'utiliser la version Active LTS actuelle de Node.js.

## Vérifier et appliquer TLS dans Node.js
<a name="node-verify-enforce-tls"></a>

Lorsque vous utilisez le AWS SDK pour JavaScript with Node.js, la couche de sécurité Node.js sous-jacente est utilisée pour définir la version TLS.

Node.js 12.0.0 et versions ultérieures utilisent une version minimale d'OpenSSL 1.1.1b, qui prend en charge le protocole TLS 1.3. Node.js utilise par défaut le protocole TLS 1.3 lorsqu'il est disponible. Vous pouvez spécifier une version différente de manière explicite si nécessaire.

### Vérifier la version d'OpenSSL et TLS
<a name="verify-tls-version"></a>

Pour obtenir la version d'OpenSSL utilisée par Node.js sur votre ordinateur, exécutez la commande suivante.

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

La version d'OpenSSL dans la liste est la version utilisée par Node.js, comme illustré dans l'exemple suivant.

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

Pour obtenir la version de TLS utilisée par Node.js sur votre ordinateur, démarrez le shell Node et exécutez les commandes suivantes, dans l'ordre.

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

La dernière commande génère la version TLS, comme illustré dans l'exemple suivant.

```
'TLSv1.3'
```

Node.js utilise par défaut cette version de TLS et tente de négocier une autre version de TLS si un appel échoue.

### Vérification des versions TLS minimales et maximales prises en charge
<a name="checking-tls-version-min-max"></a>

Les développeurs peuvent vérifier les versions TLS minimale et maximale prises en charge dans Node.js à l'aide du script suivant :

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

La dernière commande affiche les versions TLS minimale et maximale par défaut, comme indiqué dans l'exemple suivant.

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

### Appliquer une version minimale de TLS
<a name="enforce-tls-version"></a>

Node.js négocie une version de TLS lorsqu'un appel échoue. Vous pouvez appliquer la version TLS minimale autorisée au cours de cette négociation, soit lors de l'exécution d'un script depuis la ligne de commande, soit par requête dans votre JavaScript code. 

Pour spécifier la version minimale de TLS à partir de la ligne de commande, vous devez utiliser Node.js version 11.4.0 ou ultérieure. Pour installer une version spécifique de Node.js, installez d'abord le gestionnaire de version de Node (nvm) en suivant les étapes décrites dans la section [Installation et mise à jour du gestionnaire de versions de Node](https://github.com/nvm-sh/nvm#installing-and-updating). Ensuite, exécutez les commandes suivantes pour installer et utiliser une version spécifique de Node.js. 

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

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

Pour faire en sorte que TLS 1.2 soit la version minimale autorisée, spécifiez l'argument `--tls-min-v1.2` lors de l'exécution de votre script, comme indiqué dans l'exemple suivant.

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

Pour spécifier la version TLS minimale autorisée pour une demande spécifique dans votre JavaScript code, utilisez le `minVersion` paramètre pour spécifier le protocole, comme indiqué dans l'exemple suivant.

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

Pour confirmer que TLS 1.3 est la version minimale autorisée, spécifiez l'`--tls-min-v1.3`argument lors de l'exécution de votre script, comme indiqué dans l'exemple suivant.

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

Pour spécifier la version TLS minimale autorisée pour une demande spécifique dans votre JavaScript code, utilisez le `minVersion` paramètre pour spécifier le protocole, comme indiqué dans l'exemple suivant.

```
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'
            }
        )
    })
});
```

------

## Vérifier et appliquer TLS dans un script de navigateur
<a name="browser-verify-enforce-tls"></a>

Lorsque vous utilisez le SDK JavaScript dans un script de navigateur, les paramètres du navigateur contrôlent la version de TLS utilisée. La version de TLS utilisée par le navigateur ne peut pas être découverte ou définie par script et doit être configurée par l'utilisateur. Pour vérifier et appliquer la version de TLS utilisée dans un script de navigateur, veuillez consulter les instructions de votre navigateur spécifique.

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

1. Ouvrez **Internet Explorer**.

1. Dans la barre de menu, choisissez **Outils** - **Options Internet** - onglet **Avancé**.

1. Faites défiler la page jusqu'à la catégorie de **sécurité**, cochez manuellement la case **Utiliser TLS 1.2**.

1. Cliquez sur **OK**.

1. Fermez votre navigateur et redémarrez Internet Explorer.

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

1. Dans le champ de recherche du menu Windows, tapez*Internet options*.

1. Sous **Meilleure correspondance**, cliquez sur **Options Internet**.

1. Dans la fenêtre **Propriétés Internet**, sous l'onglet **Avancé**, faites défiler la page jusqu'à la section **Sécurité**.

1. Cochez la case **User TLS 1.2**.

1. Cliquez sur **OK**.

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

1. Ouvrez **Google Chrome**.

1. Cliquez sur **Alt F** et sélectionnez **Paramètres**.

1. Faites défiler l'écran vers le bas et sélectionnez **Afficher les paramètres avancés...** .

1. Faites défiler la page jusqu'à la section **Système** et cliquez sur **Ouvrir les paramètres du proxy...** .

1. Sélectionnez l'onglet **Avancé**.

1. Faites défiler la page jusqu'à la catégorie de **sécurité**, cochez manuellement la case **Utiliser TLS 1.2**.

1. Cliquez sur **OK**.

1. Fermez votre navigateur et redémarrez Google Chrome.

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

1. Ouvrez **Firefox**.

1. Dans la barre d'adresse, tapez **about:config** et appuyez sur Entrée.

1. Dans le champ **de recherche**, saisissez **tls.** Recherchez et double-cliquez sur l'entrée relative à **security.tls.version.min.**

1. Définissez la valeur entière sur 3 pour forcer le protocole TLS 1.2 à être le protocole par défaut.

1. Cliquez sur **OK**.

1. Fermez votre navigateur et redémarrez Mozilla Firefox.

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

Il n'existe aucune option permettant d'activer les protocoles SSL. Si vous utilisez Safari version 7 ou supérieure, le protocole TLS 1.2 est automatiquement activé.

------

## Récupération de la version TLS dans AWS SDK pour JavaScript les demandes v3
<a name="retrieve-tls-version"></a>

Vous pouvez enregistrer la version TLS utilisée dans une demande de AWS SDK à l'aide du script suivant :

```
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);
});
```

La dernière commande affiche la version TLS utilisée, comme indiqué dans l'exemple suivant.

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