He creado una notificación de evento de Amazon Simple Storage Service (Amazon S3) para enviar mensajes a través de mi tema de Amazon Simple Notification Service (Amazon SNS). Sin embargo, las nuevas notificaciones de eventos de mi bucket de Amazon S3 no publicaron mensajes sobre el tema de Amazon SNS.
Resolución
Confirmar si ha configurado correctamente el tipo de evento de Amazon S3
Al configurar una notificación de eventos de Amazon S3, debe especificar qué tipos de eventos de Amazon S3 compatibles hacen que Amazon S3 envíe la notificación. Si se produce un tipo de evento no especificado en el bucket de Amazon S3, Amazon S3 no enviará la notificación.
Confirmar que sus filtros de nombre de clave de objeto están en formato URL codificado (codificado por porcentajes)
Si ha configurado las notificaciones de eventos de S3 para que usen el filtrado de nombres de claves de objetos, Amazon S3 publica notificaciones solo para objetos con prefijos o sufijos específicos.
Si usa caracteres especiales en sus prefijos o sufijos, deberá introducirlos en formato URL codificado (codificado por porcentajes). Para obtener más información, consulte Guías de nomenclatura de clave de objeto y Uso de metadatos de objetos.
Nota: No puede usar un carácter comodín («*») como prefijo o sufijo para representar un carácter.
Confirmar que ha otorgado a Amazon S3 los permisos necesarios para publicar mensajes en su tema
Su política basada en recursos del tema de Amazon SNS debe permitir que el bucket de Amazon S3 publique mensajes en el tema. Consulte su política de AWS Identity and Access Management (IAM) del tema para confirmar que cuenta con los permisos necesarios y, si es necesario, conceda permisos.
Confirmar que el tema tenga permisos de AWS KMS para temas cifrados con SSE
Si ha activado el cifrado en el servidor (SSE) en su tema de SNS, este debe usar una clave de AWS Key Management (AWS KMS) administrada por el cliente. La clave de AWS KMS debe incluir una política de claves personalizada que conceda permiso a Amazon S3 para usar la clave.
Para configurar los permisos de AWS KMS necesarios, siga estos pasos:
-
Cree una nueva política de claves y claves de AWS KMS administrada por el cliente.
-
Edite la política de claves para incluir la siguiente instrucción que permita a Amazon S3 publicar mensajes en su tema de SNS cifrado:
{
"version": "2012-10-17",
"statement": [
{
"effect": "allow",
"principal": {
"service": "s3.amazonaws.com"
},
"action": [
"kms:generatedatakey*",
"kms:decrypt"
],
"resource": "*"
}
]
}
-
Utilice la clave de AWS KMS para configurar SSE para su tema de Amazon SNS.
Uso de las métricas de CloudWatch para solucionar problemas adicionales
Si el tema de SNS sigue sin recibir la notificación del evento de Amazon S3, compruebe la métrica NumberOfMessagePublished de Amazon CloudWatch para SNS. Esta métrica muestra si Amazon S3 ha publicado los eventos. Si no hay ninguna métrica para NumberOfMessagePublished, significa que hay un problema con la configuración de Amazon S3 a Amazon SNS.
Si hay métricas para NumberOfMessagePublished, compruebe las métricas NumberOfNotificationsDelivered y NumberOfNotificationsFailed. Estas métricas muestran si el tema de SNS ha entregado los mensajes a un punto de enlace de suscripción.
Para ayudarle a solucionar problemas, también puede configurar el registro del estado de entrega para los temas de SNS.
Información relacionada
Permitir que las notificaciones de evento de Amazon S3 se publiquen en un tema