Les développeurs qui demandent des certificats AWS sont comme les adolescents qui demandent les clés de la voiture : beaucoup d’attente, des papiers à remplir et des doigts croisés. Si vous avez Had assez de jouer au gardien des certificats ou d’être le développeur coincé dans le purgatoire des demandes,
transformons ce processus ennuyeux de demande de certificat en une simple commande Slack en utilisant n8n, un outil d’automatisation de flux de travail intuitif qui fera dire aux développeurs : « C’est ça ? »
Nous couvrirons scénario d’exemple de A à Z, sans omettre les détails, pour vous montrer comment l’outil d’automatisation de flux de travail n8n peut épargner aux développeurs et gestionnaires occupés des heures supplémentaires de temps supplémentaire.
La danse actuelle de la demande de certificat
Imaginez ce scénario trop familier : un développeur a besoin d’un nouveau certificat AWS pour son environnement de développement. Voici comment il se déroule typiquement :
- Le développeur soumet une demande avec assez de texte pour écrire un roman
- La demande reste dans la file d’attente tandis que le développeur rafraîchit constamment son boîte de réception
- L’approuvé finalise enfin la demande entre 47 autres demandes urgentes
- La moitié des informations requises manquent (obligatoirement)
- Des courriels de et à se succèdent comme un pénible jeu de ping-pong
- L’approuvé se connecte à la console AWS (après avoir trouvé son appareil 2FA)
- La création manuelle du certificat a lieu
- Le développeur finalement reçoit les détails du certificat… peut-être.
- Chaque personne perd un peu de son âme
Cela vous semble familier ? Je le pensais également. Let’s fix this.
Le Rêve : Slack Command → Instant Certificate
Et si vos développeurs pouvaient simplement taper /newcert
dans le canal Slack de leur environnement de développement, et obtenir un ARN de certificat AWS en quelques secondes ? Aucun ticket, aucune attente, pas de découragement mutuel. C’est exactement ce que nous construisons.
Dans ce scénario, vous êtes un développeur dans une organisation qui utilise Slack pour la communication. Vous avez créé un canal Slack pour chaque environnement de développement pour garder les conversations organisées.
Voici comment notre processus automatisé va fonctionner :
- Le développeur tape
/newcert
dans le canal Slack de son environnement - Le workflow n8n reçoit la requête avec le contexte du canal
- Le workflow crée un certificat dans AWS
- L’ARN du certificat apparaît dans le même canal Slack
C’est tout. Quatre étapes au lieu de neuf, et zéro attente pour que les humains fassent des choses humaines !
Puisque nous n’épargnons pas les détails, cet article ne vous dira pas simplement que n8n peut automatiser ce processus, mais je vous montrerai (j’ai fait ça moi-même à partir de zéro).
n8n utilise des workflows pour lier des tâches à l’aide de nœuds. Ces workflows peuvent ensuite être exécutés, déclenchant tous les nœuds à l’intérieur du workflow pour automatiser des processus simples à des processus complexes.
Si vous êtes intéressé à apprendre comment configurer ce workflow ou à en apprendre davantage sur la façon dont un workflow n8n pourrait être mis en place, continuez à lire !
Premier Chose première : Le Déclencheur d’Webhook
Ouvrez votre instance d’n8n, et commençons avec un tableau blanc :
1. Créez une nouvelle workflow. En bas, vous verrez le tableau blanc d’une nouvelle workflow d’n8n prête à configurer le premier noeud d’ déclenchement.

2. Ensuite, ajoutez un webhook noeud d’ déclenchement. Le noeud d’ déclenchement de webhook est la manière dont Slack communiquera avec cette workflow pour notifier quand il faut soumettre des demandes à AWS pour créer de nouveaux certificats.

Vous pouvez voir depuis la capture d’ écran ci-dessus que le noeud d’ déclenchement de webhook sera en train d’écouter pour les demandes POST HTTP.
3. Configurez-le pour recevoir des demandes POST de Slack
Ce webhook sera notre porte d’ entrée – c’ est l’ endroit où Slack frappera quand quelqu’ un utilisera notre commande de /newcert
.
Création de l’ application Slack
C’ est le moment de configurer le côté Slack des choses. Vous aurez besoin d’ une application Slack pour permettre aux utilisateurs de soumettre des commandes slash (/newcert
) dans le channel. L’ application Slack jouera également un rôle pour que n8n puisse s’ identifier à Slack pour retourner des messages.
1. Une fois sur l’ écran des applications Slack, cliquez sur Créer nouvelle application où vous pouvez fournir un nom.

2. Ensuite, configurez les Scopes pour que l’application Slack puisse émettre des commandes slash et pour qu’elle puisse également envoyer des messages dans le channel. Vous aurez besoin
– channels:read
– chat:write
– commands

3. Ensuite, configurez une commande slash. Une commande slash permet aux utilisateurs d’émettre des commandes à votre application Slack suivie d’un slash et d’une commande. Dans ce cas, la commande sera /newcert
pour générer un nouveau certificat AWS.
Dans les paramètres de votre application, allez à “Commandes Slash” et cliquez sur “Créer une nouvelle commande”

4. Installez l’application dans votre espace de travail Une fois les scopes et la commande slash configurés.

5. Enfin, invitez le bot (l’application que vous venez de créer) à un channel Slack où il devra travailler. Dans ce cas, le channel s’appellera le nom de l’environnement de développement qa-1.
/invite @devenvironmentautomation
Testez l’activation du trigger Webhook
Vous avez maintenant configuré l’application Slack et le trigger Webhook. Il est temps de tester leur interactivité.
1. Dans votre workflow n8n, cliquez sur le bouton Écouter pour Evénement de Test. Cela permettra au trigger Webhook de commencer à écouter les demandes que l’application Slack doit envoyer.

2. Ensuite, dans votre canal Slack de l’environnement de développement, exécutez la commande slash /newcert
. Une fois ce fait, vous devriez voir que le nœud du webhook reçoit la requête dans n8n.
Notez qu’il inclut le nom du canal et l’ID de l’utilisateur dans la requête. Cela nous permettra de savoir pour quelle environnement de développement ce certificat est-il demandé et qui l’a demandé.

Si tout s’est bien passé, vous devriez voir la réponse JSON par défaut vous informant que le workflow a reçu la requête qui a lancé le workflow.

Configuration de l’accès AWS
n8n doit s’authentifier auprès d’AWS pour créer de nouveaux certificats. Pour ce faire, il faut un utilisateur IAM avec les droits appropriés. Comme nous commençons de zéro dans ce tutoriel, ci-dessous, vous trouverez une méthode pour configurer rapidement cet utilisateur IAM via la CLI AWS.
Si vous n’avez pas déjà un utilisateur IAM, vous pouvez utiliser le code suivant pour l’ créer :
## Créer le fichier de politique
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"acm:DescribeCertificate",
"acm:ListCertificates",
"acm:GetCertificate",
"acm:RequestCertificate"
"acm:AddTagsToCertificate"
],
"Resource": "*"
}
]
}
## Créer l'utilisateur
aws iam create-user --user-name CertificateManager
## Créer l'ID de clé d'accès et la clé d'accès secrète
aws iam create-access-key --user-name CertificateManager --query 'AccessKey.[AccessKeyId,SecretAccessKey]' --output text > certificate_manager_credentials.txt
## Créer la politique
$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
## Attacher la politique
aws iam attach-user-policy --user-name CertificateManager --policy-arn $policy_arn
## Lire l'ID de clé d'accès et le secret qui nous seront nécessaires plus tard pour le workflow
Get-Content ./certificate_manager_credentials.txt
Ce code utilise la CLI AWS pour exécuter diverses tâches :
1. Création de politique : Crée une politique IAM qui définit exactement quelles actions sont autorisées en rapport avec les certificats :
– Afficher les détails du certificat
– Lister les certificats
– Retrouver les données du certificat
– Créer de nouveaux certificats
– Ajouter des étiquettes aux certificats
2. Création d’utilisateur : Crée un utilisateur IAM dédié nommé « CertificateManager » qui sera explicitement utilisé pour les tâches de gestion des certificats
3. Génération de clé d’accès : Crée un couple de clés d’accès (ID de clé d’accès et Clé d’accès secrète) pour l’utilisateur nouveau et les enregistre dans un fichier
4. Attachement de politique : Crée la politique IAM et l’attache à l’utilisateur nouveau, en leur accordant seulement les permissions de gestion de certificats spécifiques définies dans la politique
5. Utilise la commande PowerShell `Get-Content` pour lire le fichier texte avec la clé d’accès et le secret que vous devrez fournir au workflow.
Cela suit les meilleures pratiques de sécurité en :
- Utilisant le principe de la plus petite autorisation nécessaire (en accordant seulement les permissions nécessaires).
- Création d’un utilisateur spécifique pour la gestion des certificats
- Séparation des identifiants de la compte administrateur
Remarque : Dans un environnement de production, il est recommandé de stocker les identifiants générés de manière sécurisée, et non dans un fichier texte brut. Envisagez d’utiliser le Gestionnaire de secrets AWS ou un autre解决方案 de stockage sécurisé de secrets.
Configurer les identifiants AWS pour le workflow n8n
Lorsque nous arriverons à cette étape, le workflow doit être en mesure d’authentifier AWS Certificate Manager afin d’émettre de nouveaux certificats. n8n utilise des identifiants pour cela. Pour créer un nouvel identifiant AWS :
1. Dans votre espace de travail, cliquez sur Identifiants en haut de l’écran et cliquez sur Ajouter un identifiant.

2. Spécifiez AWS comme type d’identifiant.

3. Fournissez les clés d’accès et de secret d’accès générées à partir des commandes AWS CLI précédentes.

n8n possède une belle fonctionnalité qui teste automatiquement l’identifiant lorsque vous le sauvegardez, vous serez donc averti immédiatement si l’identifiant fonctionne ou non.

Création du nœud de requête HTTP.
Bien que n8n offre de la support pour le service Gestionnaire de certificats AWS, il ne permet actuellement pas la création de nouveaux certificats, vous n’êtes donc pas démuni ! Vous pouvez utiliser le nœud Requête HTTP générique. Ce nœud vous permet d’émettre des requêtes HTTP génériques vers des opérations d’API qui ne sont actuellement pas supportées.
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. Pour créer le nœud Requête HTTP que nous recherchons, premièrement, définissez tous les paramètres requis par l’API AWS. Ces paramètres sont :
– URL – L’extrémité API de la région dans laquelle vous travaillez
– Authentification – Utilisez le Type de crédentials prédéfini pour exploiter les crédentials créées préalablement.
– Type de crédential – AWS
– AWS – Les crédentials AWS créées préalablement.
– Envoyer des en-têtes – Vous aurez besoin de l’en-tête X-Amz-Target
pour indiquer à l’API quelle opération vous aimeriez utiliser ; c’est CertificateManager.RequestCertificate
dans ce cas.
– Type de contenu du corps – application/x-amz-json-1.1

2. Ensuite, configurez le corps de l’HTTP. C’est une étape cruciale pour faire une requête API avec le nom de l’environnement de développement. Dans ce scénario, nous affectons un étiquette AWS appelée Environment au certificat et définissons la valeur du nom d’environnement reçu à partir de la requête Slack.
Vous aurez besoin d’une entrée dynamique ou Expression pour cette tâche. Cliquez sur Expression dans le champ Body, et vous verrez que l’entrée se transforme en texte de fonction.

3. Cliquez sur l’icône d’extension dans le coin inférieur droit du champ body, et vous obtiendrez un éditeur intuitif.
Le corps HTTP doit être au format JSON. J’utilise ici l’un de mes noms de domaine et valide le certificat avec DNS.
Vous pouvez voir ci-dessous que je peux inclure la valeur de l’étiquette en faisant glisser la valeur reçue de Slack dans l’expression.

{
"DomainName": "atademos.com",
"ValidationMethod": "DNS",
"Tags": [
{
"Key": "Environment",
"Value": "{{ $('Webhook').item.json.body.channel_name }}"
}
]}
La valeur est maintenant {{ $('Webhook').item.json.body.channel_name }}
Cette variable sera transmise à AWS dans la requête API contenant le nom du canal Slack (le nom de l’environnement de développement dans ce scénario).
[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. Enfin, testez le nœud de requête HTTP en cliquant sur Test step. Si tout s’est bien passé, vous devriez voir la réponse JSON d’AWS, y compris l’ARN du certificat
Créer le nœud Slack
À ce stade, vous avez deux des trois nœuds complétés dans ce simple workflow n8n : le déclencheur webhook pour que Slack appelle et le nœud de requête HTTP qui fera des requêtes API à AWS. Le dernier nœud est le nœud Slack, qui initie un message de réponse à l’utilisateur.
1. Ouvrez le panneau des nœuds et cliquez sur le bouton plus pour créer un nouveau nœud Slack dans votre workflow.
2. Recherchez Slack et choisissez l’action Envoyer un message.


3. Ensuite, cliquez sur Fournissez les informations d’authentification pour vous connecter et choisissez Créer une nouvelle information d’authentification pour créer une information d’authentification Slack similaire à celle d’AWS. Une fois que vous aurez configuré une information d’authentification, vous pourrez l’utiliser dans le nœud Slack.
4. Fournissez les paramètres appropriés au nœud Slack :
- Ressource – Message (pour envoyer un message de canal)
- Opération – Envoyer
- Envoyer un message à – Canal
- Canal – Par nom. Vous pouvez à nouveau utiliser l’éditeur d’expressions et glisser l’attribut channel_name depuis l’événement de webhook vers une expression dynamique.
- Texte du message – Dans ce scénario, le workflow renverra l’ARN de certificat reçu d’AWS au développeur dans le canal Slack. Comme AWS renvoie une chaîne JSON, nous pouvons utiliser la fonction d’expression construite
JSON.parse
pour parser le JSON pour ne renvoyer que la valeurCertificateArn
.
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. Cliquez sur Tester l’étape et le canal Slack d’origine devrait reçoive le message !
Tester le workflow
À ce stade, vous devriez avoir un workflow avec trois nœuds. Il est temps de tester le workflow entier !
Cliquer sur Tester le workflow, et n8n commencera à attendre l’événement de déclenchement.

Allez dans le canal de l’environnement de développement Slack et émettez la commande /newcert
. Voilà, le workflow devrait s’exécuter sans problème !

Vous devriez maintenant avoir un certificat étiqueté explicitement pour l’environnement de développement dans lequel il sera utilisé, un historique de la demande, et de nombreux développeurs plus heureux, par exemple, accès à de nouveaux certificats !
Pourquoi cela importe
Réfléchissez à ce que nous venons de construire :
- Élimination du ticket système intermédiaire
- Réduction du temps de demande de certificat de jours à secondes
- Documentation automatisée (étiquettes AWS)
- Faites plus heureux les développeurs (précieux)
Ce billet ne couvre qu’une seule tâche : la construction du flux de travail. Il peut maintenant être exécuté illimité de nombreuses heures !
Et la meilleure partie ? C’est juste le début. Vous pourriez étendre ce flux de travail pour gérer différents types de certificats, ajouter des approbations pour les environnements de production ou même automatiser les notifications de renouvellement de certificats.
Consultez les Modèles Pré-Conçus
n8n propose des centaines de modèles pré-construits comme ce flux de travail. Ces modèles permettent de raccourcir le processus que nous avons couvert pour profiter de flux de travail construits et testés par n8n.
If you’d like another great example of a Slack workflow, check out their Advanced Slackbot template.
Pensées Finales
n8n rend extrêmement simple l’automatisation de ces types de flux de travail. Nous avons transformé un processus qui impliquait généralement plusieurs systèmes, personnes et niveaux de patience en une seule commande Slack.
Voulez-vous essayer cela vous-même ? La version de base de n8n est gratuite, et vous pourriez probablement l’installer plus rapidement que de traiter une seule demande de certificat par le biais des anciennes méthodes. Vos développeurs vous remercieront, et vous aurez un souci de gestion administrative de moins.
Source:
https://adamtheautomator.com/automate-aws-cert-creation-n8n-slack/