

O AWS SDK para JavaScript v2 chegou ao fim do suporte. Recomendamos migrar para o [AWS SDK para JavaScript v3](https://docs.aws.amazon.com//sdk-for-javascript/v3/developer-guide/). Para ver detalhes e informações sobre como migrar, consulte este [anúncio](https://aws.amazon.com/blogs//developer/announcing-end-of-support-for-aws-sdk-for-javascript-v2/).

# Definir credenciais em Node.js
<a name="setting-credentials-node"></a>

Há várias maneiras em Node.js de fornecer as credenciais para o SDK. Algumas dessas são mais seguras e outras oferecem mais comodidade durante o desenvolvimento de aplicativos. Ao obter credenciais em Node.js, tome cuidado ao confiar em mais de uma origem como uma variável de ambiente e um arquivo JSON carregado. Altere as permissões em que o código é executado sem perceber a alteração que aconteceu.

Aqui estão as maneiras como é possível fornecer as credenciais em ordem de recomendação:

1. Carregado a partir dos perfis do AWS Identity and Access Management (IAM) para o Amazon EC2

1. Carregadas a partir do arquivo de credenciais compartilhado (`~/.aws/credentials`)

1. Carregadas de variáveis de ambiente

1. Carregadas de um arquivo JSON no disco

1. Outras classes de provedor de credenciais fornecidas pelo SDK do JavaScript

Se mais de uma fonte de credenciais estiver disponível para o SDK, a precedência padrão da seleção será a seguinte:

1. Credenciais que são explicitamente definidas por meio do construtor do cliente de serviço

1. Variáveis de ambiente

1. O arquivo de credenciais compartilhado

1. Credenciais carregadas do provedor de credenciais do ECS (se aplicável)

1. Credenciais obtidas por meio de um processo de credenciais especificado no arquivo de configuração da AWS compartilhado ou no arquivo de credenciais compartilhado. Para ter mais informações, consulte [Carregamento de credenciais no Node.js usando um processo de credenciais configuradas](loading-node-credentials-configured-credential-process.md).

1. Credenciais carregadas do IAM da AWS usando o provedor de credenciais da instância do Amazon EC2 (se configurado nos metadados da instância).

Para obter mais informações, consulte [https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/Credentials.html](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/Credentials.html) e [https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/CredentialProviderChain.html](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/CredentialProviderChain.html) na Referência da API do .

**Atenção**  
Embora seja possível fazer isso, não recomendamos codificar as credenciais da AWS no aplicativo. Codificar credenciais oferece um risco de expor o ID de chave de acesso e a chave de acesso secreta.

Os tópicos nesta seção descrevem como carregar credenciais em Node.js.

**Topics**
+ [Carregar credenciais em Node.js de perfis do IAM para o Amazon EC2](loading-node-credentials-iam.md)
+ [Carregar credenciais de uma função do Lambda de Node.js](loading-node-credentials-lambda.md)
+ [Carregar credenciais em Node.js do arquivo de credenciais compartilhado](loading-node-credentials-shared.md)
+ [Carregar credenciais em Node.js de variáveis de ambiente.](loading-node-credentials-environment.md)
+ [Carregar credenciais em Node.js de um arquivo JSON](loading-node-credentials-json-file.md)
+ [Carregamento de credenciais no Node.js usando um processo de credenciais configuradas](loading-node-credentials-configured-credential-process.md)

# Carregar credenciais em Node.js de perfis do IAM para o Amazon EC2
<a name="loading-node-credentials-iam"></a>

Se executar o aplicativo Node.js em uma instância do Amazon EC2, você poderá aproveitar perfis do IAM para o Amazon EC2 fornecer credenciais automaticamente para a instância. Se você configurar a instância para usar perfis do IAM, o SDK selecionará automaticamente as credenciais do do aplicativo, eliminando a necessidade de fornecer credenciais manualmente.

Para obter mais informações sobre como adicionar perfis do IAM a uma instância do Amazon EC2, consulte [Como usar funções do IAM para instâncias do Amazon EC2](https://docs.aws.amazon.com/sdkref/latest/guide/access-iam-roles-for-ec2.html) no AWS Guia de referência dos *SDKs* e Ferramentas.

# Carregar credenciais de uma função do Lambda de Node.js
<a name="loading-node-credentials-lambda"></a>

Ao criar uma função do AWS Lambda, você deve criar um perfil do IAM especial com permissão para executar a função. Essa função é chamada de *função de execução*. Ao configurar uma função do Lambda, você deve especificar o perfil do IAM que criou como a função de execução correspondente.

A função de execução fornece a função do Lambda com as credenciais de que precisa para executar e invocar outros serviços da web. Dessa maneira, você não precisa fornecer credenciais para o código Node.js gravado em uma função do Lambda.

Para obter mais informações sobre como configurar uma função de execução do Lambda, consulte [Gerenciar permissões](https://docs.aws.amazon.com/lambda/latest/dg/intro-permission-model.html#lambda-intro-execution-role): usar uma perfil do IAM (prtfil de execução) no *Guia do desenvolvedor do AWS Lambda*.

# Carregar credenciais em Node.js do arquivo de credenciais compartilhado
<a name="loading-node-credentials-shared"></a>

Mantenha os dados das credenciais do AWS em um arquivo compartilhado usado por SDKs e a interface de linha de comando. Quando o SDK para JavaScript carregar, ele pesquisará automaticamente o arquivo de credenciais compartilhado, que é chamado "credentials". Onde você mantém o arquivo de credenciais compartilhado depende do sistema operacional:
+ O arquivo de credenciais compartilhado no Linux, Unix e macOS: `~/.aws/credentials`
+ O arquivo de credenciais compartilhado no Windows: `C:\Users\USER_NAME\.aws\credentials`

Se você ainda não tiver um arquivo de credenciais compartilhadas, consulte [Autenticação do SDK com AWS](getting-your-credentials.md). Após seguir essas instruções, você verá um texto semelhante ao seguinte no arquivo de credenciais, em que *<YOUR\$1ACCESS\$1KEY\$1ID>* é o ID de chave de acesso e *<YOUR\$1SECRET\$1ACCESS\$1KEY>* é a chave de acesso secreta:

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

Para obter um exemplo que mostra este arquivo sendo usado, consulte [Conceitos básicos de Node.js](getting-started-nodejs.md).

O título da seção `[default]` especifica um perfil padrão e os valores associados das credenciais. Crie perfis adicionais no mesmo arquivo de configuração compartilhado, cada um com as próprias informações de credencial. O seguinte exemplo mostra um arquivo de configuração com o perfil padrão e dois perfis adicionais:

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

Por padrão, o SDK verifica a variável de ambiente `AWS_PROFILE` para determinar qual perfil usar. Se a variável `AWS_PROFILE` não estiver definida no ambiente, o SDK usará as credenciais do perfil `[default]`. Para usar um dos perfis alternativos, configure ou altere o valor da variável de ambiente `AWS_PROFILE`. Por exemplo, considerando o arquivo de configuração mostrado acima, para usar as credenciais da conta de serviço, defina a variável de ambiente `AWS_PROFILE` como `work-account` (conforme adequado para seu sistema operacional).

**nota**  
Ao definir variáveis de ambiente, lembre-se de tomar as medidas adequadas posteriormente (de acordo com as necessidades do seu sistema operacional) para disponibilizar as variáveis no ambiente de comando ou shell.

Depois de definir a variável de ambiente (se necessário), você pode executar um arquivo de JavaScript que usa o SDK como uma arquivo chamado `script.js`, por exemplo.

```
$ node script.js
```

Também selecione explicitamente o perfil usado pelo SDK definindo `process.env.AWS_PROFILE` antes de carregar o SDK ou selecionando o provedor de credenciais, conforme mostrado no seguinte exemplo:

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

# Carregar credenciais em Node.js de variáveis de ambiente.
<a name="loading-node-credentials-environment"></a>

O SDK detecta automaticamente credenciais da AWS definidas como variáveis no ambiente e as usa em solicitações do SDK, eliminando a necessidade de gerenciar credenciais no aplicativo. As variáveis de ambiente definidas para fornecer as credenciais são:
+ `AWS_ACCESS_KEY_ID`
+ `AWS_SECRET_ACCESS_KEY`
+ `AWS_SESSION_TOKEN`

Para obter mais detalhes sobre a configuração de variáveis de ambiente, consulte [Suporte a variáveis de ambiente](https://docs.aws.amazon.com/sdkref/latest/guide/environment-variables.html) no *Guia de referência de AWS SDKs e Ferramentas*.

# Carregar credenciais em Node.js de um arquivo JSON
<a name="loading-node-credentials-json-file"></a>

Carregue a configuração e as credenciais de um documento JSON no disco usando `AWS.config.loadFromPath`. O caminho especificado é relativo ao diretório de trabalho atual do processo. Por exemplo, para carregar credenciais de um arquivo `'config.json'` com o seguinte conteúdo:

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

Depois, use o seguinte código:

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

**nota**  
Carregar dados de configuração de um documento JSON redefine todos os dados de configuração existentes. Adicione dados de configuração depois de usar essa técnica. Carregar credenciais de um documento JSON não é suportado em scripts de navegador.

# Carregamento de credenciais no Node.js usando um processo de credenciais configuradas
<a name="loading-node-credentials-configured-credential-process"></a>

É possível obter credenciais usando um método que não é baseado no SDK. Para fazê-lo, especifique um processo de credenciais no arquivo de configuração da AWS compartilhado ou no arquivo de credenciais compartilhado. Se a variável de ambiente `AWS_SDK_LOAD_CONFIG` for definida como qualquer valor, o SDK preferirá o processo especificado no arquivo de configuração em vez de o processo especificado no arquivo de credenciais (se houver).

Para obter detalhes sobre como especificar um processo de credenciais no arquivo de configuração da AWS compartilhado ou no arquivo de credenciais compartilhado, consulte o *Command Reference AWS CLI*, especificamente as informações sobre [Obtenção de credenciais a partir de processos externos](https://docs.aws.amazon.com/cli/latest/topic/config-vars.html#sourcing-credentials-from-external-processes).

Para obter informações sobre como usar a variável de ambiente `AWS_SDK_LOAD_CONFIG`, consulte [Usar um arquivo de configuração compartilhado](setting-region.md#setting-region-config-file) neste documento.