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.
Temas de esta sección:
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:
-
Solo se puede usar para Acción Entregar al bucket de S3.
-
Debe usarse si se desea escribir en un bucket de S3 que exista en una región donde Recepción de correo electrónico de SES no esté disponible.
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-bucket
Sustitúyalo por el nombre del bucket de S3 en el que desee escribir. -
region
Sustitú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-topic
Sustitúyalo por el nombre del tema de SNS en el que quieres publicar las notificaciones. -
key-id
Sustitú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:
-
region
Sustitú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_name
Sustitú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_name
Sustitú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-bucket
Sustitúyalo por el nombre del bucket de S3 en el que desee escribir. -
region
Sustitú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_name
Sustitú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_name
Sustitú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:
-
region
Sustitú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_name
Sustitú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_name
Sustitú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:
-
region
Sustitú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_name
Sustitú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_name
Sustitú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_region
Sustitúyalo por el tema en el Región de AWS que se creó el tema Amazon SNS. -
sns_topic_account_id
Sustitúyalo por el ID de la AWS cuenta propietaria del tema Amazon SNS. -
topic_name
Sustitúyalo por el nombre del tema de Amazon SNS en el que desee publicar las notificaciones. -
aws_account_id
Sustitúyalo por el ID de la AWS cuenta que está configurada para recibir correo electrónico. -
receipt_region
Sustitúyala por la Región de AWS que creaste la regla de recepción. -
rule_set_name
Sustitú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_name
Sustitú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": "*" } ] }