

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

# Usando `credentials` arquivos compartilhados `config` para configurar AWS SDKs e ferramentas globalmente
<a name="file-format"></a>

O compartilhamento AWS `config` e `credentials` os arquivos são a forma mais comum de especificar a autenticação e a configuração em um AWS SDK ou ferramenta.

Os arquivos compartilhados `config` e `credentials` contêm um conjunto de perfis. Um perfil é um conjunto de definições de configuração, em pares chave-valor, usado pelo AWS SDKs AWS Command Line Interface (AWS CLI) e por outras ferramentas. Os valores de configuração são anexados a um perfil para configurar algum aspecto do SDK/tool quando esse perfil é usado. Esses arquivos são “compartilhados”, pois os valores entram em vigor em qualquer aplicativo, processo ou SDKs no ambiente local de um usuário.

Tanto os arquivos `config` quanto `credentials` compartilhados são arquivos de texto simples que contêm somente caracteres ASCII (codificados em UTF-8). Eles assumem a forma do que geralmente é chamado de [arquivos INI](https://wikipedia.org/wiki/INI_file).

## Perfis
<a name="file-format-profile"></a>

As configurações nos arquivos `config` e `credentials` compartilhados estão associadas a um perfil específico. Vários perfis podem ser definidos no arquivo para criar diferentes configurações que serão aplicadas em diferentes ambientes de desenvolvimento.

 O perfil `[default]` contém os valores que são usados por uma operação de SDK ou ferramenta se um perfil nomeado específico não for especificado. Você também pode criar perfis separados aos quais você pode referenciar explicitamente pelo nome. Cada perfil pode usar configurações e valores diferentes conforme necessário para a aplicação e o cenário. 

**nota**  
`[default]` é simplesmente um perfil sem nome. Esse perfil é nomeado `default` porque é o perfil padrão usado pelo SDK se o usuário não especificar um perfil. Ele não fornece valores padrão herdados para outros perfis. Se você definir algo no perfil `[default]` e não definir em um perfil nomeado, o valor não estará definido quando você usar o perfil nomeado. 

### Definir um perfil nomeado
<a name="set-named-profile"></a>

O perfil `[default]` e vários perfis nomeados podem existir no mesmo arquivo. Use a configuração a seguir para selecionar quais configurações do perfil serão usadas pelo SDK ou ferramenta ao executar o código. Os perfis também podem ser selecionados dentro do código ou por comando ao trabalhar com a AWS CLI. 

Configure essa funcionalidade definindo uma das seguintes opções:

**`AWS_PROFILE`- variável de ambiente**  
Quando essa variável de ambiente é definida como um perfil nomeado ou “padrão”, todos os códigos e AWS CLI comandos do SDK usam as configurações desse perfil.  
Exemplo de configuração de variáveis de ambiente para Linux/macOS por meio da linha de comando:  

```
export AWS_PROFILE="my_default_profile_name";
```
Exemplo do Windows de configuração de variáveis de ambiente por meio da linha de comando:  

```
setx AWS_PROFILE "my_default_profile_name"
```

**`aws.profile`: propriedade do sistema de JVM**  
Para o SDK para Kotlin na JVM e o SDK para Java 2.x, você pode [definir a propriedade do sistema `aws.profile`](jvm-system-properties.md#jvm-sys-props-set). Quando o SDK cria um cliente de serviço, ele usa as configurações no perfil nomeado, a menos que a configuração seja substituída no código. O SDK para Java 1.x não é compatível com essa propriedade do sistema.

**nota**  
Recomendamos que você sempre use perfis nomeados em vez do perfil padrão se a aplicação estiver em um servidor executando várias aplicações. O perfil padrão é automaticamente selecionado por qualquer AWS aplicativo no ambiente e compartilhado entre eles. Portanto, se alguém atualizar o perfil padrão de sua própria aplicação, isso poderá involuntariamente afetar as outras. Para evitar isso, defina um perfil nomeado no arquivo compartilhado `config` e use esse perfil nomeado em sua aplicação ao configurar o perfil nomeado em seu código. Use a variável de ambiente ou a propriedade do sistema de JVM para definir o perfil nomeado se souber que seu escopo afeta apenas sua aplicação.

## Formato do arquivo de configuração
<a name="file-format-config"></a>

O arquivo `config` é organizado em seções. Uma seção é um conjunto nomeado de configurações e continua até que outra linha de definição de seção seja encontrada.

O arquivo `config` é um arquivo de texto simples que usam o seguinte formato:
+ Todas as entradas em uma seção assumem a forma geral de `setting-name=value`.
+ As linhas podem ser comentadas iniciando-as com um caractere de hashtag (`#`).

### Tipos de seção
<a name="section-types"></a>

Uma definição de seção é uma linha que aplica um nome a uma coleção de configurações. As linhas de definição de seção começam e terminam com colchetes (`[` `]`). Dentro dos colchetes, há um identificador de tipo de seção e um nome personalizado para a seção. Você pode usar letras, números, hífens ( `-` ) e sublinhados ( `_` ), mas sem espaços.

#### Tipo de seção: `default`
<a name="section-default"></a>

Exemplo de linha de definição de seção: `[default]`

 `[default]` é o único perfil que não exige o identificador de seção `profile`. 

O exemplo a seguir mostra um arquivo `config` básico com um perfil `[default]`. Ele define a configuração [`region`](feature-region.md). Todas as configurações depois dessa linha, até outra definição de seção ser encontrada, fazem parte desse perfil. 

```
[default]
#Full line comment, this text is ignored.
region = us-east-2
```

#### Tipo de seção: `profile`
<a name="section-profile"></a>

Exemplo de linha de definição de seção: `[profile dev]`

A linha de definição de sessão `profile` é um agrupamento nomeado de configurações que você pode aplicar a diferentes cenários de desenvolvimento. Para entender melhor os perfis nomeados, consulte a seção anterior sobre Perfis. 

O exemplo a seguir mostra um arquivo `config` com uma linha de definição de seção `profile` e um perfil nomeado denominado `foo`. Todas as configurações depois dessa linha, até outra definição de seção ser encontrada, fazem parte desse perfil nomeado. 

```
[profile foo]
...settings...
```

Algumas configurações têm seu próprio grupo aninhado de subconfigurações, como a configuração e as subconfigurações de `s3` no exemplo a seguir. Associe as subconfigurações ao grupo recuando-as com um ou mais espaços.

```
[profile test]
region = us-west-2
s3 =
    max_concurrent_requests=10
    max_queue_size=1000
```

#### Tipo de seção: `sso-session`
<a name="section-session"></a>

Exemplo de linha de definição de seção: `[sso-session my-sso]`

A linha de definição da `sso-session` seção nomeia um grupo de configurações que você usa para configurar um perfil para resolver AWS as credenciais usando Centro de Identidade do AWS IAM. Para obter mais informações sobre como configurar a autenticação de login único, consulte [Usando o IAM Identity Center para autenticar o AWS SDK e as ferramentas](access-sso.md). Um perfil é vinculado a uma seção `sso-session` por um par de valores-chave em que `sso-session` é a chave e o nome da sua seção `sso-session` é o valor, como `sso-session = <name-of-sso-session-section>`. 

O exemplo a seguir configura um perfil que obterá AWS credenciais de curto prazo para a função do IAM "SampleRole" na conta “111122223333" usando um token do “my-sso”. A seção `sso-session` “my-sso” é referenciada na seção `profile` pelo nome usando a chave `sso-session`. 

```
[profile dev]
sso_session = my-sso
sso_account_id = 111122223333
sso_role_name = SampleRole

[sso-session my-sso]
sso_region = us-east-1
sso_start_url = https://my-sso-portal.awsapps.com/start
```

#### Tipo de seção: `services`
<a name="section-services"></a>

Exemplo de linha de definição de seção: `[services dev]`

**nota**  
A `services` seção oferece suporte a personalizações de endpoints específicos do serviço e está disponível somente nas ferramentas que incluem esse SDKs recurso. Para ver se esse atributo está disponível para seu SDK, consulte [Support by AWS SDKs and tools](feature-ss-endpoints.md#ss-endpoints-sdk-compat) para ver os endpoints específicos do serviço.

A linha de definição da `services` seção nomeia um grupo de configurações que configura endpoints personalizados para AWS service (Serviço da AWS) solicitações. Um perfil é vinculado a uma seção `services` por um par de valores-chave em que `services` é a chave e o nome da sua seção `services` é o valor, como `services = <name-of-services-section>`. 

 A `services` seção é ainda separada em subseções por `<SERVICE> = ` linhas, onde `<SERVICE>` está a chave AWS service (Serviço da AWS) identificadora. O AWS service (Serviço da AWS) identificador é baseado no modelo de API, substituindo todos os espaços `serviceId` por sublinhados e colocando todas as letras em minúsculas. Para obter uma lista de todas as chaves de identificação de serviço a serem usadas na seção `services`, consulte [Identificadores para endpoints específicos de serviço](ss-endpoints-table.md). A chave de identificação de serviço é seguida por configurações aninhadas, cada uma em sua própria linha e recuada por dois espaços. 

 O exemplo a seguir usa uma definição `services` para configurar o endpoint a ser usado para solicitações feitas somente para o serviço do Amazon DynamoDB . A seção `services` `"local-dynamodb"` é referenciada na seção `profile` pelo nome usando a chave `services`. A chave AWS service (Serviço da AWS) identificadora é`dynamodb`. A subseção de Amazon DynamoDB serviço começa na linha`dynamodb = `. Todas as linhas imediatamente seguintes que estejam recuadas são incluídas nessa subseção e se aplicam a esse serviço. 

```
[profile dev]
services = local-dynamodb

[services local-dynamodb]
dynamodb = 
  endpoint_url = http://localhost:8000
```

Para obter mais informações sobre a configuração de endpoint personalizado, consulte [Endpoints específicos de serviço](feature-ss-endpoints.md).

## Formato do arquivo de credenciais
<a name="file-format-creds"></a>

As regras para o arquivo `credentials` geralmente são idênticas às do arquivo `config`, exceto que as seções do perfil não começam com a palavra `profile`. Use apenas o nome do perfil em si entre colchetes. O exemplo a seguir mostra um arquivo `credentials` com uma seção de perfil nomeado denominado `foo`. 

```
[foo]
...credential settings...
```

Somente as seguintes configurações consideradas "secretas" ou confidenciais podem ser armazenadas no arquivo `credentials`: `aws_access_key_id`, `aws_secret_access_key` e `aws_session_token`. Embora essas configurações possam ser colocadas alternativamente no arquivo compartilhado `config`, recomendamos que você mantenha esses valores confidenciais no arquivo `credentials` separado. Dessa forma, você pode fornecer permissões separadas para cada arquivo, se necessário.

O exemplo a seguir mostra um arquivo `credentials` básico com um perfil `[default]`. Ele define as configurações globais [`aws_access_key_id`, `aws_secret_access_key` e `aws_session_token`](feature-static-credentials.md).

```
[default]
aws_access_key_id=AKIAIOSFODNN7EXAMPLE
aws_secret_access_key=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
aws_session_token=IQoJb3JpZ2luX2IQoJb3JpZ2luX2IQoJb3JpZ2luX2IQoJb3JpZ2luX2IQoJb3JpZVERYLONGSTRINGEXAMPLE
```

Independentemente de você usar um perfil nomeado ou "`default`" no arquivo `credentials`, todas as configurações aqui serão combinadas com as configurações do arquivo `config` que usarem o mesmo nome de perfil. Se houver credenciais nos dois arquivos para um perfil que compartilhe o mesmo nome, as chaves no arquivo de credenciais terão precedência. 