Otorgar permisos a Amazon SES para recepción de correo electrónico - Amazon Simple Email Service

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Otorgar permisos a Amazon SES para recepción de correo electrónico

Algunas de las tareas que puede realizar al recibir correos electrónicos en SES, como enviar correos electrónicos a un bucket de Amazon Simple Storage Service (Amazon S3) o llamar a AWS Lambda una función, requieren permisos especiales. Esta sección incluye políticas de ejemplo para diferentes casos de uso comunes.

Configuración de los permisos de roles de IAM para la acción Entregar al bucket de S3

Las normas siguientes se aplican a este rol de IAM:

Si desea escribir en un bucket de S3, puede proporcionar un rol de IAM con permisos para acceder a los recursos pertinentes de la Acción Entregar al bucket de S3. También tendrá que proporcionar permiso a SES para que asuma ese rol y lleve a cabo la acción mediante una política de confianza de IAM, tal y como se explica en la sección siguiente.

Esta política de permisos debe pegarse en el editor de políticas insertadas del rol de IAM; consulte Acción Entregar al bucket de S3 y siga los pasos que se indican en el epígrafe Rol de IAM. (El siguiente ejemplo también incluye permisos opcionales por si desea utilizar la notificación de temas de SNS o una clave administrada por el cliente en la acción de S3).

{ "Version": "2012-10-17", "Statement": [ // Required: allows SES to write in the bucket { "Sid": "S3Access", "Effect": "Allow", "Action": "s3:PutObject", "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*" }, // Optional: use if an SNS topic is used in the S3 action { "Sid": "SNSAccess", "Effect": "Allow", "Action": "sns:Publish", "Resource": "arn:aws:sns:region:111122223333:my-topic" }, // Optional: use if a customer managed key is used in the S3 action { "Sid": "KMSAccess", "Effect": "Allow", "Action": "kms:GenerateDataKey*", "Resource": "arn:aws:kms:region::111122223333:key/key-id" } ] }

En la política de ejemplo anterior, realice los siguientes cambios:

  • amzn-s3-demo-bucketSustitúyalo por el nombre del bucket de S3 en el que desee escribir.

  • regionSustitúyala por la Región de AWS ubicación en la que creaste la regla de recepción.

  • Reemplace 111122223333 por su ID de cuenta de AWS .

  • my-topicSustitúyalo por el nombre del tema de SNS en el que quieres publicar las notificaciones.

  • key-idSustitúyala por el ID de tu clave KMS.

Política de confianza del rol de IAM de la acción de S3

Es preciso agregar siguiente política de confianza siguiente a las relaciones de confianza del rol de IAM para que SES pueda asumir ese rol.

nota

Solo es preciso agregar esta política de confianza manualmente si no ha creado el rol de IAM en la consola de SES mediante los pasos que se indican en el epígrafe Rol de IAM del flujo de trabajo de Acción Entregar al bucket de S3. Cuando el rol de IAM se crea en la consola, esta política de confianza se genera automáticamente y se aplica al rol, por lo que este paso no es necesario.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowSESAssume", "Effect": "Allow", "Principal": { "Service": "ses.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "AWS:SourceAccount":"111122223333", "AWS:SourceArn": "arn:aws:ses:region:111122223333:receipt-rule-set/rule_set_name:receipt-rule/receipt_rule_name" } } } ] }

En la política de ejemplo anterior, realice los siguientes cambios:

  • regionSustitúyala por la Región de AWS ubicación en la que creaste la regla de recepción.

  • Reemplace 111122223333 por su ID de cuenta de AWS .

  • rule_set_nameSustitúyalo por el nombre del conjunto de reglas que contiene la regla de recepción que contiene la acción del bucket de entrega a Amazon S3.

  • receipt_rule_nameSustitúyalo por el nombre de la regla de recepción que contiene la acción del bucket de entrega a Amazon S3.

Concesión de permiso a SES para escribir en un bucket de S3

Cuando se aplica la política siguiente a un bucket de S3, da permiso a SES para escribir en ese bucket, siempre y cuando exista en una región en la que esté disponible la Recepción de correo electrónico de SES; si desea escribir en un bucket que esté fuera de una región de Recepción de correo electrónico, consulte Configuración de los permisos de roles de IAM para la acción Entregar al bucket de S3. Para obtener más información acerca de la creación de reglas de recepción que transfieren el correo electrónico entrante a Amazon S3, consulte Acción Entregar al bucket de S3.

Para obtener más información acerca de la asociación de políticas a buckets de S3, consulte Uso de políticas de bucket y políticas de usuario en la Guía del usuario de Amazon Simple Storage Service.

{ "Version":"2012-10-17", "Statement":[ { "Sid":"AllowSESPuts", "Effect":"Allow", "Principal":{ "Service":"ses.amazonaws.com" }, "Action":"s3:PutObject", "Resource":"arn:aws:s3:::amzn-s3-demo-bucket/*", "Condition":{ "StringEquals":{ "AWS:SourceAccount":"111122223333", "AWS:SourceArn": "arn:aws:ses:region:111122223333:receipt-rule-set/rule_set_name:receipt-rule/receipt_rule_name" } } } ] }

En la política de ejemplo anterior, realice los siguientes cambios:

  • amzn-s3-demo-bucketSustitúyalo por el nombre del bucket de S3 en el que desee escribir.

  • regionSustitúyala por la AWS región en la que creaste la regla de recepción.

  • Reemplace 111122223333 por su ID de cuenta de AWS .

  • rule_set_nameSustitúyalo por el nombre del conjunto de reglas que contiene la regla de recepción que contiene la acción del bucket de entrega a Amazon S3.

  • receipt_rule_nameSustitúyalo por el nombre de la regla de recepción que contiene la acción del bucket de entrega a Amazon S3.

Concesión de permiso a SES para utilizar su clave de AWS KMS

Para que SES cifre los correos electrónicos, debe tener permiso para utilizar la clave de AWS KMS especificada al configurar la regla de recepción. Puede utilizar la clave de KMS predeterminada (aws/ses) de su cuenta o bien una clave administrada por el cliente que cree. Si utiliza la clave de KMS predeterminada, no tiene que realizar ningún paso adicional a fin de conceder permiso a SES para que la utilice. Si utiliza una clave administrada por el cliente, debe conceder permiso a SES para utilizarla mediante la adición de una instrucción a la política de la clave.

Utilice la siguiente instrucción de política como la política de claves para permitir que SES utilice su clave administrada por el cliente cuando reciba correo electrónico en su dominio.

{ "Sid": "AllowSESToEncryptMessagesBelongingToThisAccount", "Effect": "Allow", "Principal": { "Service":"ses.amazonaws.com" }, "Action": [ "kms:GenerateDataKey*" ], "Resource": "*", "Condition":{ "StringEquals":{ "AWS:SourceAccount":"111122223333", "AWS:SourceArn": "arn:aws:ses:region:111122223333:receipt-rule-set/rule_set_name:receipt-rule/receipt_rule_name" } } }

En la política de ejemplo anterior, realice los siguientes cambios:

  • regionSustitúyala por la AWS región en la que creaste la regla de recepción.

  • Reemplace 111122223333 por su ID de cuenta de AWS .

  • rule_set_nameSustitúyalo por el nombre del conjunto de reglas que contiene la regla de recepción que has asociado a la recepción de correo electrónico.

  • receipt_rule_nameSustitúyala por el nombre de la regla de recepción que has asociado a la recepción de correo electrónico.

Si utilizas AWS KMS el envío de mensajes cifrados a un bucket de S3 con el cifrado del lado del servidor activado, tendrás que añadir la acción política,. "kms:Decrypt" Con el ejemplo anterior, agregar esta acción a la política aparecerá de la siguiente manera:

{ "Sid": "AllowSESToEncryptMessagesBelongingToThisAccount", "Effect": "Allow", "Principal": { "Service":"ses.amazonaws.com" }, "Action": [ "kms:Decrypt", "kms:GenerateDataKey*" ], "Resource": "*", "Condition":{ "StringEquals":{ "AWS:SourceAccount":"111122223333", "AWS:SourceArn": "arn:aws:ses:region:111122223333:receipt-rule-set/rule_set_name:receipt-rule/receipt_rule_name" } } }

Para obtener más información sobre cómo adjuntar políticas a las AWS KMS claves, consulte Uso de políticas clave AWS KMS en la AWS Key Management Service Guía para desarrolladores.

Otorgue permiso a SES para invocar una función AWS Lambda

Para permitir que SES llame a una AWS Lambda función, puede elegir la función al crear una regla de recepción en la consola de SES. Al hacerlo, SES agrega automáticamente los permisos necesarios a la función.

También puede utilizar la operación AddPermission en la API de AWS Lambda para adjuntar una política a una función. La siguiente llamada a la API de AddPermission concede permiso a SES para invocar su función de Lambda. Para obtener más información sobre cómo adjuntar políticas a funciones de Lambda, consulte Permisos de AWS Lambda en la Guía para desarrolladores de AWS Lambda .

{ "Action": "lambda:InvokeFunction", "Principal": "ses.amazonaws.com", "SourceAccount": "111122223333", "SourceArn": "arn:aws:ses:region:111122223333:receipt-rule-set/rule_set_name:receipt-rule/receipt_rule_name" "StatementId": "GiveSESPermissionToInvokeFunction" }

En la política de ejemplo anterior, realice los siguientes cambios:

  • regionSustitúyala por la AWS región en la que creaste la regla de recepción.

  • Reemplace 111122223333 por su ID de cuenta de AWS .

  • rule_set_nameSustitúyalo por el nombre del conjunto de reglas que contiene la regla de recepción en la que creó la función Lambda.

  • receipt_rule_nameSustitúyalo por el nombre de la regla de recepción que contiene la función Lambda.

Otorgar permiso a SES para publicar en un tema de Amazon SNS que pertenezca a otra cuenta AWS

Para publicar notificaciones sobre un tema en una AWS cuenta independiente, debes adjuntar una política al tema de Amazon SNS. El tema de SNS debe estar en la misma región que el conjunto de reglas de dominio y de recepción.

La siguiente política autoriza a SES a publicar en un tema de Amazon SNS en una cuenta independiente AWS .

{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Principal":{ "Service":"ses.amazonaws.com" }, "Action":"SNS:Publish", "Resource":"arn:aws:sns:topic_region:sns_topic_account_id:topic_name", "Condition":{ "StringEquals":{ "AWS:SourceAccount":"aws_account_id", "AWS:SourceArn": "arn:aws:ses:receipt_region:aws_account_id:receipt-rule-set/rule_set_name:receipt-rule/receipt_rule_name" } } } ] }

En la política de ejemplo anterior, realice los siguientes cambios:

  • topic_regionSustitúyalo por el tema en el Región de AWS que se creó el tema Amazon SNS.

  • sns_topic_account_idSustitúyalo por el ID de la AWS cuenta propietaria del tema Amazon SNS.

  • topic_nameSustitúyalo por el nombre del tema de Amazon SNS en el que desee publicar las notificaciones.

  • aws_account_idSustitúyalo por el ID de la AWS cuenta que está configurada para recibir correo electrónico.

  • receipt_regionSustitúyala por la Región de AWS que creaste la regla de recepción.

  • rule_set_nameSustitúyalo por el nombre del conjunto de reglas que contiene la regla de recepción en la que creaste la acción temática de publicar en Amazon SNS.

  • receipt_rule_nameSustitúyalo por el nombre de la regla de recepción que contiene la acción temática publicar en Amazon SNS.

Si tu tema de Amazon SNS utiliza AWS KMS el cifrado del lado del servidor, tienes que añadir permisos a la política de claves. AWS KMS Puede añadir permisos adjuntando la siguiente política a la política de claves: AWS KMS

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowSESToUseKMSKey", "Effect": "Allow", "Principal": { "Service": "ses.amazonaws.com" }, "Action": [ "kms:GenerateDataKey", "kms:Decrypt" ], "Resource": "*" } ] }