

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

# Obtenção de credenciais SMTP do Amazon SES
<a name="smtp-credentials"></a>

Você precisa das credenciais SMTP do Amazon SES para acessar a interface SMTP do SES.

As credenciais que você usa para enviar e-mails pela interface SMTP do SES são exclusivas para cada AWS região. Se usar a interface SMTP do SES para enviar e-mails em mais de uma região, você deve gerar um conjunto de credenciais SMTP para cada região que pretende usar.

Sua senha SMTP é diferente da sua chave de acesso AWS secreta. Para obter mais informações sobre credenciais, consulte [Tipos de credenciais do Amazon SES](send-email-concepts-credentials.md).

**nota**  
Para obter uma lista dos endpoints SMTP disponíveis no momento, consulte [Endpoints SMTP](https://docs.aws.amazon.com/general/latest/gr/ses.html#ses_smtp_endpoints) na *Referência geral da AWS*. 

## Obter as credenciais SMTP do SES usando o console do SES
<a name="smtp-credentials-console"></a>

**Requisito**  
Um usuário do IAM pode criar credenciais SMTP do SES, mas a política de usuário deve conceder a ele permissão para usar o IAM em si, pois as credenciais SMTP do SES são criadas com o uso do IAM. Sua política do IAM deve permitir que você execute as seguintes ações do IAM: `iam:CreateUser` `iam:CreateGroup``iam:PutGroupPolicy`,`iam:AddUserToGroup`,, `iam:CreateAccessKey` e. Se você tentar criar credenciais SES SMTP usando o console e seu usuário do IAM não tiver essas permissões, você poderá ver um erro ou as credenciais SMTP poderão ser criadas sem as configurações de política adequadas.

**Importante**  
Algumas das ações do IAM mencionadas acima, especificamente `iam:PutGroupPolicy``iam:AddUserToGroup`, têm o nível de acesso de [gerenciamento de permissões](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_understand-policy-summary-access-level-summaries.html#access_policies_access-level), que é o nível mais alto do IAM, pois dá permissão para conceder ou modificar permissões de recursos no serviço. Portanto, para melhorar a segurança da sua AWS conta, é altamente recomendável que você restrinja ou monitore regularmente essas políticas que incluem a classificação do nível de acesso ao gerenciamento de permissões.

**Para criar suas credenciais SMTP**

1. Faça login no Console de gerenciamento da AWS e abra o console do Amazon SES em [https://console.aws.amazon.com/ses/](https://console.aws.amazon.com/ses/).

1. Selecione **SMTP settings** (Configurações de SMTP) no painel de navegação à esquerda. Isso abrirá a página **Simple Mail Transfer Protocol (SMTP) settings** [Configurações de SMTP (Simple Mail Transfer Protocol)].

1. Selecione **Create SMTP Credentials** (Criar credenciais de SMTP) no canto superior direito. Isso abrirá o console do IAM.

1. (Opcional) Se você precisar visualizar, editar ou excluir usuários de SMTP que já criou, selecione **Manage my existing SMTP credentials** (Gerenciar minhas credenciais SMTP existentes) no canto inferior direito. Isso abrirá o console do IAM. Os detalhes do gerenciamento de credenciais de SMTP são fornecidos seguindo esses procedimentos.

1. Para **Criar usuário para SMTP**, digite um nome para seu usuário SMTP no campo **Nome de usuário**. Como alternativa, você pode usar o valor padrão que é fornecido nesse campo. Ao terminar, escolha **Criar usuário** no canto inferior direito.

1. Selecione **Mostrar** em *Senha SMTP*: as credenciais SMTP são mostradas na tela.

1. Baixe essas credenciais escolhendo **Baixar arquivo .csv** ou copie e armazene-as em local seguro, porque você não poderá visualizar nem salvar as credenciais depois que fechar essa caixa de diálogo.

1. Escolha **Retornar ao console do SES**.

É possível exibir uma lista de credenciais SMTP que você criou usando esse procedimento no console do IAM em **Access management** (Gerenciamento de acesso) e escolhendo **Users** (Usuários). Depois, use a barra de pesquisa para localizar todos os usuários aos quais você atribuiu credenciais SMTP.

Também é possível usar o console do IAM para excluir usuários SMTP existentes. Para saber mais sobre como excluir usuários, consulte [Gerenciar usuários do IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users_manage.html) no *Guia de conceitos básicos do IAM*.

Se pretender alterar a senha SMTP, exclua o usuário SMTP existente no console do IAM. Depois, para gerar um novo conjunto de credenciais SMTP, realize os procedimentos anteriores.

## Obtendo credenciais SES SMTP convertendo as existentes AWS credenciais
<a name="smtp-credentials-convert"></a>

Se você tiver um usuário configurado usando a interface do IAM, poderá derivar as credenciais SES SMTP do usuário a partir de suas credenciais. AWS 

**Importante**  
Não use AWS credenciais temporárias para derivar credenciais SMTP. A interface SMTP do SES não é compatível com credenciais SMTP que tenham sido geradas com base nas credenciais de segurança temporárias. 

**Para que o usuário do IAM possa enviar e-mails usando a interface SMTP do SES**

1. Derive as credenciais SMTP do usuário a partir de suas AWS credenciais usando o algoritmo fornecido nesta seção seguindo estes procedimentos.

   Como você está começando com AWS as credenciais, o nome de usuário SMTP é o mesmo que o ID da chave de AWS acesso, então você só precisa gerar a senha SMTP.

1. Faça login no Console de gerenciamento da AWS e abra o console do IAM em [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

1. Em **Gerenciamento de acesso**, escolha **Políticas** e, em seguida, **Criar política**.

1. No **Editor de políticas**, selecione **JSON** e remova qualquer código de exemplo no editor.

1. Cole a seguinte política de permissões no editor:

------
#### [ JSON ]

****  

   ```
   {
   "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
   "Effect": "Allow",
               "Action": "ses:SendRawEmail",
               "Resource": "*"
           }
       ]
   }
   ```

------

1. Selecione **Avançar**, insira `AmazonSesSendingAccess` no campo **Nome da política** e selecione **Criar política**.

1. Em **Gerenciamento de acesso**, escolha **Grupos de usuários** e, em seguida, **Criar grupo**.

1. Insira `AWSSESSendingGroupDoNotRename` no campo **Nome do grupo de usuários**.

1. Adicione usuários SMTP ao grupo selecionando-os na tabela **Adicionar usuários ao grupo**.

1. Anexe a política `AmazonSesSendingAccess` criada anteriormente selecionando-a na tabela **Anexar políticas de permissões** e selecionando **Criar grupo de usuários**.

Para obter mais informações sobre como usar o SES com o IAM, consulte [Gerenciamento de identidade e acesso no Amazon SES](control-user-access.md).

**nota**  
Embora você possa gerar credenciais SMTP do SES para qualquer usuário do IAM, recomendamos criar um usuário do IAM separado ao gerar suas credenciais SMTP. Para obter mais informações sobre por que é uma prática recomendada criar usuários para fins específicos, consulte [Melhores práticas do IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/IAMBestPractices.html).

O pseudocódigo a seguir mostra o algoritmo que converte uma chave de acesso AWS secreta em uma senha SES SMTP.

```
 1. // Modify this variable to include your AWS secret access key
 2. key = "{{wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY}}";
 3.             
 4. // Modify this variable to refer to the AWS Region that you want to use to send email.
 5. region = "{{us-west-2}}";
 6.             
 7. // The values of the following variables should always stay the same.
 8. date = "11111111";
 9. service = "ses";
10. terminal = "aws4_request";
11. message = "SendRawEmail";
12. version = 0x04;
13. 
14. kDate = HmacSha256(date, "AWS4" + key);
15. kRegion = HmacSha256(region, kDate);
16. kService = HmacSha256(service, kRegion);
17. kTerminal = HmacSha256(terminal, kService);
18. kMessage = HmacSha256(message, kTerminal);
19. signatureAndVersion = Concatenate(version, kMessage);
20. smtpPassword = Base64(signatureAndVersion);
```

Algumas linguagens de programação incluem bibliotecas que você pode usar para converter uma chave de acesso secreta do IAM em uma senha SMTP. Esta seção inclui um exemplo de código que você pode usar para converter uma chave de acesso AWS secreta em uma senha SES SMTP usando Python.

**nota**  
O exemplo a seguir usa **f-strings** que foram introduzidos no Python 3.6; se estiver usando uma versão mais antiga, elas não funcionarão.
No exemplo a seguir, a lista de SMTP\_REGIONS é apenas um exemplo. Sua lista real de regiões pode ser menor ou maior, dependendo das regiões em que você planeja enviar e-mails, pois você precisará de credenciais SMTP para cada Região da AWS.

------
#### [ Python ]

```
#!/usr/bin/env python3

import hmac
import hashlib
import base64
import argparse

SMTP_REGIONS = [
    "us-east-2",  # US East (Ohio)
    "us-east-1",  # US East (N. Virginia)
    "us-west-2",  # US West (Oregon)
    "ap-south-1",  # Asia Pacific (Mumbai)
    "ap-northeast-2",  # Asia Pacific (Seoul)
    "ap-southeast-1",  # Asia Pacific (Singapore)
    "ap-southeast-2",  # Asia Pacific (Sydney)
    "ap-northeast-1",  # Asia Pacific (Tokyo)
    "ca-central-1",  # Canada (Central)
    "eu-central-1",  # Europe (Frankfurt)
    "eu-west-1",  # Europe (Ireland)
    "eu-west-2",  # Europe (London)
    "eu-south-1",  # Europe (Milan)
    "eu-north-1",  # Europe (Stockholm)
    "sa-east-1",  # South America (Sao Paulo)
    "us-gov-west-1",  # AWS GovCloud (US)
    "us-gov-east-1",  # AWS GovCloud (US)
]

# These values are required to calculate the signature. Do not change them.
DATE = "11111111"
SERVICE = "ses"
MESSAGE = "SendRawEmail"
TERMINAL = "aws4_request"
VERSION = 0x04


def sign(key, msg):
    return hmac.new(key, msg.encode("utf-8"), hashlib.sha256).digest()


def calculate_key(secret_access_key, region):
    if region not in SMTP_REGIONS:
        raise ValueError(f"The {region} Region doesn't have an SMTP endpoint.")

    signature = sign(("AWS4" + secret_access_key).encode("utf-8"), DATE)
    signature = sign(signature, region)
    signature = sign(signature, SERVICE)
    signature = sign(signature, TERMINAL)
    signature = sign(signature, MESSAGE)
    signature_and_version = bytes([VERSION]) + signature
    smtp_password = base64.b64encode(signature_and_version)
    return smtp_password.decode("utf-8")


def main():
    parser = argparse.ArgumentParser(
        description="Convert a Secret Access Key to an SMTP password."
    )
    parser.add_argument("secret", help="The Secret Access Key to convert.")
    parser.add_argument(
        "region",
        help="The AWS Region where the SMTP password will be used.",
        choices=SMTP_REGIONS,
    )
    args = parser.parse_args()
    print(calculate_key(args.secret, args.region))


if __name__ == "__main__":
    main()
```

Para obter sua senha SMTP usando esse script, salve o código anterior como `smtp_credentials_generate.py`. Depois, na linha de comando, execute o seguinte comando:

```
python {{path/to/}}smtp_credentials_generate.py {{wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY}} {{us-east-1}}
```

No comando anterior, faça o seguinte:
+ {{path/to/}}Substitua pelo caminho até o local onde você salvou`smtp_credentials_generate.py`.
+ Substitua {{wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY}} pela chave de acesso secreta que você deseja converter em uma senha SMTP.
+ {{us-east-1}}Substitua pela AWS região na qual você deseja usar as credenciais SMTP.

Quando esse script é executado com êxito, a única saída é sua senha SMTP.

------

## Migração de um usuário SMTP de uma política em linha existente para uma política de grupo (recomendação de segurança)
<a name="migrate-inline-policy-to-group"></a>

**Importante**  
Se você criou as credenciais SMTP do SES antes de 6 de setembro de 2024, uma política em linha e uma tag foram anexadas ao seu usuário SMTP. O SES está se afastando das políticas em linha e incentiva você a fazer o mesmo como recomendação de segurança.

Antes de migrar um usuário SMTP de uma política em linha existente para uma política de grupo, você deve primeiro criar um grupo de usuários do IAM com a política de permissões do SES para substituir a política em linha. Se você já criou esse grupo de usuários do IAM ou se ele foi criado automaticamente para as credenciais SMTP criadas a partir de 6 de setembro de 2024, poderá pular diretamente para a *etapa 10* nos procedimentos a seguir.

**Para migrar de uma política em linha existente para um grupo gerenciado**

1. Faça login no Console de gerenciamento da AWS e abra o console do IAM em [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

1. Em **Gerenciamento de acesso**, escolha **Políticas** e, em seguida, **Criar política**.

1. No **Editor de políticas**, selecione **JSON** e remova qualquer código de exemplo no editor.

1. Cole a seguinte política de permissões no editor:

------
#### [ JSON ]

****  

   ```
   {
   "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
   "Effect": "Allow",
               "Action": "ses:SendRawEmail",
               "Resource": "*"
           }
       ]
   }
   ```

------

1. Selecione **Avançar**, insira `AmazonSesSendingAccess` no campo **Nome da política** e selecione **Criar política**.

1. Em **Gerenciamento de acesso**, escolha **Grupos de usuários** e, em seguida, **Criar grupo**.

1. Insira `AWSSESSendingGroupDoNotRename` no campo **Nome do grupo de usuários**.

1. Adicione usuários SMTP ao grupo selecionando-os na tabela **Adicionar usuários ao grupo**.

1. Anexe a política `AmazonSesSendingAccess` criada anteriormente selecionando-a na tabela **Anexar políticas de permissões** e selecionando **Criar grupo de usuários**.

   Agora que você criou o grupo de usuários do IAM com a política de permissões do SES, poderá migrar um usuário SMTP da política em linha atual para essa política de grupo, conforme explicado nas etapas restantes.

1. Em **Gerenciamento de acesso**, escolha **Usuários** e selecione o usuário SMTP que você deseja migrar.

1. Selecione a guia **Grupos** e escolha **Adicionar usuário a grupos**.

1. Selecione o grupo `AWSSESSendingGroupDoNotRename` e, em seguida, **Adicionar usuário aos grupos**.

1. Selecione a guia **Permissões** e confirme se há duas linhas listadas com `AmazonSesSendingAccess` na coluna **Nome da política**, uma com *Em linha* e outra com *Grupo `AWSSESSendingGroupDoNotRename`* listadas na coluna **Anexado via**.

1. Selecione somente a linha que contém `AmazonSesSendingAccess` na coluna **Nome da política** e *Em linha* na coluna **Anexado via**, selecione **Remover** e confirme com **Remover política**.

   Verifique se a linha com *Grupo `AWSSESSendingGroupDoNotRename`* na coluna **Anexado via** permanece.

1. Selecione a guia **Tags** e, em seguida, **Gerenciar tags**.

1. Selecione **Remover** ao lado da linha que contém *InvokedBy*na coluna **Chave** e *SESConsole* na coluna **Valor**, seguida por **Salvar alterações**.

**Importante**  
A política `AmazonSesSendingAccess` (como política em linha, de grupo ou ambas) deve permanecer anexada ao usuário SMTP para garantir que o envio não seja afetado. Remova a política em linha somente depois que a política de grupo for anexada ao seu usuário. 