I developers che richiedono certificati AWS sono come i teenager che chiedono le chiavi della macchina – c’è molto tempo di attesa, carta da stampare e dita crostate. Se sei stanco di giocare a guardiano dei certificati o sei il develope bloccato nel purgatorio dei ticket.
Cambiamo quel processo di richiesta di certificati monotono in un semplice comando Slack usando n8n, un’intuitiva tool di automazione delle workflows che farà pensare ai tuoi developer, “Ecco cos’è?”
Coverremo un scenario di esempio da A a Z, senza risparmiare i dettagli, per mostrarti come l’工具 di automazione workflows n8n può risparmiare ai developer e ai manager impegnati ore di straordinario.
Il ballo attuale della richiesta di certificati
Immaginate questo scenario troppo familiare: un developer ha bisogno di un nuovo certificato AWS per il suo ambiente di sviluppo. Ecco come solitamente va a finire:
- il developer presenta un ticket con abbastanza testo per scrivere un romanzo
- il ticket sta in coda mentre il developer agita il mouse per aggiornare la posta
- l’approvatore finalmente vede il ticket tra 47 altri richieste urgenti
- metà delle informazioni richieste mancano (ovviamente)
- iniziano email di ritorno e forth come una dolorosa partita di ping-pong
- l’approvatore entra nella console AWS (dopo aver trovato il dispositivo 2FA)
- viene creato il certificato manualmente
- il developer finalmente riceve i dettagli del certificato… forse.
- Ognuno perde un pezzetto del suo animo
Sounds familiar? Penso sì. Rimediappiamo questo.
The Dream: Comando Slack → Certificato Instantaneo
E se i tuoi sviluppatori potessero solo digitare /newcert
nel canale Slack del proprio ambiente di sviluppo, ottenere un ARN di certificato AWS in pochi secondi? Nessun ticket, nessuna attesa, nessuna fatica demoralizzante. Ecco esattamente ciò che stiamo costruendo.
In questo scenario, sei un sviluppatore in un’organizzazione che utilizza Slack per la comunicazione. Hai creato un canale Slack per ogni ambiente di sviluppo per mantenere le conversazioni organizzate.
Ecco come funzionerà il nostro workflow automatico:
- L’sviluppatore digita
/newcert
nel canale Slack del proprio ambiente - Il workflow n8n riceve la richiesta con il contesto del canale
- Il workflow crea il certificato in AWS
- L’ARN del certificato appare nel medesimo canale Slack
Ecco qui. Invece di nove passaggi, ce ne sono solo quattro e nessuna attesa per far fare alle persone cose umane!
Data la nostra attenzione ai dettagli, questo post non ti dirà solo che n8n può automatizzare questo processo, ma te lo mostrerò (l’ho fatto da zero io stesso!).
n8n utilizza workflows per legare insieme compiti utilizzando i nodi. Questi workflows possono poi essere eseguiti, attivando tutti i nodi all’interno del workflow per automatizzare processi semplici a complessi.
Se sei interessato a imparare come impostare questo workflow o a imparare come può essere impostato un workflow n8n, prosegui!
Prime cose prime: Il Trigger Webhook
Apri la tua istanza di n8n e inizia con una telaia vuota:
1. Crea un nuovo flusso di lavoro. Sotto, vedrai la telaia vuota di un nuovo flusso di lavoro di n8n pronto per impostare il primo nodo trigger.

2. Successivamente, aggiungi un webhook nodo trigger. Il nodo trigger webhook è il modo in cui Slack comunicherà con questo flusso di lavoro per avvisare del momento in cui deve emettere richieste ad AWS per creare nuovi certificati.

Come vedete dalla screenshot soprastante, il nodo trigger webhook sarà in ascolto per richieste POST HTTP.
3. Configurarlo per ricevere richieste POST da Slack
Questo webhook sarà la nostra porta principale – è lì che Slack batte quando qualcuno utilizza il nostro comando /newcert
.
Creazione dell’applicazione Slack
Ora è il momento di impostare il lato Slack delle cose. Avrai bisogno di una applicazione Slack per permettere agli utenti di emettere comandi di linea (/newcert
) nel canale. L’applicazione Slack agirà anche come modo per n8n ad autenticarsi di nuovo su Slack per restituire messaggi.
1. Una volta sulla schermata delle applicazioni Slack, clicca su Crea Nuova App dove puoi fornire un nome.

2. Successivamente, impostare i Scopes in modo da poter emettere comandi di barra scorretta e anche inviare messaggi nel canale. Avrai bisogno
– channels:read
– chat:write
– commands

3. Successivamente, impostare un slash command. Un comando di barra scorretta consente agli utenti di emettere comandi alla tua app di Slack come un trattino inverso seguito da qualche comando. In questo caso, il comando sarà /newcert
per generare un nuovo certificato AWS.
Nelle impostazioni dell’app, andare a “Comandi di barra scorretta” e fare clic su “Crea nuovo comando”

4. Installare l’app nel tuo spazio di lavoro Una volta impostati i scope e il comando di barra scorretta.

5. Infine, invitare il bot (l’applicazione che hai appena creato) in un canale di Slack in cui lavorare. In questo caso, il canale sarà il nome dell’ambiente di sviluppo qa-1.
/invite @devenvironmentautomation
Testare il Trigger Webhook
Ora hai configurato l’app di Slack e il trigger webhook. Ora è giunto il momento di testare la loro interattività.
1. Nella tua workflow n8n, fare clic sul pulsante Ascolta per Test Evento. Fare questo permetterà al trigger webhook di iniziare a ascoltare richieste che l’app di Slack dovrebbe inviare.

2. Successivamente, nel tuo canale Slack dell’ambiente di sviluppo, emetti il comando /newcert
. Appena lo fai, dovresti vedere il nodo webhook ricevere la richiesta in n8n.
Notare che include il nome del canale e l’ID utente nella richiesta. Questo ci permetterà di vedere per quale ambiente di sviluppo questo certificato serve e l’utente che lo richiede.

Se tutto è andato bene, dovresti vedere la risposta JSON predefinita che ti dice che il workflow ha ricevuto la richiesta che ha avviato il workflow.

Configurazione dell’accesso AWS
n8n ha bisogno di autenticarsi in AWS per creare nuovi certificati. Per farlo, è necessario un utente IAM con i diritti appropriati. Poiché stiamo facendo il punto zero in questo tutorial, di seguito, troverai un modo per impostare questo utente IAM velocemente tramite il comando linea AWS (AWS CLI).
Se non hai già un utente IAM, puoi usare il seguente codice per farlo:
## crea il file di politica
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"acm:DescribeCertificate",
"acm:ListCertificates",
"acm:GetCertificate",
"acm:RequestCertificate"
"acm:AddTagsToCertificate"
],
"Resource": "*"
}
]
}
## crea l'utente
aws iam create-user --user-name CertificateManager
## crea l'ID della chiave di accesso e la chiave segreta di accesso
aws iam create-access-key --user-name CertificateManager --query 'AccessKey.[AccessKeyId,SecretAccessKey]' --output text > certificate_manager_credentials.txt
## crea la politica
$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
## allega la politica
aws iam attach-user-policy --user-name CertificateManager --policy-arn $policy_arn
## legge l'ID della chiave di accesso e la chiave segreta che userai più tardi nel flusso di lavoro
Get-Content ./certificate_manager_credentials.txt
Questo codice utilizza l’interfaccia di riga di comando AWS (CLI) per eseguire varie attività:
1. Creazione della politica: Crea una politica IAM che definisce esattamente quali azioni relative ai certificati sono consentite:
– Visualizzare i dettagli del certificato
– Elencare i certificati
– Recuperare i dati del certificato
– Creare nuovi certificati
– Aggiungere etichette ai certificati
2. Creazione utente: Crea un utente IAM dedicato denominato “CertificateManager” che sarà utilizzato in modo esplicito per le attività di gestione dei certificati
3. Generazione chiave di accesso: Crea una coppia di chiavi di accesso (ID della chiave di accesso e chiave segreta di accesso) per il nuovo utente e le salva in un file
4. Allega politica: Crea la politica IAM e l’allega all’utente nuovo, concedendogli solo le specifiche autorizzazioni di gestione dei certificati definite in politica
5. Usa il comando PowerShell `Get-Content` per leggere il file di testo con l’ID della chiave di accesso e la chiave segreta che dovrai fornire al flusso di lavoro.
Questo segue le migliori pratiche di sicurezza:
- Uso del principio di最小权限 (concessione di soli permessi necessari).
- Creazione di un utente dedicato per la gestione del certificato
- Separazione delle credenziali dall’account amministrativo
Nota: In un ambiente di produzione, si desidera immagazzinare le credenziali generate in modo sicuro, non in un file di testo in chiaro. si consideri l’uso di AWS Secrets Manager o un’altra soluzione di storage sicuro per segrete.
Impostazione delle credenziali AWS per il flusso di lavoro di n8n
Quando raggiungiamo quell’step, il flusso di lavoro deve essere in grado di autenticarsi presso AWS Certificate Manager per emettere nuovi certificati. n8n utilizza credentials per farlo. Per creare una nuova credential per AWS:
1. Nel tuo spazio di lavoro, clicca su Credentials in alto sulla schermata e clicca su Add credential.

2. Specifica AWS come tipo di credenziale.

3. Fornisci le chiavi di accesso e le chiavi di accesso segreto generate dai comandi AWS CLI precedenti.

n8n ha una caratteristica molto utile che testa automaticamente le credenziali quando le salvi, così ti sarai immediatamente a conoscenza se le credenziali funzionano o no.

Creazione del nodo richiesta HTTP
Anche se n8n ha un supporto per il servizio AWS Certificate Manager, attualmente non supporta la creazione di nuovi certificati, quindi non sei fuori gioco! Puoi usare il nodo richiesta HTTP generica. Questo nodo consente di emettere richieste HTTP generiche a operazioni di API che attualmente non sono supportate.
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. Per creare il nodo richiesta HTTP che cerchi, prima definisci tutti i parametri richiesti dall’API AWS. Questi sono:
– URL – L’endpoint API della regione in cui stai lavorando
– Autenticazione – Utilizza il Tipo di credenziale predefinito per sfruttare la credenziale creata in precedenza.
– Tipo di credenziale – AWS
– AWS – La credenziale AWS creata in precedenza.
– Invia Headers – Avrai bisogno dell’header X-Amz-Target
per indicare all’API quale operazione vorresti usare; in questo caso è CertificateManager.RequestCertificate
.
– Tipo di contenuto del corpo – application/x-amz-json-1.1

2. Successivamente, impostare il corpo HTTP. Questo è un passaggio cruciale per la creazione di una richiesta API con il nome dell’ambiente di sviluppo. In questo scenario, assegno un tag AWS chiamato Environment al certificato e imposto il valore del nome dell’ambiente ricevuto dalla richiesta Slack.
Avrai bisogno di un input dinamico o Espressione per questo compito. Clicca su Espressione nel campo Corpo, e vedrai che l’input si trasforma in un testo di funzione.

3. Clicca sull’icona di espansione nell’angolo in basso a destra del campo corpo, e otterrai un editor intuitivo.
Il corpo HTTP deve essere in JSON. Sto usando uno dei miei nomi di dominio qui e convalidando il certificato con DNS.
Puoi vedere qui sotto che posso includere il valore del tag trascinando il valore ricevuto da Slack nell’espressione.

{
"DomainName": "atademos.com",
"ValidationMethod": "DNS",
"Tags": [
{
"Key": "Environment",
"Value": "{{ $('Webhook').item.json.body.channel_name }}"
}
]}
Il valore è ora {{ $('Webhook').item.json.body.channel_name }}
Questa variabile sarà passata ad AWS nella richiesta API contenente il nome del canale Slack (il nome dell’ambiente di sviluppo in questo scenario).
[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. Infine, testa il nodo della richiesta HTTP cliccando su Testa passo. Se tutto è andato bene, dovresti vedere la risposta JSON da AWS, incluso l’ARN del certificato
Crea il Nodo Slack
A questo punto, hai completato due dei tre nodi in questo semplice flusso di lavoro n8n: il trigger webhook per Slack da chiamare e il nodo Richiesta HTTP che effettuerà richieste API ad AWS. L’ultimo nodo è il nodo Slack, che avvia un messaggio di risposta all’utente.
1. Apri il pannello Nodi e clicca sul pulsante più per creare un nuovo nodo Slack nel tuo flusso di lavoro.
2. Cerca Slack e scegli l’azione Invia un messaggio.


3. Successivamente, clicca su Credenziale per connettersi e scegli Creare una nuova credenziale per creare una credenziale Slack simile alla credenziale AWS. Una volta impostata una credenziale, la puoi usare nel nodo Slack.
4. Fornisci i parametri appropriati al nodo Slack:
- Risorsa – Messaggio (per inviare un messaggio del canale)
- Operazione – Invia
- Inviare Messaggio A – Canale
- Canale – Per Nome. Puoi usare l’editor dell’espressione di nuovo e trascinare l’attributo channel_name dall’azione del webhook per usare un’espressione dinamica.
- Testo Messaggio – In questo scenario, lo workflow restituirà allo sviluppatore il codice ARN del certificato ricevuto da AWS nel canale Slack. Poiché AWS restituisce una stringa JSON, puoi usare la funzione di espressione integrata
JSON.parse
per analizzare il JSON e estrarre solo il valoreCertificateArn
.
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. Clicca su Testa Passo e il canale Slack di origine riceverà il messaggio!
Testa L’Workflow
A questo punto, dovresti avere un workflow con tre nodi. Ora è tempo di testare l’intero workflow insieme!
Cliccando su Testa Workflow, vedrai che n8n inizia a attendere il trigger.

Vai nel canale Slack dell’ambiente di sviluppo e digita il comando /newcert
. Ecco, lo workflow dovrebbe essere eseguito senza problemi!

Ora dovreste avere un certificato contrassegnato esplicitamente per l’ambiente di sviluppo in cui sarà utilizzato, una storia della richiesta e sviluppatori molto più contenti, per esempio, l’accesso a nuovi certificati!
Perché questo è importante
Pensate a ciò che abbiamo appena creato:
- Eliminato il middleman del sistema di ticket
- Ridotto il tempo di richiesta del certificato da giorni a secondi
- Documentazione automatizzata (etichette AWS)
- Renduto i sviluppatori più felici (senza prezzo)
Questo post ha trattato solo una sola task: la costruzione della workflow. Ora può essere eseguito illimitato volte per risparmiare ore innumerevoli!
E la cosa migliore? Questo è solo l’inizio. Potreste estendere questa workflow per gestire diversi tipi di certificati, aggiungere approvazioni per gli ambienti di produzione o persino automatizzare le notifiche di rinnovo del certificato.
Scoprite le Template Pre-Built
n8n offre centinaia di template predefiniti come questa workflow. Questi template consentono di accorciare il processo che abbiamo illustrato per sfruttare workflows costruiti e testati da n8n.
If you’d like another great example of a Slack workflow, check out their Advanced Slackbot template.
Pensieri Finali
n8n rende facilissimo automatizzare questo genere di workflows. Abbiamo preso un processo che di solito richiede molti sistemi, persone e livelli di pazienza e lo abbiamo trasformato in un solo comando Slack.
Vuoi provare a farcela da solo? La versione base di n8n è gratuita, e probabilmente riuscirai a configurarla più velocemente di quanto facessi processando una singola richiesta di certificato nel vecchio modo. I tuoi sviluppatori ti ringrazieranno, e avrai un meno di tensioni amministrative.
Source:
https://adamtheautomator.com/automate-aws-cert-creation-n8n-slack/