¿Cómo puedo solucionar un error “No autorizado” al enviar correos electrónicos en Amazon SES?

Última actualización: 30/09/2022

Estoy tratando de enviar un correo electrónico mediante Amazon Simple Email Service (Amazon SES), pero sigo recibiendo el mensaje de error “No autorizado”.

Descripción corta

El error “No autorizado” se puede producir por una de las siguientes razones:

  • Está utilizando un usuario o rol de AWS Identity and Access Management (IAM) incorrecto para enviar correos electrónicos.
  • La identidad de IAM que está utilizando no cuenta con los permisos SES:sendEmail o bien ses:sendrawEmail.
  • La política de IAM o de autorización deniega el permiso vinculado a su identidad de IAM para las acciones ses:sendEmail o SES:sendrawEmail.
  • Los límites de los permisos de IAM no permiten acceder a Amazon SES.
  • Las políticas de control de servicios (SCP) de AWS Organizations no permiten acceder a Amazon SES.
  • Para poder realizar envíos entre cuentas: la política de autorización de la identidad del remitente no permite que la identidad de IAM envíe correos electrónicos.

Para solucionar los errores relacionados con la autorización, siga estos pasos:

  • Compruebe que está utilizando la identidad correcta de IAM para enviar correos electrónicos.
  • Asegúrese de que la identidad de IAM cuente con los permisos ses:sendEmail y ses:sendrawEmail para enviar correos electrónicos.
  • Compruebe si hay alguna declaración de denegación en la política de IAM o en la política de autorización que esté bloqueando el acceso.
  • Compruebe si hay alguna acción que esté permitida en su política de IAM que, sin embargo, no esté permitida según el límite de permisos.
  • Incluya todas las acciones requeridas en el límite de permisos mediante la consola de IAM.
  • Si utiliza AWS Organizations, compruebe que no tiene ningún SCP que deniegue de manera explícita las acciones de Amazon SES.
  • Para poder realizar envíos entre cuentas, compruebe que la política de autorización de la identidad de envío concede los permisos necesarios a la identidad de IAM.

Resolución

Compruebe que la identidad de IAM cuenta con los permisos ses:sendEmail y ses:sendrawEmail

Asegúrese de que su identidad de IAM cuente con los permisos adecuados para enviar correos electrónicos.

Siga estos pasos:

  1. Abra la consola de IAM.
  2. Seleccione el usuario o el rol de IAM que utiliza para enviar correos electrónicos.
  3. Seleccione el nombre de la identidad de IAM que utiliza para enviar correos electrónicos.
  4. Elija la pestaña Permissions (Permisos) de su identidad de IAM y amplíe cada política para ver el documento de política JSON correspondiente.
  5. Busque políticas relacionadas con el acceso a Amazon SES. A continuación, confirme que cuenta con los permisos necesarios para ejecutar las acciones ses:sendEmail o ses:sendrawEmail.

En el siguiente ejemplo, esta política de IAM permite que la identidad de IAM envíe correos electrónicos:

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

Nota: Revise SendEmail y SendRawEmail si desea obtener información sobre las acciones de envío que puede realizar con cada una de ellas. Si no existe ninguna, cree una política de IAM que le permita enviar correos electrónicos.

Compruebe si hay alguna declaración de denegación que esté bloqueando el acceso

Consulte las políticas de IAM para ver si hay alguna declaración de denegación que pueda denegar el acceso al envío de correos electrónicos.

Si hay alguna declaración de denegación, compruebe si hay alguna condición que esté bloqueando el acceso según lo siguiente:

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

Confirme que los límites de los permisos de IAM permiten acceder a Amazon SES

Revise los límites de permisos de IAM definidos en las identidades de IAM que intentan acceder a Amazon SES. Confirme que los límites de los permisos de IAM permiten acceder a Amazon SES. Si desea obtener más información, consulteDelegating responsibility to others using permissions boundaries (Delegar la responsabilidad a otros mediante límites de permisos).

Compruebe si hay algún SCP de AWS Organizations que impide acceder a Amazon SES

Si usa AWS Organizations, consulte las especificaciones técnicas para ver si hay alguna declaración que deniegue de manera explícita las acciones ses:sendEmail y ses:sendrawEmail o cualquier otra acción de Amazon SES. Elimine las políticas de control de servicios que deniegan de manera explícita las acciones de Amazon SES conforme a las políticas de seguridad de su organización.

Por ejemplo, la siguiente política deniega el acceso a todas las acciones de Amazon SES:

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

Compruebe que la política de autorización de envío de Amazon SES concede permisos al remitente delegado

Cuando autorice a otros usuarios a enviar correos electrónicos desde las identidades que posee, compruebe que la política de autorización cuente con los permisos correctos. Compruebe también si hay alguna declaración de denegación explícita. Asegúrese de que el remitente utiliza el mismo punto de conexión de Amazon SES en la región de AWS en la que ha verificado la identidad. Debe quitar su nombre (propietario de la identidad) y el del remitente delegado del entorno aislado para poder enviar correos electrónicos a direcciones no verificadas. Si desea ver, editar o eliminar una política, consulte Managing your sending authorization policies (Cómo administrar las políticas de autorización de envío).


¿Le resultó útil este artículo?


¿Necesita asistencia técnica o con la facturación?