Crear usuario para envíos de SNS en IAM

Una de las formas recomendadas para realizar envíos de notificaciones con SNS, es crear un usuario de IAM (el sistema de gestión de identidades de AWS).

Así, tendremos un usuario con sus claves de acceso, configurado solo para poder realizar el envío de notificaciones, lo que nos ofrece una mayor seguridad.

El único requisito para la creación de este usuario es tener ya creado nuestro tema SNS y apuntar su ARN. Si aún no lo habéis creado, podéis seguir la entrada “Configurar SNS para recibir notificaciones

Acceso a la consola de IAM

El primer paso es siempre acceder a la consola de AWS.

Una vez dentro, en la barra de búsqueda buscaremos “IAM” para poder acceder a la consola de identidades.

Creación de una política de IAM

Creación de un usuario de IAM para hacer envíos con SNS, paso 1

Una vez estamos en la pantalla de bienvenida de IAM, empezaremos creando una nueva Politica, pulsando en el enlace “Políticas” del menú de la izquierda.

Dado que nuestro usuario tiene que tener una política aplicada que le de permisos, vamos a empezar creando esta política, para que el proceso de creación sea más sencillo de ver.

Dentro de las políticas por defecto de IAM podemos encontrar políticas ya definidas para la mayor parte de los servicios, aunque nosotros vamos a definir una propia para restringir al máximo el acceso del usuario.

Una vez en la pantalla de políticas, pulsaremos en el botón “Crear una política”

Creación de un usuario de IAM para hacer envíos con SNS, paso 2

Al acceder a la pantalla de creación de política tendremos dos opciones:

  • Editor visual: para navegar por las políticas existentes y elegir las que deseamos.
  • JSON: para indicar directamente los permisos que queremos aplicar.

En nuestro caso, vamos a ir directamente a la pestaña JSON, ya que introduciremos los permisos de esa forma. El código que debemos indicar es el siguiente:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "sns:Publish",
            "Resource": "arn:aws:sns:eu-west-1:1836171893615:myTopic"
        }
    ]
}

En la sección Resource debemos indicar el arn del tema que vamos a usar para los envíos.

Al pulsar en Revisar la politica, se verificará que el código que hemos puesto es correcto, e iremos a la pantalla de verificación.

Creación de un usuario de IAM para hacer envíos con SNS, paso 3

El último paso es indicar un nombre para la política, y una breve descripción, y pulsando en “Crear una política”, tendremos nuestra política creada.

Creación del usuario en IAM

Creación de un usuario de IAM para hacer envíos con SNS, paso 4

En el menú de la izquierda veremos las distintas opciones, y accederemos a la pestaña de usuarios pulsando sobre el enlace “Usuarios”

Dentro de la pantalla de usuarios veremos los usuarios activos (si los hubiere), y podremos crear un nuevo usuario pulsando en el botón “Añadir usuario(s)”

Dentro de la pantalla de creación de usuario, en primer lugar indicaremos el nombre que queremos que tenga, y que accederemos de forma programática a este.

Creación de un usuario de IAM para hacer envíos con SNS, paso 5

Con los datos básicos del usuario ya creados, el siguiente paso es añadir los permisos que va a tener. Como ya hemos creado una política, solo tenemos que indicar que nuestro usuario debe utilizarla, y para ello:

  • Pulsamos en el botón “Asociar directamente las politicas existentes”
  • Usamos el buscador para localizar la política que acabamos de crear.
  • Marcar la política o políticas que queramos añadir.
Creación de un usuario de IAM para hacer envíos con SNS, paso 6

Una vez hemos terminado, pulsamos en el botón etiquetas para ir a la pantalla de etiquetas.

Aquí podemos indicar las etiquetas que queramos (es opcional), para identificar las características de ese usuario.

Creación de un usuario de IAM para hacer envíos con SNS, paso 7

Una vez terminemos, pulsaremos en el botón “Siguiente: revisar” para terminar.

El último paso para crear el usuario es revisar la configuración de este y pulsar en el botón “Crear usuario”.

Si todo ha ido bien, veremos un mensaje indicando que ya hemos creado el usuario, y podremos descargar o ver las claves para conectar con ese usuario.

Creación de un usuario de IAM para hacer envíos con SNS, paso 9

Una vez hayamos terminado, ya podremos usar estos datos para hacer envíos SNS.

 

Configurar SNS para recibir notificaciones

SNS (Simple Notification Service o Servicio Simple de Notificaciones), es el producto de los Servicios Web de Amazon para el envío de notificaciones. Si queréis saber más sobre este servicio podéis leer esta entrada sobre AWS SNS.

Para poder hacer uso de este servicio tenemos que entender qué son los temas (topic en inglés) y las subscripciones. En SNS creamos canales de comunicación (topics), al que se conecta quien quiere recibir estas notificaciones (subscriptores). El concepto es similar a las listas de correo (que serían nuestros temas) y la gente que se apunta para recibir los correos (que serían los subscriptores).

La principal ventaja de SNS es que podemos conectar todo tipo de servicios a un canal de notificaciones. Por ejemplo, podemos hacer que con cada notificación:

  • Se envíe un correo electrónico o SMS.
  • Se haga una petición GET o POST a un servidor remoto.
  • Se ejecute un Lambda de AWS.

Configurar una notificación en SNS

Crear un tema de SNS y realizar una subscripción (en nuestro ejemplo una cuenta de correo) es muy sencillo siguiendo estos pasos:

En primer lugar accederemos a la consola de AWS, y desde el desplegable Servicios elegiremos (o buscaremos) SNS.

Si nos aparece la portada de bienvenida de SNS, pulsaremos sobre “Get started” para acceder a la pantalla de trabajo.

En la pantalla principal, seleccionamos “Create topic” para crear un nuevo tema de envío.

Ahora, debemos indicar el nombre y una descripción breve (hasta 10 caracteres) para nuestro tema, y pulsamos el botón “Create topic”

Con nuestro tema ya creado, tenemos que añadir subscriptores que reciban los mensajes que enviemos.

Para ello, una vez dentro de nuestro asunto, pulsaremos en “Create subscription”, para añadir un nuevo subscriptor.

Configuración de un tema SNS, paso 3

Al pulsar, se abrirá una ventana donde debemos indicar 3 opciones:

Configuración de un tema SNS, paso 4
  • El ARN de AWS para nuestro tema (que ya viene indicado)
  • La forma en que queremos recibir las notificaciones (elegiremos Email)
  • El destino (en el caso de correo, la cuenta de correo a la queremos enviar las notificaciones

Es importante tener en cuenta que, si hemos elegido el envío a correo electrónico, debemos confirmar la dirección de correo electrónico, pulsando en el enlace del correo de confirmación que nos envían. Hasta que lo hagamos, no recibiremos notificaciones y apareceremos como “PendingConfirmation”.

Configuración de un tema SNS, paso 5

Nuestra cuenta de correo está pendiente de confirmación.

Configuración de un tema SNS, paso 6

Recibiremos un correo similar a este, con un enlace para confirmar la subscripción.

Configuración de un tema SNS, paso 7

Al pulsar en el enlace de confirmación, nos llevará a una página similar a la superior, donde nos confirmará que el proceso ha ido bien.

Configuración de un tema SNS, paso 8

Actualizando, ya veremos nuestra cuenta confirmada, y podremos recibir notificaciones.

Enviar notificaciones a un tema

Una vez que ya hemos configurado nuestro tema para poder enviar notificaciones, podemos ver su funcionamiento haciendo un envío de prueba.

Para ello, en la ventana de configuración de nuestro tema, pulsamos en el botón “Publish to topic”.

Configuración de un tema SNS, paso 9

Al pulsar, nos pedirá que indiquemos el asunto de la notificación, el contenido (podemos indicar que es de tipo raw y escribir cualquier mensaje), y al pulsar en “Publish message” se enviará a todos los subscriptores.

Configuración de un tema SNS, paso 10

Además, podemos utilizar la API de AWS para SNS para programar los envíos a SNS desde nuestro programa, instancias, lambdas, etc.