Obtendo SES SMTP credenciais da Amazon - Amazon Simple Email Service

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

Obtendo SES SMTP credenciais da Amazon

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

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

Sua SMTP senha é diferente da sua chave de acesso AWS secreta. Para obter mais informações sobre credenciais, consulte Tipos de credenciais do Amazon SES.

nota

SMTPNo momento, os endpoints não estão disponíveis na África (Cidade do Cabo), Ásia-Pacífico (Jacarta), Europa (Milão), Israel (Tel Aviv) e Oriente Médio (Bahrein).

Obtendo SES SMTP credenciais usando o console SES

Requisito

Um IAM usuário pode criar SES SMTP credenciais, mas a política do usuário deve dar a ele permissão para usar a IAM si mesmo, porque SES SMTP as credenciais são criadas usando. IAM Sua IAM política deve permitir que você execute as seguintes IAM ações: iam:ListUsers iam:CreateUseriam:CreateAccessKey,, iam:PutUserPolicy e. Se você tentar criar SES SMTP credenciais usando o console e seu IAM usuário não tiver essas permissões, você verá um erro informando que sua conta “não está autorizada a realizar iam:”ListUsers.

Para criar suas SMTP credenciais
  1. Faça login no AWS Management Console e abra o SES console da Amazon em https://console.aws.amazon.com/ses/.

  2. Escolha SMTPas configurações no painel de navegação esquerdo - isso abrirá a página de configurações do Simple Mail Transfer Protocol (SMTP).

  3. Escolha Criar SMTP credenciais no canto superior direito - o IAM console será aberto.

  4. (Opcional) Se você precisar visualizar, editar ou excluir SMTP usuários que você já criou, escolha Gerenciar minhas SMTP credenciais existentes no canto inferior direito - o IAM console abrirá. Os detalhes do gerenciamento de SMTP credenciais são fornecidos seguindo esses procedimentos.

  5. Em Criar usuário para SMTP, digite um nome para seu SMTP usuário 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.

  6. Selecione Mostrar abaixo da SMTPsenha - suas SMTP credenciais são mostradas na tela.

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

  8. Escolha Retornar ao SES console.

Você pode ver uma lista das SMTP credenciais que você criou usando esse procedimento no IAM console, em Gerenciamento de acesso, escolhendo Usuários e, em seguida, usando a barra de pesquisa para encontrar todos os usuários aos quais você atribuiu SMTP credenciais.

Você também pode usar o IAM console para excluir SMTP usuários existentes. Para saber mais sobre como excluir usuários, consulte Gerenciamento de IAM usuários no Guia de IAM introdução.

Se você quiser alterar sua SMTP senha, exclua o SMTP usuário existente no IAM console. Em seguida, para gerar um novo conjunto de SMTP credenciais, conclua os procedimentos anteriores.

Obtenção de SES SMTP credenciais por meio da conversão de credenciais existentes AWS

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

Importante

Não use AWS credenciais temporárias para obter SMTP credenciais. A SES SMTP interface não oferece suporte a SMTP credenciais geradas a partir de credenciais de segurança temporárias.

Para permitir que o IAM usuário envie e-mails usando a SES SMTP interface
  1. Derive as SMTP credenciais 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 SMTP usuário é o mesmo que o ID da chave de AWS acesso, então você só precisa gerar a SMTP senha.

  2. Faça login no AWS Management Console e abra o IAM console em https://console.aws.amazon.com/iam/.

  3. Em Gerenciamento de acesso, escolha Políticas seguidas de Criar política.

  4. No editor de políticas, selecione JSONe remova qualquer código de exemplo no editor.

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

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "ses:SendRawEmail", "Resource": "*" } ] }
  6. Selecione Avançar e insira AmazonSesSendingAccess o campo Nome da política seguido por Criar política.

  7. Em Gerenciamento de acesso, escolha Grupos de usuários seguidos de Criar grupo.

  8. Digite AWSSESSendingGroupDoNotRename no campo Nome do grupo de usuários.

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

  10. Anexe a AmazonSesSendingAccess política criada anteriormente selecionando-a na tabela Anexar políticas de permissões seguida por Criar grupo de usuários.

Para obter mais informações sobre como usar SES comIAM, consulteGerenciamento de identidade e acesso no Amazon SES.

nota

Embora você possa gerar SES SMTP credenciais para qualquer IAM usuário, recomendamos que você crie um IAM usuário separado ao gerar suas SMTP credenciais. Para obter informações sobre por que é uma boa prática criar usuários para fins específicos, acesse IAMMelhores práticas.

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

// Modify this variable to include your AWS secret access key key = "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY"; // Modify this variable to refer to the AWS Region that you want to use to send email. region = "us-west-2"; // The values of the following variables should always stay the same. date = "11111111"; service = "ses"; terminal = "aws4_request"; message = "SendRawEmail"; version = 0x04; kDate = HmacSha256(date, "AWS4" + key); kRegion = HmacSha256(region, kDate); kService = HmacSha256(service, kRegion); kTerminal = HmacSha256(terminal, kService); kMessage = HmacSha256(message, kTerminal); signatureAndVersion = Concatenate(version, kMessage); smtpPassword = Base64(signatureAndVersion);

Algumas linguagens de programação incluem bibliotecas que você pode usar para converter uma chave de acesso IAM secreta em uma SMTP senha. Esta seção inclui um exemplo de código que você pode usar para converter uma chave de acesso AWS secreta em uma SES SMTP senha 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.

Atualmente, o Python SDK (Boto3) suporta oficialmente 2.7 e 3.6 (ou posterior). No entanto, o suporte da versão 2.7 está defasado e será descontinuado em 15/7/2021, portanto, você precisará atualizar pelo menos para a versão 3.6.

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 SMTP senha usando esse script, salve o código anterior comosmtp_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:

  • Substituir path/to/ com o caminho até o local onde você salvousmtp_credentials_generate.py.

  • Substituir wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY com a chave de acesso secreta que você deseja converter em uma SMTP senha.

  • Substituir us-east-1 com a AWS região na qual você deseja usar as SMTP credenciais.

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

Migração de um SMTP usuário de uma política embutida existente para uma política de grupo (recomendação de segurança)

Importante

Se você criou SES SMTP credenciais antes de 6 de setembro de 2024, uma política embutida e uma tag foram anexadas ao seu usuário. SMTP SESestá se afastando das políticas embutidas e incentiva você a fazer o mesmo que uma recomendação de segurança.

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

Para migrar de uma política embutida existente para um grupo gerenciado
  1. Faça login no AWS Management Console e abra o IAM console em https://console.aws.amazon.com/iam/.

  2. Em Gerenciamento de acesso, escolha Políticas seguidas de Criar política.

  3. No editor de políticas, selecione JSONe remova qualquer código de exemplo no editor.

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

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "ses:SendRawEmail", "Resource": "*" } ] }
  5. Selecione Avançar e insira AmazonSesSendingAccess o campo Nome da política seguido por Criar política.

  6. Em Gerenciamento de acesso, escolha Grupos de usuários seguidos de Criar grupo.

  7. Digite AWSSESSendingGroupDoNotRename no campo Nome do grupo de usuários.

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

  9. Anexe a AmazonSesSendingAccess política criada anteriormente selecionando-a na tabela Anexar políticas de permissões seguida por Criar grupo de usuários.

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

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

  11. Selecione a guia Grupos e escolha Adicionar usuário aos grupos.

  12. Selecione o AWSSESSendingGroupDoNotRename grupo seguido por Adicionar usuário ao (s) grupo (s).

  13. Selecione a guia Permissões e confirme se há duas linhas listadas com AmazonSesSendingAccess a na coluna Nome da política, uma com Inline e outra com Grupo AWSSESSendingGroupDoNotRename listado na coluna Anexado via.

  14. Selecione somente a linha que contém AmazonSesSendingAccess a coluna Nome da política e Inline na coluna Anexado via, seguida por Remover e confirme com a política Remover.

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

  15. Selecione a guia Tags seguida de Gerenciar tags.

  16. Selecione Remover ao lado da linha que contém InvokedByas colunas Chave e SESConsoleValor, seguidas de Salvar alterações.

Importante

A AmazonSesSendingAccess política (seja como política embutida, de grupo ou ambas) deve permanecer vinculada ao SMTP usuário 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.