Como resolvo um erro “não autorizado” ao enviar e-mails no Amazon SES?

Data da última atualização: 30/09/2022

Estou tentando enviar um e-mail usando o Amazon Simple Email Service (Amazon SES), mas continuo recebendo um erro “Não autorizado”.

Breve descrição

O erro “Não autorizado” pode ocorrer pelos seguintes motivos:

  • Você está usando o usuário ou a função incorreta do AWS Identity and Access Management (IAM) para enviar e-mails.
  • A identidade do IAM que você está usando não tem permissões ses:SendEmail ou ses:SendRawEmail.
  • A política ou política de autorização do IAM nega sua permissão de identidade do IAM para as ações ses:SendEmail ou ses:SendRawEmail.
  • Os limites de permissões do IAM não permitem acesso ao Amazon SES.
  • As políticas de controle de serviços (SCPs) do AWS Organizations não permitem o acesso ao Amazon SES.
  • Para envio entre contas: a política de autorização para a identidade de envio não permite que a identidade do IAM envie e-mails.

Para solucionar erros de autorização, siga estas etapas:

  • Verifique se você está usando a identidade correta do IAM para enviar e-mails.
  • Certifique-se de que a identidade do IAM tenha as permissões ses:SendEmail e ses:SendRawEmail para enviar e-mails.
  • Verifique se há alguma declaração de negação na política do IAM ou na política de autorização que esteja bloqueando o acesso.
  • Verifique se uma ação permitida em sua política do IAM não é permitida no limite de permissões.
  • Inclua todas as ações necessárias no limite de permissões usando o console do IAM.
  • Se você usa o AWS Organizations, verifique se você não tem nenhum SCP que negue explicitamente as ações do Amazon SES.
  • Para envio entre contas, verifique se a política de autorização para a identidade de envio concede as permissões necessárias à identidade do IAM.

Resolução

Verifique se a identidade do IAM tem as permissões ses:SendEmail e ses:SendRawEmail

Certifique-se de que sua identidade do IAM tenha as permissões corretas para enviar e-mails.

Siga estas etapas:

  1. Abra o console do IAM.
  2. Selecione o usuário ou a função do IAM que é usada para enviar e-mails.
  3. Selecione o nome de identidade do IAM que você está usando para enviar e-mails.
  4. Na guia Permissões da sua identidade do IAM, expanda cada política para visualizar seu documento de política JSON.
  5. Pesquise políticas relacionadas ao acesso do Amazon SES. Em seguida, confirme se você tem permissões para as ações ses:SendEmail ou ses:SendRawEmail.

O exemplo de política do IAM a seguir permite que a identidade do IAM envie e-mails:

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

Observação: consulte SendEmail e SendRawEmail para obter informações sobre quais ações de envio você pode realizar com cada um. Se uma política do IAM não existir, crie uma política de IAM para conceder acesso ao envio de e-mails.

Verifique se há alguma declaração de negação que bloqueie o acesso

Verifique as políticas do IAM para ver se há declarações de negação que possam estar negando o acesso ao envio de e-mails.

Se houver declarações de negação, verifique as condições que bloqueiam o acesso com base no seguinte:

  • ses:Recipients
  • ses:FromAddress
  • ses:FromDisplayName
  • ses:FeedbackAddress
  • aws:CurrentTime
  • aws:EpochTime
  • aws:SecureTransport
  • aws:SourceIp
  • aws:UserAgent

Confirme se os limites de permissões do IAM permitem o acesso ao Amazon SES

Analise os limites de permissões do IAM definidos na identidade do IAM que está tentando acessar o Amazon SES. Confirme se os limites de permissões do IAM permitem o acesso ao Amazon SES. Para obter mais informações, consulte Delegar responsabilidade a outras pessoas usando limites de permissões.

Verifique se há algum SCP do AWS Organizations que não permite o acesso ao Amazon SES

Se você estiver usando o AWS Organizations, verifique se há declarações nos SPCs que neguem explicitamente o ses:SendEmail e o ses:SendRawEmail ou qualquer outra ação do Amazon SES. Exclua as políticas de controle de serviços que negam explicitamente as ações do Amazon SES de acordo com as políticas de segurança da sua organização.

Por exemplo, a política a seguir nega o acesso a todas as ações do Amazon SES:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Deny",
      "Action": “ses:*”,
      "Resource": "*"
    }
  ]
}

Verifique se a política de autorização de envio no Amazon SES concede permissões ao remetente delegado

Ao autorizar outros usuários a enviar e-mails a partir das identidades que você possui, verifique se a política de autorização tem as permissões corretas. Além disso, verifique se há declarações explícitas de negação. Certifique-se de que o remetente use o mesmo endpoint do Amazon SES na região da AWS em que você verificou a identidade. Você deve remover você mesmo (proprietário da identidade) e o remetente delegado da área restrita para testes para enviar e-mails para endereços não verificados. Para ver, editar ou remover uma política, consulte Gerenciar suas políticas de autorização de envio.


Este artigo ajudou?


Precisa de ajuda com faturamento ou suporte técnico?