

La AWS SDK pour JavaScript v2 est arrivée end-of-support. Nous vous recommandons de migrer vers la [AWS SDK pour JavaScript version 3](https://docs.aws.amazon.com//sdk-for-javascript/v3/developer-guide/). Pour plus de détails et d'informations sur la façon de migrer, veuillez consulter cette [annonce](https://aws.amazon.com/blogs//developer/announcing-end-of-support-for-aws-sdk-for-javascript-v2/).

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.

# Définition d'informations d'identification dans Node.js
<a name="setting-credentials-node"></a>

Dans Node.js, il existe plusieurs façons de fournir vos informations d'identification au kit SDK. Certaines sont plus sécurisées, tandis que d'autres s'avèrent plus pratiques lors du développement d'une application. Lors de l'obtention d'informations d'identification dans Node.js, soyez prudent lorsque vous utilisez plusieurs sources (une variable d'environnement et un fichier JSON que vous chargez, par exemple). Vous pourriez en effet modifier les autorisations sous lesquelles s'exécute votre code sans vous en rendre compte.

Voici comment fournir vos informations d'identification dans l'ordre recommandé :

1. Chargé à partir de rôles Gestion des identités et des accès AWS (IAM) pour Amazon EC2

1. Chargées à partir du fichier d'informations d'identification partagé (`~/.aws/credentials`)

1. Chargées à partir des variables d'environnement

1. Chargées à partir d'un fichier JSON sur disque

1. Autres classes de fournisseurs d'informations d'identification fournies par le SDK JavaScript 

Si plusieurs sources d'informations d'identification sont disponibles pour le kit SDK, la priorité par défaut de la sélection est la suivante :

1. Informations d'identification qui sont explicitement définies par le biais du constructeur du service client

1. Variables d’environnement

1. Fichier d'informations d'identification partagé

1. Informations d'identification chargées à partir du fournisseur d'informations d'identification ECS (le cas échéant)

1. Informations d'identification obtenues à l'aide d'un processus d'identification spécifié dans le fichier de AWS configuration partagé ou dans le fichier d'informations d'identification partagé. Pour de plus amples informations, veuillez consulter [Chargement des informations d'identification dans Node.js via un processus d'informations d'identification configuré](loading-node-credentials-configured-credential-process.md).

1. Informations d'identification chargées depuis AWS IAM à l'aide du fournisseur d'informations d'identification de l' EC2 instance Amazon (si elles sont configurées dans les métadonnées de l'instance)

Pour plus d'informations, consultez [https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/Credentials.html](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/Credentials.html)et [https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/CredentialProviderChain.html](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/CredentialProviderChain.html)dans la référence de l'API.

**Avertissement**  
Bien que cela soit possible, nous vous déconseillons de coder en dur vos AWS informations d'identification dans votre application. En effet, le codage en dur des informations d'identification risque d'exposer votre ID de clé d'accès et votre clé d'accès secrète.

Les rubriques de cette section décrivent comment charger les informations d'identification dans Node.js.

**Topics**
+ [Chargement des informations d'identification dans Node.js à partir de rôles IAM pour Amazon EC2](loading-node-credentials-iam.md)
+ [Chargement des informations d'identification pour une fonction Lambda Node.js](loading-node-credentials-lambda.md)
+ [Chargement des informations d'identification dans Node.js à partir du fichier d'informations d'identification partagé](loading-node-credentials-shared.md)
+ [Chargement des informations d'identification dans Node.js à partir des variables d'environnement](loading-node-credentials-environment.md)
+ [Chargement des informations d'identification dans Node.js à partir d'un fichier JSON](loading-node-credentials-json-file.md)
+ [Chargement des informations d'identification dans Node.js via un processus d'informations d'identification configuré](loading-node-credentials-configured-credential-process.md)

# Chargement des informations d'identification dans Node.js à partir de rôles IAM pour Amazon EC2
<a name="loading-node-credentials-iam"></a>

Si vous exécutez votre application Node.js sur une EC2 instance Amazon, vous pouvez utiliser les rôles IAM pour qu'Amazon EC2 fournisse automatiquement des informations d'identification à l'instance. Si vous configurez votre instance pour utiliser des rôles IAM, le SDK sélectionne automatiquement les informations d'identification IAM pour votre application, éliminant ainsi le besoin de fournir manuellement des informations d'identification.

Pour plus d'informations sur l'ajout de rôles IAM à une EC2 instance Amazon, consultez la section [Utilisation des rôles IAM pour les EC2 instances Amazon](https://docs.aws.amazon.com/sdkref/latest/guide/access-iam-roles-for-ec2.html) dans le guide de *référence AWS SDKs and Tools*.

# Chargement des informations d'identification pour une fonction Lambda Node.js
<a name="loading-node-credentials-lambda"></a>

Lorsque vous créez une AWS Lambda fonction, vous devez créer un rôle IAM spécial autorisé à exécuter la fonction. Il s'agit du *rôle d'exécution*. Lorsque vous configurez une fonction Lambda, vous devez spécifier le rôle IAM que vous avez créé comme rôle d'exécution correspondant.

Le rôle d'exécution fournit à la fonction Lambda les informations d'identification dont elle a besoin pour s'exécuter et appeler d'autres services Web. Par conséquent, il n'est pas nécessaire de fournir des informations d'identification pour le code Node.js que vous écrivez dans une fonction Lambda.

*Pour plus d'informations sur la création d'un rôle d'exécution Lambda, voir [Gérer les autorisations : utilisation d'un rôle IAM (rôle d'exécution)](https://docs.aws.amazon.com/lambda/latest/dg/intro-permission-model.html#lambda-intro-execution-role) dans le guide du AWS Lambda développeur.*

# Chargement des informations d'identification dans Node.js à partir du fichier d'informations d'identification partagé
<a name="loading-node-credentials-shared"></a>

Vous pouvez conserver vos données AWS d'identification dans un fichier partagé utilisé par SDKs et par l'interface de ligne de commande. Lorsque le SDK est JavaScript chargé, il recherche automatiquement le fichier d'informations d'identification partagé, nommé « informations d'identification ». L'emplacement où vous conservez le fichier d'informations d'identification partagé dépend de votre système d'exploitation :
+ Le fichier d'informations d'identification partagé sous Linux, Unix et macOS : `~/.aws/credentials`
+ Le fichier d'informations d'identification partagé sous Windows : `C:\Users\USER_NAME\.aws\credentials`

Si vous n'avez pas encore de fichier d'informations d'identification partagé, consultez [Authentification du SDK avec AWS](getting-your-credentials.md). Une fois que vous avez suivi ces instructions, vous devriez voir un texte semblable au suivant dans le fichier d'informations d'identification, où *<YOUR\$1ACCESS\$1KEY\$1ID>* se trouvent votre identifiant de clé d'accès et *<YOUR\$1SECRET\$1ACCESS\$1KEY>* votre clé d'accès secrète :

```
[default]
aws_access_key_id = <YOUR_ACCESS_KEY_ID>
aws_secret_access_key = <YOUR_SECRET_ACCESS_KEY>
```

Pour obtenir un exemple illustrant ce fichier en cours d'utilisation, consultez [Démarrage dans Node.js](getting-started-nodejs.md).

L'en-tête de section `[default]` spécifie un profil par défaut et les valeurs associées pour les informations d'identification. Vous pouvez créer d'autres profils dans le même fichier de configuration partagé, chacun avec ses propres informations d'identification. L'exemple suivant illustre un fichier de configuration avec le profil par défaut et deux profils supplémentaires :

```
[default] ; default profile
aws_access_key_id = <DEFAULT_ACCESS_KEY_ID>
aws_secret_access_key = <DEFAULT_SECRET_ACCESS_KEY>
    
[personal-account] ; personal account profile
aws_access_key_id = <PERSONAL_ACCESS_KEY_ID>
aws_secret_access_key = <PERSONAL_SECRET_ACCESS_KEY>
    
[work-account] ; work account profile
aws_access_key_id = <WORK_ACCESS_KEY_ID>
aws_secret_access_key = <WORK_SECRET_ACCESS_KEY>
```

Par défaut, le kit SDK vérifie la variable d'environnement `AWS_PROFILE` afin de déterminer quel profil utiliser. Si la variable `AWS_PROFILE` n'est pas définie dans votre environnement, le kit SDK utilise les informations d'identification du profil `[default]`. Pour utiliser l'un des autres profils, définissez ou modifiez la valeur de la variable d'environnement `AWS_PROFILE`. Par exemple, étant donné le fichier de configuration illustré ci-dessus, pour utiliser les informations d'identification du compte professionnel, définissez la variable d'environnement `AWS_PROFILE` sur `work-account` (en fonction de votre système d'exploitation).

**Note**  
Lorsque vous définissez des variables d'environnement, veillez à entreprendre les actions adéquates par la suite (en fonction des besoins de votre système d'exploitation) pour rendre les variables disponibles dans le shell ou l'environnement de commande.

Après avoir défini la variable d'environnement (si nécessaire), vous pouvez exécuter un JavaScript fichier qui utilise le SDK, par exemple un fichier nommé`script.js`.

```
$ node script.js
```

Vous pouvez également sélectionner de façon explicite le profil utilisé par le kit SDK, en paramétrant `process.env.AWS_PROFILE` avant de charger le kit SDK ou en sélectionnant le fournisseur d'informations d'identification, comme illustré dans l'exemple ci-dessous :

```
var credentials = new AWS.SharedIniFileCredentials({profile: 'work-account'});
AWS.config.credentials = credentials;
```

# Chargement des informations d'identification dans Node.js à partir des variables d'environnement
<a name="loading-node-credentials-environment"></a>

Le SDK détecte automatiquement les AWS informations d'identification définies sous forme de variables dans votre environnement et les utilise pour les demandes du SDK, éliminant ainsi le besoin de gérer les informations d'identification dans votre application. Les variables d'environnement que vous définissez pour fournir vos informations d'identification sont les suivantes :
+ `AWS_ACCESS_KEY_ID`
+ `AWS_SECRET_ACCESS_KEY`
+ `AWS_SESSION_TOKEN`

Pour plus de détails sur la définition des variables d'environnement, consultez la section [Prise en charge des variables d'environnement](https://docs.aws.amazon.com/sdkref/latest/guide/environment-variables.html) dans le *guide de référence des outils AWS SDKs et*.

# Chargement des informations d'identification dans Node.js à partir d'un fichier JSON
<a name="loading-node-credentials-json-file"></a>

Vous pouvez charger la configuration et les informations d'identification à partir d'un document JSON sur disque en utilisant `AWS.config.loadFromPath`. Le chemin d'accès spécifié est relatif au répertoire de travail actuel de votre processus. Par exemple, pour charger des informations d'identification à partir d'un fichier `'config.json'` avec le contenu suivant :

```
{ "accessKeyId": <YOUR_ACCESS_KEY_ID>, "secretAccessKey": <YOUR_SECRET_ACCESS_KEY>, "region": "us-east-1" }
```

Utilisez ensuite le code suivant :

```
var AWS = require("aws-sdk");
AWS.config.loadFromPath('./config.json');
```

**Note**  
Le chargement des données de configuration à partir d'un document JSON réinitialise toutes les données de configuration existantes. Ajoutez d'autres données de configuration après avoir appliqué cette technique. Le chargement des informations d'identification à partir d'un document JSON n'est pas pris en charge dans les scripts de navigateur.

# Chargement des informations d'identification dans Node.js via un processus d'informations d'identification configuré
<a name="loading-node-credentials-configured-credential-process"></a>

Vous pouvez sourcer les informations d'identification via une méthode qui n'est pas intégrée dans le kit SDK. Pour ce faire, spécifiez un processus d'identification dans le fichier de configuration partagé ou AWS dans le fichier d'informations d'identification partagé. Si la variable d'`AWS_SDK_LOAD_CONFIG`environnement est définie sur une valeur quelconque, le SDK préférera le processus spécifié dans le fichier de configuration au processus spécifié dans le fichier d'informations d'identification (le cas échéant).

Pour plus de détails sur la spécification d'un processus d'identification dans le fichier de AWS configuration partagé ou le fichier d'informations d'identification partagé, consultez la *référence des AWS CLI commandes*, en particulier les informations sur l'[approvisionnement en informations d'identification à partir de processus externes](https://docs.aws.amazon.com/cli/latest/topic/config-vars.html#sourcing-credentials-from-external-processes).

Pour plus d'informations sur l'utilisation de la variable d'environnement `AWS_SDK_LOAD_CONFIG`, consultez [À l'aide d'un fichier de configuration partagé](setting-region.md#setting-region-config-file) dans ce document.