Desenvolvedores que solicitam certificados AWS são como adolescentes que pedem chaves de carro – há muito espera, papeis enrolados e dedos cruzados. Se você está cansado de jogar como porteiro de certificados ou de ser o desenvolvedor preso em um pedido de ingressos para o inferno,
vamos transformar esse processo de pedido de certificado enfadonho em um simples comando de Slack usando n8n, uma ferramenta de automação de fluxo intuitiva que fará seus desenvolvedores dizer, “É só isso?”
Vamos abranger um cenário de exemplo de A à Z, não desconsiderando os detalhes, para mostrar como a ferramenta de automação de fluxo n8n pode salvar horas extras de muitos horários para desenvolvedores e gerentes ocupados.
O Bolão de Certificado Atual
Imagine esse cenário demasiadamente familiar: um desenvolvedor precisa the um novo certificado AWS para seu ambiente de desenvolvimento. Aqui é o que normalmente acontece:
- O desenvolvedor envia um pedido com o texto suficiente para escrever um romance
- O pedido fica na fila enquanto o desenvolvedor atualiza com stress o seu email
- Finalmente, o aprovador vê o pedido entre 47 outras solicitações urgentes
- Metade das informações necessárias está faltando (obviamente)
- Eles começam a correspondência de volta e para a fase, como um doloroso jogo de ping-pong
- O aprovador entra no console AWS (depois de encontrar seu dispositivo 2FA)
- A criação manual do certificado acontece
- Finalmente, o desenvolvedor obtém os detalhes do certificado… talvez
- Toda gente perde um pouco do seu alma
Conhecem aquele sentimento? Eu já sabia. Vamos corrigir isso.
O Sonho: Comando do Slack → Certificado Instantâneo
E se seus desenvolvedores pudessem apenas digitar /newcert
no canal do Slack de sua ambiente de desenvolvimento, obter um ARN de certificado AWS em segundos? Sem tickets, sem espera, sem afrouxar a cabeça. É exatamente aqui que estamos construindo.
Neste cenário, você é um desenvolvedor em uma organização que usa Slack para comunicação. Você criou um canal do Slack para cada ambiente de desenvolvimento para manter as conversas organizadas.
Aqui é como funcionará nosso fluxo automatizado:
- O desenvolvedor digita
/newcert
no canal do Slack de seu ambiente de desenvolvimento - O fluxo n8n recebe a solicitação com o contexto do canal
- O fluxo cria um certificado no AWS
- O ARN do certificado aparece no mesmo canal do Slack
É só isso. Quatro passos em vez de nove, e zero espera para as pessoas fazerem coisas humanas!
Como não economizaros detalhes, esse post não vai apenas dizer que o n8n pode automatizar este processo, mas mostrará que eu fiz isso mesmo de raiz!
O n8n usa fluxos para juntar tarefas usando nós. Esses fluxos podem então ser executados, disparando todos os nós no fluxo para automatizar processos simples a complexos.
Se você estiver interessado em aprender a configurar este fluxo ou em aprender como um fluxo n8n pode ser configurado, continue lendo!
Primeiro Coisa Primeira: O Gancho da Webhook
Abre sua instância de n8n e vamos começar com um quadro em branco:
1. Crie um novo fluxo de trabalho. Abaixo, você verá o quadro em branco de um novo fluxo de trabalho de n8n pronto para configurar o primeiro nó de disparo.

2. A seguir, adicione um webhook nó de disparo. O nó de disparo de webhook é a forma como o Slack vai se comunicar com este fluxo de trabalho para notificá-lo quando deve enviar solicitações para o AWS para criar novos certificados.

Você pode ver na imagem acima que o nó de disparo de webhook vai estar ouvindo solicitações POST HTTP.
3. Configure-o para receber solicitações POST do Slack
Este webhook será a nossa porta frontal – é onde o Slack vai bater quando alguém usar o comando /newcert
.
Criando o App do Slack
Hora de configurar o lado do Slack. Você precisará de um app do Slack para permitir que usuários emitem comandos de linha (/newcert
) no canal. O app do Slack também servirá como um meio para o n8n autenticar de volta ao Slack para retornar mensagens.
1. Assim que no ecrã de apps do Slack, clique em Criar Novo App onde você pode fornecer um nome.

2. Em seguida, defina os Scopes para que possa emitir comandos de barra diagonal e também enviar mensagens de volta ao canal. Você precisará
– channels:read
– chat:write
– commands

3. Em seguida, configure um slash command. Um comando de barra diagonal permite que usuários emitam comandos para seu aplicativo Slack como uma barra diagonal seguida por algum comando. Neste caso, o comando será /newcert
para gerar um novo certificado AWS.
No painel de configurações do seu aplicativo, vá para “Comandos de Barra diagonal” e clique em “Criar Novo Comando”

4. Instale o aplicativo em seu espaço de trabalho Uma vez que você tenha configurado os escopos e o comando de barra diagonal.

5. Finalmente, convide o bot (o aplicativo que você acabou de criar) the um canal Slack para trabalhar. Neste caso, o canal será o nome do ambiente de desenvolvimento qa-1.
/invite @devenvironmentautomation
Testando o Gatilho do Webhook
Você agora tem o aplicativo Slack e o gatilho do webhook configurados. É hora de testar sua interatividade.
1. Em seu workflow n8n, clique no botão Ouvir Evento de Teste. Isso permitirá que o gatilho do webhook comece a ouvir solicitações que o aplicativo Slack deve enviar.

2. Em seguida, no canal do Slack de sua ambiente de desenvolvimento, execute o comando de slash /newcert
. Assim que você fizer isso, você deveria ver o nó do webhook recebendo a solicitação em n8n.
Observe abaixo que ela inclui o nome do canal e o ID do usuário na solicitação. Isso permitirá que nós vejamos para qual ambiente de desenvolvimento este certificado se destina e qual usuário solicitou.

Se tudo deu certo, você deveria ver a resposta JSON padrão dizendo que o workflow recebeu a solicitação que iniciou o workflow.

Configurando o Acesso AWS
O n8n precisa se autenticar no AWS para criar novos certificados. Para fazer isso, é necessário um usuário IAM com os direitos apropriados. Pois começamos do zero neste tutorial, abaixo, você vai encontrar uma maneira de configurar este usuário IAM rapidamente através do CLI do AWS.
Se você ainda não tiver um usuário IAM, você pode usar o seguinte código para o fazer:
## criar o arquivo de política
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"acm:DescribeCertificate",
"acm:ListCertificates",
"acm:GetCertificate",
"acm:RequestCertificate"
"acm:AddTagsToCertificate"
],
"Resource": "*"
}
]
}
## criar o usuário
aws iam create-user --user-name CertificateManager
## criar a chave de acesso e a chave de acesso secreta
aws iam create-access-key --user-name CertificateManager --query 'AccessKey.[AccessKeyId,SecretAccessKey]' --output text > certificate_manager_credentials.txt
## criar a 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
## anexar a política
aws iam attach-user-policy --user-name CertificateManager --policy-arn $policy_arn
## ler a chave de acesso e o segredo que precisaremos depois para o workflow
Get-Content ./certificate_manager_credentials.txt
Este código usa a AWS CLI para executar várias tarefas:
1. Criação de Política: Cria uma política de IAM que define exatamente quais ações relacionadas a certificados são permitidas:
– Visualizar detalhes do certificado
– Listar certificados
– Recuperar dados do certificado
– Criar novos certificados
– Adicionar tags aos certificados
2. Criação de Usuário: Cria um usuário de IAM dedicado chamado “CertificateManager” que será usado explicitamente para as tarefas de gerenciamento de certificados
3. Geração de Chave de Acesso: Cria um par de chaves de acesso (Chave de Acesso ID e Chave de Acesso Secreta) para o novo usuário e salva-os em um arquivo
4. Anexo de Política: Cria a política IAM e a anexa ao novo usuário, concedendo-lhe apenas as permissões específicas de gerenciamento de certificados definidas na política
5. Usa o comando PowerShell `Get-Content` para ler o arquivo de texto com a chave de acesso e o segredo que você precisará fornecer ao workflow.
Isso segue as melhores práticas de segurança por:
- Usar o princípio de privilégio mínimo (concedendo apenas permissões necessárias).
- Criação de usuário dedicado para gerenciamento de certificados
- Separação das credenciais do conta de admin
Nota: Em um ambiente de produção, você gostaria de armazenar as credenciais geradas de forma segura, não em um arquivo de texto simples. Considere usar o AWS Secrets Manager ou outra solução de armazenamento seguro de segredos.
Configuração das Credenciais AWS para o Workflow n8n
Quando chegarmos a esse passo, o workflow deve ser capaz de autenticar com o AWS Certificate Manager para emitir novos certificados. O n8n usa credentials para fazer isso. Para criar um novo credential para AWS:
1. Em seu workspace, clique em Credentials no topo da tela e clique em Add credential.

2. Especifique AWS como o tipo de credencial.

3. Forneça as chaves de acesso e de acesso secreta geradas pelas命令 de CLI do AWS anteriormente.

O n8n tem uma funcionalidade legal que testa automaticamente a credencial quando você salvá-la, então você saberá imediatamente se a credencial funciona ou não.

Criação do Nó de Requisição HTTP
Embora o n8n tenha suporte para o serviço AWS Certificate Manager, atualmente não suporta a criação de certificados novos, portanto, você não está impotente! Você pode usar o nó de Requisição HTTP genérica. Este nó permite que você emita requisições HTTP genéricas para operações de API que não são atualmente suportadas.
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 criar o nó de Requisição HTTP que procuramos, primeiro, defina todos os parâmetros necessários para a API do AWS. Eles são:
– URL – O ponto final da API para a região em que você está trabalhando
– Autenticação – Use Tipo de Credencial Predefinida para aproveitar a credencial criada anteriormente.
– Tipo de Credencial – AWS
– AWS – A credencial AWS criada anteriormente.
– Enviar Cabeçalhos – Você precisará do cabeçalho X-Amz-Target
para informar à API qual operação você gostaria de usar; neste caso, é CertificateManager.RequestCertificate
.
– Tipo de Conteúdo do Corpo – application/x-amz-json-1.1

2. A seguir, configure o corpo HTTP. Este é um passo crucial para fazer uma solicitação de API com o nome do ambiente de desenvolvimento. Neste cenário, estamos atribuindo uma etiqueta AWS chamada Environment ao certificado e definindo o valor do nome do ambiente recebido da solicitação do Slack.
Você precisará de uma entrada dinâmica ou Expressão para esta tarefa. Clique em Expressão no campo Corpo e verá que a entrada é transformada em um texto de função.

3. Clique no ícone de expandir para cima no canto inferior direito do campo corpo, e obterá um editor intuitivo.
O corpo HTTP precisa estar em JSON. Estou usando um de meus nomes de domínio aqui e validando o certificado por DNS.
Abaixo, você pode ver que eu posso incluir o valor da tag arrastando o valor recebido do Slack para a expressão.

{
"DomainName": "atademos.com",
"ValidationMethod": "DNS",
"Tags": [
{
"Key": "Environment",
"Value": "{{ $('Webhook').item.json.body.channel_name }}"
}
]}
O valor agora é {{ $('Webhook').item.json.body.channel_name }}
Essa variável será passada para o AWS na solicitação de API que contém o nome do canal do Slack (o nome do ambiente de desenvolvimento neste caso).
[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, teste o nó de solicitação HTTP clicando em Testar passo. Se tudo correu bem, você deveria ver a resposta JSON do AWS, incluindo o ARN do certificado.
Crie o nó do Slack
Neste ponto, você tem dois dos três nós completos nesta simples workflow n8n: o disparador de webhook para o Slack chamar e o nó de solicitação HTTP que fará solicitudes de API para o AWS. O último nó é o nó do Slack, que inicia uma mensagem de resposta para o usuário.
1. Abra o painel de Nós e clique no botão de adicionar para criar um novo nó do Slack na sua workflow.
2. Pesquise por Slack e escolha a ação Enviar uma mensagem.


3. Em seguida, clique em Credencial para conectar e escolha Criar nova credencial para criar uma credencial do Slack semelhante à credencial do AWS. Assim que você configure uma credencial, você pode usá-la no nó do Slack.
4. Forneça os parâmetros apropriados para o nó do Slack:
- Recurso – Mensagem (para enviar uma mensagem de canal)
- Operação – Enviar
- Enviar Mensagem Para – Canal
- Canal – Por Nome. Você pode usar o editor de expressão novamente e arrastar o atributo channel_name da trigger de webhook para usar uma expressão dinâmica.
- Texto da Mensagem – Neste cenário, o workflow retornará o ARN de certificado recebido do AWS para o desenvolvedor no canal do Slack.since AWS retorna uma string JSON, podemos usar a função de expressão built
JSON.parse
para analisar o JSON e apenas extrair o valorCertificateArn
.
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. Clique em Testar passo e o canal de origem do Slack deveria obter a mensagem!
Testar o Workflow
Neste ponto, você deveria ter um workflow com três nós. É hora de testar o workflow inteiro juntos!
Clicando em Testar Workflow, você verá que o n8n começa a esperar por um disparador.

Entre no canal de ambiente de desenvolvimento do Slack e execute o comando /newcert
. Pronto, o workflow deveria executar sem problemas!

Agora você deveria ter um certificado marcado explicitamente para o ambiente de desenvolvimento onde será usado, um histórico da solicitação e desenvolvedores muito mais felizes, por exemplo, acesso a novos certificados!
Por que Isso Importa
Pense naquele que acabamos de construir:
- Eliminou o intermediário do sistema de bilhete
- Reduziu o tempo de solicitação de certificado de dias para segundos
- Automatizou documentação (tags AWS)
- Fez os desenvolvedores mais felizes (inesquecível)
Este post de blog abordou apenas uma tarefa: construir o workflow. Agora ele pode ser executado ilimitadamente para salvar horas infinitas!
E a melhor parte? Isso é apenas o início. Você poderia estender este workflow para lidar com diferentes tipos de certificados, adicionar aprovações para ambientes de produção ou até mesmo automatizar notificações de renovação de certificados.
Confira as Plantilhas Pré-construídas
O n8n fornece centenas de plantilhas pré-construídas como este workflow. Essas plantilhas permitem que você acorte o processo que nós abordamos para aproveitar workflows construídos e testados pelo n8n.
If you’d like another great example of a Slack workflow, check out their Advanced Slackbot template.
Pensamentos Finais
O n8n torna muito fácil automatizar esses tipos de workflows. Nós levaramos um processo que normalmente envolve vários sistemas, pessoas e níveis de paciência e transformamos-o em um único comando de Slack.
Quer tentar isso você mesmo? A versão básica do n8n é gratuita, e você provavelmente conseguirá configurar isso mais rápido do que processar um único pedido de certificado da maneira antiga. Seus desenvolvedores vão te agradecer, e você terá uma dor de cabeça administrativa a menos.
Source:
https://adamtheautomator.com/automate-aws-cert-creation-n8n-slack/