Los desarrolladores que solicitan certificados AWS son como los adolescentes que piden las keys de un coche – hay mucho tiempo de espera, papelera y dedos cruzados. Si estás cansado de jugar como guardián de certificados o si eres el desarrollador atrapado en el infierno de las solicitudes.
Vamos a convertir ese proceso de agonizante solicitud de certificados en un simple comando de Slack usando n8n, una herramienta de automatización de flujo intuitiva que hará que tus desarrolladores digan, “¿Es esto todo?”.
Cubriremos un escenario de ejemplo de A a Z, sin escatimar detalles, para mostrarte cómo la herramienta de automatización de flujo n8n puede ahorrar a los desarrolladores y gerentes ocupados cientos de horas de horas extras.
El Baile de la Solicitud de Certificado Actual
Imagina este escenario demasiado familiar: un desarrollador necesita un nuevo certificado AWS para su entorno de desarrollo. Aquí es cómo suele transcurrir normalmente:
- El desarrollador envía una solicitud con texto suficiente para escribir una novela
- La solicitud se queda en la cola mientras el desarrollador actualiza con ansiedad su bandeja de entrada
- El aprobador finalmente ve la solicitud entre 47 otras solicitudes urgentes
- La mitad de la información requerida está faltando (obviamente)
- Luego comienzan unas correspondencias agradables como un doloroso juego de ping-pong
- El aprobador entra en la consola AWS (después de encontrar su dispositivo 2FA)
- Se crea manualmente el certificado
- Finalmente el desarrollador obtiene detalles del certificado… quizás.
- Todo el mundo pierde un poco de su alma
¿Suena familiar? Pensé que sí. Vamos a arreglar esto.
El sueño: Comando de Slack → Certificado Instantáneo
¿Qué pasaría si tus desarrolladores solo tuvieran que escribir /newcert
en el canal de Slack de su entorno de desarrollo, y en segundos obtuvieran un ARN de certificado de AWS? Nada de tickets, nada de espera, nada de abatimiento de espíritu. Eso es exactamente lo que estamos construyendo.
En este escenario, eres un desarrollador en una organización que utiliza Slack para la comunicación. Has creado un canal de Slack para cada entorno de desarrollo para mantener las conversaciones organizadas.
Aquí es cómo funcionará nuestro flujo de trabajo automatizado:
- El desarrollador escribe
/newcert
en el canal de Slack de su entorno - El flujo de trabajo de n8n recibe la solicitud con el contexto del canal
- El flujo de trabajo crea un certificado en AWS
- El ARN del certificado aparece en el mismo canal de Slack
Eso es todo. Cuatro pasos en lugar de nueve, y cero espera para que los humanos hagan cosas humanas!
Como no nos ahorramos los detalles, este post no solo le dirá que n8n puede automatizar este proceso, sino que le mostraré (lo hice yo misma de cero).
n8n utiliza flujos de trabajo para enlazar tareas usando nodos. Estos flujos de trabajo pueden ejecutarse, disparando todos los nodos dentro del flujo de trabajo para automatizar procesos simples a complejos.
Si estás interesado en aprender cómo configurar este flujo de trabajo o en aprender cómo se puede configurar un flujo de trabajo de n8n, continúa leyendo!
Antes de Nada: El Disparador de Webhook
Abre tu instancia de n8n y empezamos con una tabla nueva:
1. Crea un nuevo flujo de trabajo. Debajo, verás la tabla en blanco de un nuevo flujo de trabajo de n8n listo para configurar el primer nodo disparador.

2. A continuación, agrega un webhook nodo disparador. El nodo disparador de webhook es cómo Slack se comunicará con este flujo de trabajo para notificarle cuándo emitir solicitudes a AWS para crear nuevos certificados.

Puedes ver desde la captura de pantalla anterior que el nodo disparador de webhook estará escuchando solicitudes POST HTTP.
3. Configúralo para recibir solicitudes POST de Slack
Este webhook será nuestra puerta principal – es donde Slack llamará cuando alguien use nuestra orden /newcert
.
Creando la aplicación de Slack
Es hora de configurar el lado de Slack. Necesitarás una aplicación de Slack para permitir a los usuarios emitir comandos en línea (/newcert
) en el canal. La aplicación de Slack también actuará como una manera para que n8n se autentique de vuelta a Slack para devolver mensajes.
1. Una vez en la pantalla de aplicaciones de Slack, haga clic en Crear Nueva App donde puede proporcionar un nombre.

2. A continuación, configure los Scopes para poder emitir comandos de barra diagonal y para también enviar mensajes de vuelta al canal. Necesitará
– channels:read
– chat:write
– commands

3. A continuación, configure un slash command. Un comando de barra diagonal permite a los usuarios emitir comandos a su aplicación de Slack como una barra diagonal seguida de algún comando. En este caso, el comando será /newcert
para generar una nueva certificación AWS.
En la configuración de su aplicación, vaya a “Slash Commands” y haga clic en “Create New Command”

4. Instale la aplicación en su espacio de trabajo Una vez que haya configurado los scope y el comando de barra diagonal.

5. Finalmente, invite the bot (the application you just created) to a Slack channel para trabajar. En este caso, el canal será el nombre del entorno de desarrollo qa-1.
/invite @devenvironmentautomation
Probando el Trigger de Webhook
Ahora tiene configurada la aplicación de Slack y el trigger de webhook. Es hora de probar su interactividad.
1. En tu flujo de trabajo de n8n, haga clic en el botón Escuchar evento de prueba. Esto permitirá que el trigger de webhook comience a escuchar solicitudes que la aplicación de Slack debería enviar.

2. A continuación, en tu canal de Slack de entorno de desarrollo, emita el comando Slash /newcert
. Una vez que lo haces, deberías ver que el nodo de webhook recibe la solicitud en n8n.
Observa que incluye el nombre de canal y la ID de usuario en la solicitud. Esto nos permitirá ver para qué entorno de desarrollo se está solicitando este certificado y quién lo está solicitando.

Si todo ha ido bien, deberías ver la respuesta JSON predeterminada que te dice que el flujo de trabajo ha recibido la solicitud que inició el flujo de trabajo.

Configuración del Acceso a AWS
n8n necesita autenticarse en AWS para crear certificados nuevos. Para hacerlo, se necesita un usuario de IAM con los derechos apropiados. Como estamos empezando de cero en este tutorial, a continuación, encontrarás una manera de configurar rápidamente este usuario de IAM a través de la CLI de AWS.
Si aún no tienes un usuario de IAM, puedes usar el siguiente código para hacerlo:
## crear el archivo de política
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"acm:DescribeCertificate",
"acm:ListCertificates",
"acm:GetCertificate",
"acm:RequestCertificate"
"acm:AddTagsToCertificate"
],
"Resource": "*"
}
]
}
## crear el usuario
aws iam create-user --user-name CertificateManager
## crear la identificación de clave de acceso y la clave de acceso secreta
aws iam create-access-key --user-name CertificateManager --query 'AccessKey.[AccessKeyId,SecretAccessKey]' --output text > certificate_manager_credentials.txt
## crear la política
$policy = Get-Content -Raw ~/Downloads/cert-policy.json PS /Users/adam> $policy_arn = aws iam create-policy --policy-name CertificateManagerPolicy --policy-document $policy --query 'Policy.Arn' --output text
## adjuntar la política
aws iam attach-user-policy --user-name CertificateManager --policy-arn $policy_arn
## leer la identificación de clave de acceso y la clave secreta que necesitaremos más adelante para el flujo de trabajo
Get-Content ./certificate_manager_credentials.txt
Este código utiliza la CLI de AWS para realizar varias tareas:
1. Creación de Política: Crear una política de IAM que define exactamente qué acciones relacionadas con los certificados están permitidas:
– Ver detalles del certificado
– Listar certificados
– Recuperar datos del certificado
– Crear certificados nuevos
– Agregar etiquetas a los certificados
2. Creación de Usuario: Crear un usuario de IAM dedicado llamado “CertificateManager” que será usado explicitamente para tareas de gestión de certificados
3. Generación de Clave de Acceso: Crear un par de claves de acceso (Identificación de Clave de Acceso y Clave de Acceso Secreta) para el nuevo usuario y guardarlos en un archivo
4. Adjunto de Política: Crear la política de IAM y adjuntarla al nuevo usuario, concediéndole solamente las permisiones de gestión de certificados específicas definidas en la política
5. Usará la ordenación de PowerShell Get-Content
para leer el archivo de texto con la clave de acceso y el secreto que necesitará proporcionar al flujo de trabajo.
Esto sigue las mejores prácticas de seguridad mediante:
- El uso del principio de mínima privilegios (concediendo solamente las permisiones necesarias).
- Crear un usuario dedicado para la gestión de certificados
- Separar las credenciales del cuenta de administrador
Nota: En un entorno de producción, es recomendable almacenar las credenciales generadas de manera segura, no en un archivo de texto plano. Considere utilizar AWS Secrets Manager o otra solución de almacenamiento seguro de secretos.
Configurar las credenciales de AWS para el flujo de trabajo de n8n
Cuando lleguemos a ese paso, el flujo de trabajo debe ser capaz de autenticarse en AWS Certificate Manager para emitir nuevos certificados. n8n utiliza credentials para ello. Para crear una nueva credential para AWS:
1. En tu espacio de trabajo, hace clic en Credentials en la parte superior de la pantalla y hace clic en Add credential.

2. Especifica AWS como el tipo de credencial.

3. Proporciona las claves de acceso y secretas generadas anteriormente mediante las órdenes de AWS CLI.

n8n tiene una característica agradable que automáticamente prueba la credencial cuando la guardas, así que sabrás inmediatamente si la credencial funciona o no.

Creando el nodo de solicitud HTTP
Aunque n8n sí tenga soporte para el servicio AWS Certificate Manager, actualmente no soporta la creación de certificados nuevos, así que no te quedas sin esperanza! Puedes usar el nodo de solicitud HTTP genérica. Este nodo te permite realizar solicitudes HTTP genéricas a operaciones de API que actualmente no están soportadas.
No need to worry about complex API authentication. Once you create a credential, n8n can leverage that and manage all that OAuth goodness for you.
1. Para crear el nodo de solicitud HTTP que buscamos, primero, define todos los parámetros que el API de AWS requiere. Estos son:
– URL – El punto final de la API para la región en la que estás trabajando
– Autenticación – Utiliza el tipo de credencial predefinido Predefined Credential Type para aprovechar la credencial creada previamente.
– Tipo de credencial – AWS
– AWS – La credencial de AWS creada previamente.
– Enviar Cabeceras – Necesitarás la cabecera X-Amz-Target
para decirle al API qué operación deseas usar; en este caso, es CertificateManager.RequestCertificate
.
– Tipo de contenido del cuerpo – application/x-amz-json-1.1

2. A continuación, configura el cuerpo de la solicitud HTTP. Este es un paso crucial para hacer una solicitud API con el nombre del entorno de desarrollo. En este caso, estás asignando una etiqueta AWS llamada Environment al certificado y estableciendo el valor del nombre de entorno recibido de la solicitud de Slack.
Necesitarás una entrada dinámica o Expresión para esta tarea. Haz clic en Expresión en el campo Cuerpo, y verás que la entrada se convierte en un texto de función.

3. Haz clic en el icono de expansión en la esquina inferior derecha del campo de cuerpo, y obtendrás un editor intuitivo.
El cuerpo HTTP debe estar en JSON. Estoy usando uno de mis nombres de dominio aquí y validando el certificado con DNS.
Puedes ver a continuación que puedo incluir el valor de la etiqueta arrastrando el valor recibido de Slack en la expresión.

{
"DomainName": "atademos.com",
"ValidationMethod": "DNS",
"Tags": [
{
"Key": "Environment",
"Value": "{{ $('Webhook').item.json.body.channel_name }}"
}
]}
El valor ahora es {{ $('Webhook').item.json.body.channel_name }}
Esta variable se pasará a AWS en la solicitud de API que contiene el nombre del canal de Slack (el nombre del entorno de desarrollo en este escenario).
[su_hightlight]The expressions in n8n are powerful. They’ve developed their own templating language that’s intuitive and is integrated well in various parts of the tool.[/su_hightlight]
4. Finalmente, prueba el nodo de solicitud HTTP haciendo clic en Paso de prueba. Si todo salió bien, deberías ver la respuesta JSON de AWS, incluido el ARN del certificado
Crear el Nodo de Slack
En este punto, tienes dos de los tres nodos completos en este sencillo flujo de trabajo n8n: el disparador de webhook para que Slack llame y el nodo de Solicitud HTTP que realizará solicitudes de API a AWS. El nodo final es el nodo de Slack, que inicia un mensaje de respuesta al usuario.
1. Abre el panel de Nodos y haz clic en el botón más para crear un nuevo nodo de Slack en tu flujo de trabajo.
2. Busca Slack y elige la acción Enviar un mensaje.


3. A continuación, haga clic en Credencial para conectar y elija Crear una Nueva Credencial para crear una credencial de Slack similar a la Credencial de AWS. Una vez que haya configurado una credencial, podrá usarla en el nodo de Slack.
4. Proporcione los parámetros apropiados para el nodo de Slack:
- Recurso – Mensaje (para enviar un mensaje de canal)
- Operación – Enviar
- Enviar Mensaje A – Canal
- Canal – Por Nombre. Puede usar el editor de expresiones de nuevo y arrastrar el atributo channel_name del disparador de webhook para usar una expresión dinámica.
- Texto del Mensaje – En este escenario, el flujo de trabajo devolverá el ARN de certificado recibido de AWS al desarrollador en el canal de Slack. Como AWS devuelve una cadena de JSON, podemos usar la función de expresión integrada
JSON.parse
para parsear el JSON y extraer solo el valor deCertificateArn
.
The ability to run simple JavaScript like JSON.parse directly in expressions is extremely handy. If I didn’t have this ability, I’d have to create a whole new node just to format this simple data.

5. Haga clic en Probar paso y el canal Slack de origen debería recibir el mensaje!
Probar el Flujo de Trabajo
En este punto, debería tener un flujo de trabajo con tres nodos. ¡Es hora de probar el flujo de trabajo completo juntos!
Haciendo clic en Probar Flujo de Trabajo, verá que n8n comienza a esperar el disparador.

Vaya al canal de entorno de desarrollo de Slack y emita el comando /newcert
. ¡Listo, el flujo de trabajo debería ejecutarse sin problemas!

Ahora debería tener un certificado etiquetado explícitamente para el entorno de desarrollo en el que se utilizará, un historial de la solicitud y un montón de desarrolladores mucho más felices, ¡por ejemplo, el acceso a nuevos certificados!
Por Qué Esto Importa
Piensa en lo que acabamos de construir:
- Eliminamos el intermediario del sistema de tickets
- Redimensionamos el tiempo de solicitud de certificado de días a segundos
- Automatizamos la documentación (etiquetas de AWS)
- Hicimos a los desarrolladores más felices (imprecionable)
Este artículo de blog cubrió solo una tarea: construir la fluencia de trabajo. Ahora puede ejecutarse ilimitadamente para ahorrar horas innumerables.
Y la mejor parte? Esto es solo el comienzo. Podrías extendir esta fluencia de trabajo para manejar diferentes tipos de certificados, agregar aprobaciones para entornos de producción o incluso automatizar notificaciones de renovación de certificados.
Echa un vistazo a Plantillas Pre-Compiladas
n8n ofrece cientos de plantillas pre-compiladas como esta fluencia de trabajo. Estas plantillas permiten que evites el proceso que hemos cubierto para aprovechar fluencias de trabajo construidas y probadas por n8n.
If you’d like another great example of a Slack workflow, check out their Advanced Slackbot template.
Pensamientos Finales
n8n hace que sea ridículamente fácil automatizar este tipo de fluencias de trabajo. Tomamos un proceso que normalmente implica varios sistemas, personas y niveles de paciencia y lo convertimos en un solo comando de Slack.
¿Quieres probar esto tú mismo? La versión básica de n8n es gratuita, y probablemente puedas configurar esto más rápido que procesar una solicitud de certificado única de forma tradicional. Tus desarrolladores te agradecerán y tendrás un menos dolor de cabeza administrativo.
Source:
https://adamtheautomator.com/automate-aws-cert-creation-n8n-slack/