As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Implemente uma ChatOps solução para gerenciar os resultados do escaneamento SAST usando o Amazon Q Developer em aplicativos de bate-papo, ações personalizadas e CloudFormation
Anand Bukkapatnam Tirumala, Amazon Web Services
Resumo
Esse padrão apresenta uma solução abrangente que usa o Amazon Q Developer em aplicativos de bate-papo para agilizar o gerenciamento de falhas de verificação de testes estáticos de segurança de aplicativos (SAST) relatadas. SonarQube Essa abordagem inovadora integra ações e notificações personalizadas em uma interface conversacional, permitindo processos eficientes de colaboração e tomada de decisão nas equipes de desenvolvimento.
No ambiente de desenvolvimento de software acelerado de hoje, gerenciar os resultados de verificação de SAST com eficiência é crucial para manter a qualidade e a segurança do código. No entanto, muitas organizações enfrentam os seguintes desafios significativos:
Atraso na conscientização de vulnerabilidades críticas devido a sistemas de notificação ineficientes
Processos lentos de tomada de decisão causados por fluxos de trabalho de aprovação desconectados
Falta de respostas imediatas e acionáveis às falhas de verificação de SAST
Comunicação e colaboração fragmentadas em torno das descobertas de segurança
Configuração manual de infraestrutura demorada e propensa a erros para ferramentas de segurança
Esses problemas geralmente levam ao aumento dos riscos de segurança, atrasos nos lançamentos e à redução da produtividade da equipe. Para enfrentar esses desafios de forma eficaz, é necessária uma solução que possa agilizar o gerenciamento de resultados de SAST, aprimorar a colaboração das equipes e automatizar o provisionamento da infraestrutura.
Os principais recursos da solução incluem:
Notificações personalizadas: alertas e notificações em tempo real são enviados diretamente aos canais de chat da equipe, garantindo o conhecimento e a ação de maneira rápida para as vulnerabilidades ou falhas da verificação de SAST.
Aprovações conversacionais: as partes interessadas podem iniciar e concluir fluxos de trabalho de aprovação dos resultados de verificação de SAST facilmente na interface de chat, acelerando os processos de tomada de decisão.
Ações personalizadas: as equipes podem definir e executar ações personalizadas com base nos resultados da verificação de SAST, como acionar automaticamente mensagens de e-mail em caso de falhas no quality gate, melhorando a capacidade de resposta aos problemas de segurança.
Colaboração centralizada: todas as discussões, decisões e ações relacionadas à verificação de SAST são mantidas em um ambiente de chat unificado, promovendo melhor colaboração e compartilhamento de conhecimento entre os membros da equipe.
Infraestrutura como código (IaC) — Toda a solução está repleta de AWS CloudFormation modelos, permitindo um provisionamento de infraestrutura mais rápido e confiável, ao mesmo tempo que reduz os erros de configuração manual.
Pré-requisitos e limitações
Pré-requisitos
Um ativo Conta da AWS.
Uma função AWS Identity and Access Management (IAM) com permissões para criar e gerenciar recursos associados aos Serviços da AWS listados em Ferramentas.
Um espaço de trabalho do Slack.
O Amazon Q Developer em aplicações de chat foi adicionado ao espaço de trabalho do Slack necessário como um plug-in. Para obter mais informações, consulte Add apps to your Slack workspace
na documentação do Slack. Anote o ID do espaço de trabalho do Slack, conforme mostrado Console de gerenciamento da AWS após o registro bem-sucedido. Um Amazon Q Developer configurado no cliente de aplicativos de bate-papo, com o ID do espaço de trabalho prontamente disponível para entrada no CloudFormation console. Para obter instruções, consulte Configure a Slack client no Guia do administrador do Amazon Q Developer em aplicações de chat.
Uma conta de e-mail de origem criada e verificada no Amazon Simple Email Service (Amazon SES) para enviar mensagens de aprovação por e-mail. Para obter instruções de configuração, consulte Creating and verifying email identities no Guia do desenvolvedor do Amazon Simple Email Service.
Um endereço de e-mail de destino para receber notificações de aprovação. Esse endereço pode ser uma caixa de entrada compartilhada ou uma lista específica de distribuição da equipe.
Uma SonarQube instância operacional que pode ser acessada a partir do seu Conta da AWS. Para obter mais informações, consulte as instruções SonarQube de instalação
. Um token de SonarQube usuário
com permissões para acionar e criar projetos por meio do pipeline.
Limitações
A criação de botões de ação personalizados é um processo manual nessa solução.
Alguns Serviços da AWS não estão disponíveis em todos Regiões da AWS. Para conferir a disponibilidade de uma região, consulte Serviços da AWS by Region
. Para endpoints específicos, consulte Service endpoints and quotas e clique no link correspondente ao serviço desejado.
Arquitetura
O diagrama a seguir mostra o fluxo de trabalho e os componentes da arquitetura desse padrão.

O diagrama mostra o fluxo de trabalho da garantia de qualidade do código automatizada:
Preparação e upload do código:
O desenvolvedor compacta a base do código em um arquivo .zip.
O desenvolvedor carrega manualmente o arquivo .zip em um bucket designado do Amazon Simple Storage Service (Amazon S3).
Gatilho e orquestração de eventos do Amazon S3: AWS Step Functions
O evento de upload do Amazon S3 aciona um fluxo de trabalho do Step Functions.
Step Functions orquestra uma verificação SAST usando. SonarQube
O fluxo de trabalho monitora o status do AWS CodeBuild trabalho para determinar as próximas ações. Se for CodeBuild bem-sucedido (Quality Gate Pass), o fluxo de trabalho será encerrado. Se CodeBuild falhar, uma AWS Lambda função será invocada para diagnóstico. Para obter mais detalhes, consulte Lógica do AWS Step Functions mais adiante nesta seção.
AWS CodeBuild execução:
O CodeBuild trabalho executa uma SonarQube varredura na base de código carregada.
Os artefatos da verificação são armazenados em um bucket separado do Amazon S3 para auditoria e análise.
Análise de falhas (função do Lambda):
Em CodeBuild caso de falha, a função
CheckBuildStatusLambda é acionada.Em CodeBuild caso de sucesso, o processo é encerrado e nenhuma ação adicional é necessária.
A função do Lambda analisa a causa da falha (falha no quality gate ou outros problemas)
A função
CheckBuildStatuscria uma carga útil personalizada com informações detalhadas sobre falhas.A função
CheckBuildStatuspublica a carga útil personalizada em um tópico do Amazon Simple Notification Service (Amazon SNS).
Sistema de notificações:
O Amazon SNS encaminha a carga útil ao Amazon Q Developer em aplicações de chat para integração com o Slack.
Integração do Slack:
O Amazon Q Developer em aplicações de chat publica uma notificação no canal designado do Slack.
Processo de aprovação:
Os aprovadores analisam os detalhes da falha na notificação do Slack.
Os aprovadores podem iniciar a aprovação usando o botão Aprovar no Slack.
Manipulador de aprovação:
Uma função do Lambda de aprovação processa a ação de aprovação do Slack.
A função de aprovação publica a mensagem personalizada no Amazon SES.
Mensagem gerada:
A função de aprovação gera uma mensagem personalizada para notificação ao desenvolvedor.
Notificação ao desenvolvedor:
O Amazon SES envia uma mensagem de e-mail ao desenvolvedor com as próximas etapas ou ações necessárias.
Esse fluxo de trabalho combina o upload manual de código com verificações de qualidade automatizadas, fornece feedback imediato por meio do Slack e permite a intervenção humana quando necessário, garantindo um processo robusto e flexível de revisão de código.
Lógica AWS Step Functions
Conforme mostrado no diagrama de arquitetura anterior, se a passagem do portal de qualidade SonarQube falhar, o fluxo de trabalho vai para a função CheckBuildStatus Lambda. A função CheckBuildStatus aciona uma notificação no canal do Slack. Cada notificação inclui informações com as próximas etapas sugeridas. Seguem abaixo os tipos de notificações:
O aplicativo falhou na verificação de segurança do código — O usuário recebe essa notificação quando o código carregado não passou pela verificação SonarQube de segurança. O usuário pode escolher APROVAR para aceitar a compilação. No entanto, a notificação informa ao usuário sobre possíveis riscos de segurança e baixa qualidade do código. A notificação inclui os seguintes detalhes:
Próximas etapas: Erro: Status do quality gate: FALHOU | Veja os detalhes no URL fornecido.
Faça a triagem das vulnerabilidades conforme mencionado no documento no URL fornecido.
CodeBuild os detalhes estão disponíveis no local no URL fornecido.
O pipeline de verificação da aplicação falhou por algum outro motivo: o usuário recebe essa notificação quando o pipeline falhou por algum motivo que não seja a falha na verificação de segurança do código. A notificação inclui os seguintes detalhes:
Para ver as próximas etapas, acesse o link fornecido para obter mais informações sobre a solução de problemas.
Para ver as capturas de tela das notificações conforme elas aparecem em um canal do Slack, acesse a pasta de ativos no repositório
O diagrama a seguir mostra um exemplo do status da etapa do Step Functions após a falha na aprovação do quality gate.

Ferramentas
Serviços da AWS
O Amazon Q Developer em aplicativos de bate-papo permite que você use os canais de bate-papo Amazon Chime, Microsoft Teams e Slack para monitorar e responder a eventos operacionais em seus aplicativos. AWS Aviso de fim do suporte: em 20 de fevereiro de 2026, AWS encerrará o suporte para o serviço Amazon Chime. Após 20 de fevereiro de 2026, não será mais possível acessar o console do Amazon Chime ou os recursos de aplicação do Amazon Chime. Para obter mais informações, acesse esta publicação no blog
. Isso não afeta a disponibilidade do serviço do SDK do Amazon Chime . AWS CloudFormationajuda você a configurar AWS recursos, provisioná-los de forma rápida e consistente e gerenciá-los durante todo o ciclo de vida em Contas da AWS e. Regiões da AWS
O AWS CodeBuild é um serviço de compilação totalmente gerenciado que permite compilar o código-fonte, realizar testes de unidade e produzir artefatos preparados para a implantação.
AWS Identity and Access Management (IAM) ajuda você a gerenciar com segurança o acesso aos seus AWS recursos controlando quem está autenticado e autorizado a usá-los.
AWS Key Management Service (AWS KMS) ajuda você a criar e controlar chaves criptográficas para ajudar a proteger seus dados.
O AWS Lambda é um serviço de computação que ajuda a executar código sem exigir provisionamento ou gerenciamento de servidores. Ele executa o código somente quando necessário e dimensiona automaticamente, assim, você paga apenas pelo tempo de computação usado.
O AWS Secrets Manager ajuda a substituir credenciais codificadas, incluindo senhas, por uma chamada de API ao Secrets Manager para recuperar o segredo por programação.
Amazon Simple Email Service (Amazon SES): ajuda você a enviar e receber mensagens de e-mail usando seus próprios endereços de e-mail e domínios.
O Amazon Simple Notification Service (Amazon SNS) ajuda você a coordenar e gerenciar a troca de mensagens entre publicadores e clientes, incluindo servidores web e endereços de e-mail.
O Amazon Simple Storage Service (Amazon S3) é um serviço de armazenamento de objetos baseado na nuvem que ajuda você a armazenar, proteger e recuperar qualquer quantidade de dados.
AWS Step Functionsé um serviço de orquestração sem servidor que ajuda você a combinar AWS Lambda funções e outras Serviços da AWS para criar aplicativos essenciais para os negócios.
Outras ferramentas
O Slack
, uma solução da Salesforce, consiste em uma plataforma de conversação com tecnologia de IA que oferece colaboração por chat e vídeo, automatiza processos no-code e facilita o compartilhamento de informações. SonarQube
é uma ferramenta de análise local projetada para detectar problemas de codificação em mais de 30 linguagens, estruturas e plataformas de IaC.
Repositório de código
O código desse padrão está disponível no repositório GitHub chatops-slack
Práticas recomendadas
CloudFormation gerenciamento de pilha — Se você encontrar alguma falha durante a execução da CloudFormation pilha, recomendamos que você exclua a pilha com falha. Em seguida, recrie-a com os valores corretos dos parâmetros. Essa abordagem oferece suporte a uma implantação limpa e ajuda a evitar possíveis conflitos ou implementações parciais.
Configuração de e-mail de caixa de entrada compartilhada: ao configurar o parâmetro
SharedInboxEmail, use uma lista de distribuição comum que seja acessível a todos os desenvolvedores relevantes. Essa abordagem promove transparência e ajuda notificações importantes a chegarem aos membros relevantes da equipe.Fluxo de trabalho de aprovação de produção: para ambientes de produção, restrinja o acesso ao canal do Slack usado para aprovações de compilação. Somente aprovadores designados devem ser membros desse canal. Essa prática mantém uma cadeia clara de responsabilidade e aumenta a segurança ao limitar quem pode aprovar mudanças críticas.
Permissões do IAM: siga o princípio do privilégio mínimo e forneça o mínimo de permissões para a execução de uma tarefa. Para obter mais informações, consulte Concessão de privilégio mínimo e Práticas recomendadas de segurança na documentação do IAM.
Épicos
| Tarefa | Description | Habilidades necessárias |
|---|---|---|
Clonar o repositório. | Para clonar o repositório chatops-slack
| AWS DevOps, líder de construção, DevOps engenheiro, administrador de nuvem |
Crie os arquivos .zip que contêm o código do Lambda. | Crie os arquivos.zip para o código da AWS Lambda função para a
| AWS DevOps, líder de construção, DevOps engenheiro, administrador de nuvem |
| Tarefa | Description | Habilidades necessárias |
|---|---|---|
Execute o arquivo de pilha | O arquivo de
| Administrador da AWS, AWS DevOps, líder de construção, DevOps engenheiro |
Faça upload dos arquivos .zip no bucket do Amazon S3. | Faça upload dos arquivos | AWS DevOps, líder de construção, DevOps engenheiro, administrador de sistemas da AWS |
| Tarefa | Description | Habilidades necessárias |
|---|---|---|
Execute o arquivo de pilha | Os arquivos de pilha
| AWS DevOps, administrador de sistemas da AWS, DevOps engenheiro, líder de criação |
Teste a configuração das notificações. | Para testar a configuração de notificações, faça o seguinte.
Depois que a mensagem de teste for entregue com sucesso, você verá uma notificação no canal do Slack. Para obter mais informações, consulte Notificações de teste do Serviços da AWS Slack no Guia do administrador do Amazon Q Developer em aplicativos de bate-papo. | AWS DevOps, administrador de sistemas da AWS, DevOps engenheiro, líder de criação |
| Tarefa | Description | Habilidades necessárias |
|---|---|---|
Configure a ação personalizada do Lambda. | Para configurar a AWS Lambda ação personalizada, faça o seguinte:
| Administrador da AWS, AWS DevOps, líder de construção, DevOps engenheiro, administrador do Slack |
Valide o fluxo de aprovação. | Para validar se o fluxo de aprovação funciona conforme o esperado, escolha o botão Aprovar no Slack. O Slackbot deve enviar uma notificação no tópico da mensagem com a string de confirmação E-mail de aprovação enviado com sucesso. | Administrador da AWS, AWS DevOps, DevOps engenheiro, administrador do Slack |
Solução de problemas
| Problema | Solução |
|---|---|
Configurações incorretas do Slack | Para obter informações sobre como solucionar problemas relacionados a configurações incorretas do Slack, consulte a solução de problemas no Amazon Q Developer no Guia do administrador do Amazon Q Developer em aplicações de chat. |
A verificação falhou devido a algum outro motivo | Esse erro significa que a tarefa de criação do código falhou. Para solucionar o problema, acesse o link que está na mensagem. A falha na tarefa de criação de código pode ter as seguintes causas possíveis:
|
Recursos relacionados
AWS documentação
Outros recursos
Add apps to your Slack workspace
(documentação do Slack) Geração e uso de tokens
(SonarQube documentação) Introdução à instalação do servidor
(SonarQube documentação)
Mais informações
Esta solução enfatiza as soluções personalizadas do Amazon Q Developer em aplicações de chat para fins de gerenciamento de versão. No entanto, você pode reutilizar a solução modificando o código do Lambda para seu caso de uso específico e construindo com base nela.
Parâmetros dos arquivos de CloudFormation pilha
A tabela a seguir mostra os parâmetros e suas descrições para o arquivo pre-requisite.yml de CloudFormation pilha.
Chave | Descrição |
|---|---|
| O nome da CloudFormation pilha. |
| O nome do bucket do Amazon S3 onde você carregou o código do Lambda. O nome precisa ser globalmente exclusivo. |
| O token SonarQube do usuário, conforme descrito em Pré-requisitos. |
A tabela a seguir mostra os parâmetros e suas descrições para o arquivo app-security.yml de CloudFormation pilha.
Chave | Descrição |
|---|---|
| O AWS KMS key Amazon Resource Name (ARN) usado nas funções do IAM e nas funções do Lambda criadas nessa pilha. |
| O AWS KMS key ID usado no tópico do Amazon SNS criado nessa pilha. |
| O nome do ambiente de cliente para implantação do pipeline de verificação de aplicações. Selecione o nome do ambiente na lista suspensa de valores permitidos. |
| O nome do bucket do Amazon S3 que contém os arquivos |
| O nome da identidade de e-mail registrada no Amazon SES, conforme descrito em Pré-requisitos. Essa identidade é o endereço de e-mail de origem. |
| O endereço de e-mail de destino para o qual as notificações de verificação são enviadas. |
| O ID do canal do Slack para o qual você deseja que as notificações sejam enviadas. Para encontrar o ID do canal, clique com o botão direito do mouse no nome do canal em Detalhes do canal na aplicação do Slack. O ID do canal está na parte inferior. |
| O ID do espaço de trabalho do Slack, conforme descrito em Pré-requisitos. Para encontrar o ID do espaço de trabalho do Slack, faça login no Console de gerenciamento da AWS, abra o Amazon Q Developer no console de aplicativos de bate-papo e escolha Clientes configurados, Slack, WorkspaceID. |
| O nome da CloudFormation pilha. |
| O diretório que contém o arquivo |
| O nome do arquivo |
| O nome do arquivo .zip que contém o arquivo |