Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Implemente una ChatOps solución para gestionar los resultados de los escaneos SAST mediante Amazon Q Developer en aplicaciones de chat, acciones personalizadas y CloudFormation
Anand Bukkapatnam Tirumala, Amazon Web Services
Resumen
Este patrón presenta una solución integral que utiliza Amazon Q Developer en las aplicaciones de chat para agilizar la gestión de los errores de análisis de las pruebas de seguridad de aplicaciones estáticas (SAST) notificados mediante SonarQube las pruebas de seguridad de aplicaciones (SAST). Este enfoque innovador integra acciones y notificaciones personalizadas en una interfaz conversacional, lo que permite una colaboración eficiente y procesos de toma de decisiones dentro de los equipos de desarrollo.
En el vertiginoso entorno de desarrollo de software actual, la gestión eficiente de los resultados del análisis de SAST es crucial para mantener la calidad y la seguridad del código. Sin embargo, muchas organizaciones se enfrentan a los siguientes desafíos importantes:
Retraso en el conocimiento de las vulnerabilidades críticas debido a la ineficiencia de los sistemas de notificación
Procesos de toma de decisiones lentos debido a flujos de trabajo de aprobación desconectados
Falta de respuestas inmediatas y procesables a los fallos del análisis de SAST
Comunicación y colaboración fragmentadas en torno a los resultados de seguridad
La configuración manual de la infraestructura para las herramientas de seguridad lleva mucho tiempo y es propensa a errores
Estos problemas suelen provocar un aumento de los riesgos de seguridad, retrasos en las versiones y una reducción de la productividad del equipo. Para abordar estos desafíos de manera eficaz, se requiere una solución que pueda agilizar la gestión de los resultados de SAST, mejorar la colaboración en equipo y automatizar el aprovisionamiento de la infraestructura.
Entre las características principales de la solución se incluyen:
Notificaciones personalizadas: las alertas y notificaciones en tiempo real se envían directamente a los canales de chat del equipo, lo que garantiza reconocimiento de las peticiones y acción en caso de vulnerabilidades o fallas en el análisis de SAST.
Aprobaciones conversacionale: las partes interesadas pueden iniciar y completar los flujos de trabajo de aprobación de los resultados del análisis de SAST sin problemas desde la interfaz de chat, lo que acelera los procesos de toma de decisiones.
Acciones personalizadas: los equipos pueden definir y ejecutar acciones personalizadas en función de los resultados del análisis de SAST, como desencadenar automáticamente los mensajes de correo electrónico en caso de errores en los controles de calidad y mejorar la capacidad de respuesta ante los problemas de seguridad.
Colaboración centralizada: todas las discusiones, decisiones y acciones relacionadas con el análisis de SAST se guardan en un entorno de chat unificado, lo que fomenta una mejor colaboración y el intercambio de conocimientos entre los miembros del equipo.
Infraestructura como código (IaC): toda la solución incluye AWS CloudFormation plantillas, lo que permite un aprovisionamiento de infraestructura más rápido y fiable y, al mismo tiempo, reduce los errores de configuración manual.
Requisitos previos y limitaciones
Requisitos previos
Un activo. Cuenta de AWS
Un rol AWS Identity and Access Management (de IAM) con permisos para crear y administrar los recursos asociados a los que Servicios de AWS se enumeran en Herramientas.
Un espacio de trabajo de Slack.
Amazon Q Developer en aplicaciones de chat agregadas al espacio de trabajo de Slack requerido como complemento. Para obtener más información, consulte Cómo añadir aplicaciones a tu espacio de trabajo de Slack
en la documentación de Slack. Toma nota del ID del espacio de trabajo de Slack tal y como aparece en el formulario Consola de administración de AWS después de registrarte correctamente. Un cliente configurado de Amazon Q Developer en aplicaciones de chat, con el ID del espacio de trabajo disponible para introducirlo en la CloudFormation consola. Para obtener instrucciones, consulte Configure a Slack client (Cómo configurar un cliente de Slack) en la Guía del administrador de aplicaciones de chat para Amazon Q Developer.
Una cuenta de correo electrónico de origen que se crea y verifica en Amazon Simple Email Service (Amazon SES) para enviar mensajes de correo electrónico de aprobación. Para obtener instrucciones de configuración, consulte Creación y verificación de identidades de correo electrónico en la Guía para desarrolladores de Amazon Simple Email Service.
Una dirección de correo electrónico de destino para recibir notificaciones de aprobación. Esta dirección puede ser una bandeja de entrada compartida o una lista de distribución específica del equipo.
Una SonarQube instancia operativa a la que se puede acceder desde su Cuenta de AWS. Para obtener más información, consulte las instrucciones SonarQube de instalación
. Un token SonarQube de usuario
con permisos para activar y crear proyectos a través de la canalización.
Limitaciones
La creación de botones de acción personalizados es un proceso manual en esta solución.
Algunos Servicios de AWS no están disponibles en todos Regiones de AWS. Para obtener información sobre la disponibilidad en regiones, consulte Servicios de AWS by Region
. Para ver los puntos de conexión específicos, consulte Service endpoints and quotas y elija el enlace del servicio.
Arquitectura
En el siguiente diagrama se muestran los componentes de la arquitectura y el flujo de trabajo de esta aplicación.

En el diagrama, se muestra el flujo de trabajo automatizado de control de calidad del código:
Preparación y carga del código:
El desarrollador comprime el código base en un archivo .zip.
El desarrollador carga manualmente el archivo .zip en un bucket designado de Amazon Simple Storage Service (Amazon S3).
AWS Step Functions Activación y organización de eventos de Amazon S3:
El evento de carga de Amazon S3 desencadena un flujo de trabajo de Step Functions.
Step Functions organiza un escaneo SAST utilizando. SonarQube
El flujo de trabajo supervisa el estado del AWS CodeBuild trabajo para determinar las siguientes acciones. Si CodeBuild tiene éxito (control de calidad), el flujo de trabajo finaliza. Si CodeBuild se produce un error, se invoca una AWS Lambda función para el diagnóstico. Para obtener más información, consulte Lógica de AWS Step Functions más adelante en esta sección.
AWS CodeBuild ejecución:
El CodeBuild trabajo ejecuta un SonarQube escaneo en la base de código cargada.
Los artefactos analizados se almacenan en un bucket de Amazon S3 independiente para su auditoría y análisis.
Análisis de errores (función de Lambda):
En CodeBuild caso de fallo, se
CheckBuildStatusactiva la función Lambda.En CodeBuild caso de éxito, el proceso finaliza y no es necesario realizar ninguna otra acción.
La función de Lambda analiza la causa del error (error en el control de calidad u otros problemas)
La función
CheckBuildStatuscrea una carga útil personalizada con información detallada sobre el error.La función
CheckBuildStatuspublica la carga útil personalizada en un tema de Amazon Simple Notification Service (Amazon SNS).
Sistema de notificaciones:
Amazon SNS reenvía la carga útil a Amazon Q Developer en aplicaciones de chat para la integración con Slack.
Integración de Slack:
Amazon Q Developer en aplicaciones de chat publica una notificación en el canal de Slack designado.
Proceso de aprobación:
Los aprobadores revisan los detalles del error en la notificación de Slack.
Los aprobadores pueden iniciar la aprobación mediante el botón Aprobar de Slack.
Controlador de aprobación:
Una función de Lambda de aprobación procesa la acción de aprobación desde Slack.
La función de aprobación publica el mensaje personalizado en Amazon SES.
Mensaje generado:
La función de aprobación genera un mensaje personalizado para la notificación al desarrollador.
Notificación para desarrolladores:
Amazon SES envía un mensaje de correo electrónico al desarrollador con los siguientes pasos o acciones necesarias.
Este flujo de trabajo combina la carga manual de códigos con controles de calidad automatizados, proporciona comentarios inmediatos a través de Slack y permite la intervención humana cuando es necesaria, lo que garantiza un proceso de revisión de código sólido y flexible.
Lógica de AWS Step Functions
Como se muestra en el diagrama de arquitectura anterior, si la transmisión de la puerta de calidad SonarQube falla, el flujo de trabajo pasa a la CheckBuildStatus función Lambda. La función CheckBuildStatus activa una notificación en el canal de Slack. Cada notificación incluye información con sugerencias sobre los próximos pasos. A continuación se muestran los tipos de notificaciones:
La aplicación ha fallado en el escaneo de seguridad del código: el usuario recibe esta notificación cuando el código cargado no ha pasado el escaneo SonarQube de seguridad. El usuario puede elegir APROBAR para aceptar la compilación. Sin embargo, la notificación aconseja al usuario que tenga cuidado con los posibles riesgos de seguridad y de mala calidad del código. La notificación incluye la siguiente información:
Próximos pasos: Error: Quality gate status: FAILED: consulte los detalles en la URL proporcionada.
Clasifique las vulnerabilidades tal y como se menciona en el documento en la URL proporcionada.
CodeBuild los detalles están disponibles en la ubicación de la URL proporcionada.
La canalización de análisis de aplicaciones ha fallado por alguna otra razón: el usuario recibe esta notificación cuando la canalización ha fallado por alguna razón distinta del error en el análisis de seguridad del código. La notificación incluye la siguiente información:
Para ver los siguientes pasos, visite el enlace proporcionado para obtener más información sobre la solución de problemas.
Para ver las capturas de pantalla de las notificaciones tal y como aparecen en un canal de Slack, ve a la carpeta assets
En el siguiente diagrama se muestra un ejemplo del estado del paso de Step Functions después de que se produzca un error en el pase del control de calidad.

Tools (Herramientas)
Servicios de AWS
Amazon Q Developer en aplicaciones de chat le permite usar los canales de chat de Amazon Chime, Microsoft Teams y Slack para monitorear y responder a los eventos operativos en sus aplicaciones. AWS Aviso de fin de soporte: el 20 de febrero de 2026, AWS finalizará el soporte para el servicio Amazon Chime. Después del 20 de febrero de 2026, ya no podrá acceder a la consola ni a los recursos de la aplicación de Amazon Chime. Para obtener más información, visite esta entrada en el blog
. Esto no afecta a la disponibilidad del servicio Amazon Chime SDK . AWS CloudFormationle ayuda a configurar AWS los recursos, aprovisionarlos de forma rápida y coherente y administrarlos a lo largo de su ciclo de vida en todo el país Cuentas de AWS . Regiones de AWS
AWS CodeBuild es un servicio de compilación completamente administrado que le permite compilar código fuente, poner en marcha pruebas unitarias y producir artefactos listos para implementar.
AWS Identity and Access Management (IAM) le ayuda a administrar de forma segura el acceso a sus AWS recursos al controlar quién está autenticado y autorizado a usarlos.
AWS Key Management Service (AWS KMS) le ayuda a crear y controlar claves criptográficas para proteger sus datos.
AWS Lambda es un servicio de computación que ayuda a ejecutar código sin necesidad de aprovisionar ni administrar servidores. Ejecuta el código solo cuando es necesario y amplía la capacidad de manera automática, por lo que solo pagará por el tiempo de procesamiento que utilice.
AWS Secrets Manager lo ayuda a reemplazar las credenciales codificadas en su código, incluidas contraseñas, con una llamada a la API de Secrets Manager para recuperar el secreto mediante programación.
Amazon Simple Email Service (Amazon SES) facilita poder enviar y recibir mensajes de correo electrónico a través de los dominios y direcciones de correo electrónico propios.
Amazon Simple Notification Service (Amazon SNS) le permite coordinar y administrar el intercambio de mensajes entre publicadores y clientes, incluidos los servidores web y las direcciones de correo electrónico.
Amazon Simple Storage Service (Amazon S3) es un servicio de almacenamiento de objetos basado en la nube que lo ayuda a almacenar, proteger y recuperar cualquier cantidad de datos.
AWS Step Functionses un servicio de organización sin servidor que le ayuda a combinar AWS Lambda funciones y otras Servicios de AWS para crear aplicaciones críticas para la empresa.
Otras herramientas
Slack
, una oferta de Salesforce, es una plataforma conversacional basada en inteligencia artificial que permite la colaboración por chat y video, automatiza los procesos sin código y permite compartir información. SonarQube
es una herramienta de análisis local diseñada para detectar problemas de codificación en más de 30 lenguajes, marcos y plataformas IaC.
Repositorio de código
El código de este patrón está disponible en el repositorio GitHub chatops-slack
Prácticas recomendadas
CloudFormation administración de la pila: si encuentra algún error durante la ejecución de la CloudFormation pila, le recomendamos que elimine la pila fallida. A continuación, vuelva a crearla con los valores de parámetros correctos. Este enfoque permite una implementación limpia y ayuda a evitar posibles conflictos o implementaciones parciales.
Configuración de correo electrónico con bandeja de entrada compartida: al configurar el parámetro
SharedInboxEmail, utilice una lista de distribución común a la que puedan acceder todos los desarrolladores pertinentes. Este enfoque promueve la transparencia y ayuda a que las notificaciones importantes lleguen a los miembros pertinentes del equipo.Flujo de trabajo de aprobación de la producción: en el caso de los entornos de producción, restrinja el acceso al canal de Slack que se utiliza para la aprobación de las compilaciones. Solo los aprobadores designados deben ser miembros de este canal. Esta práctica mantiene una cadena de responsabilidad clara y mejora la seguridad al limitar quién puede aprobar los cambios críticos.
Permisos de IAM: siga el principio de privilegio mínimo y conceda los permisos mínimos necesarios para llevar a cabo una tarea. Para obtener más información, consulte Otorgar privilegio mínimo y Prácticas recomendadas de seguridad en la documentación de IAM.
Epics
| Tarea | Descripción | Habilidades requeridas |
|---|---|---|
Clonar el repositorio. | Para clonar el repositorio de chatops-slack
| AWS DevOps, jefe de construcción, DevOps ingeniero, administrador de la nube |
Cree un archivo .zip que incluya el código de Lambda. | Cree los archivos.zip para el código de la AWS Lambda
| AWS DevOps, jefe de construcción, DevOps ingeniero, administrador de la nube |
| Tarea | Descripción | Habilidades requeridas |
|---|---|---|
Ejecute el archivo de pila | El archivo de
| Administrador de AWS DevOps, jefe de construcción, DevOps ingeniero |
Cargue los archivos .zip en el bucket de Amazon S3. | Cargue los archivos | AWS DevOps, jefe de construcción, DevOps ingeniero, administrador de sistemas de AWS |
| Tarea | Descripción | Habilidades requeridas |
|---|---|---|
Ejecute el archivo de pila | Los archivos de pila
| AWS DevOps, administrador de sistemas de AWS, DevOps ingeniero, jefe de construcción |
Pruebe la configuración de la notificación. | Para probar la configuración de la notificación, haga lo siguiente:
Cuando el mensaje de prueba se entregue correctamente, debería ver una notificación en el canal de Slack. Para obtener más información, consulta Probar las notificaciones desde Slack en la Guía del administrador de aplicaciones de chat Servicios de AWS para desarrolladores de Amazon Q. | AWS DevOps, administrador de sistemas de AWS, DevOps ingeniero, jefe de construcción |
| Tarea | Descripción | Habilidades requeridas |
|---|---|---|
Configure una acción de Lambda personalizada. | Para configurar la AWS Lambda acción personalizada, haga lo siguiente:
| Administrador de AWS DevOps, jefe de construcción, DevOps ingeniero, administrador de Slack |
Valide el flujo de aprobación. | Para validar que el flujo de aprobación funciona según lo esperado, seleccione el botón Aprobar en Slack. Slackbot debería enviar una notificación en el hilo de mensajes con la cadena de confirmación El correo electrónico de aprobación se envió correctamente. | Administrador de AWS, DevOps ingeniero de AWS DevOps, administrador de Slack |
Resolución de problemas
| Problema | Solución |
|---|---|
Configuraciones incorrectas de Slack | Para obtener información sobre cómo solucionar problemas relacionados con errores de configuración de Slack, consulte Solución de problemas de Amazon Q Developer en la Guía del administrador de aplicaciones de chat de Amazon Q Developer. |
El análisis falló por algún otro motivo | Este error significa que se ha producido un error en la tarea de compilación de código. Para solucionar el problema, vaya al enlace que aparece en el mensaje. El error de la tarea de compilación de código puede deberse a las siguientes causas posibles:
|
Recursos relacionados
AWS documentación
Otros recursos
Adición de aplicaciones al espacio de trabajo de Slack
(documentación de Slack) Generación y uso de fichas
(SonarQube documentación) Introducción a la instalación del servidor
(SonarQube documentación)
Información adicional
Esta solución hace hincapié en Amazon Q Developer en las acciones personalizadas de las aplicaciones de chat con fines de administración de versiones. Sin embargo, para reutilizar la solución, modifique el código de Lambda para su caso de uso específico y desarrolle a partir de él.
Parámetros de los archivos CloudFormation apilados
La siguiente tabla muestra los parámetros y sus descripciones para el archivo de CloudFormation pilapre-requisite.yml.
Clave | Descripción |
|---|---|
| El nombre de la CloudFormation pila. |
| El nombre del bucket de Amazon S3 en el que cargó el código de Lambda. El nombre debe ser único de forma global. |
| El token SonarQube de usuario, tal y como se describe en los requisitos previos. |
En la siguiente tabla se muestran los parámetros y sus descripciones para el archivo app-security.yml de CloudFormation pila.
Clave | Descripción |
|---|---|
| El nombre de recurso de AWS KMS key Amazon (ARN) que se utiliza en las funciones de IAM y Lambda creadas en esta pila. |
| El AWS KMS key ID que se utiliza en el tema de Amazon SNS creado en esta pila. |
| El nombre del entorno del cliente para la implementación de la canalización de análisis de aplicaciones. Seleccione el nombre del entorno en la lista desplegable de valores permitidos. |
| Nombre del bucket de Amazon S3 que contiene los archivos |
| El nombre de la identidad de correo electrónico registrada en Amazon SES, tal y como se describe en Requisitos previos. Esta identidad es la dirección de correo electrónico de origen. |
| La dirección de correo electrónico de destino a la que se envían las notificaciones de análisis. |
| El ID del canal de Slack al que quiere que se envíen las notificaciones. Para encontrar el ID del canal, haga clic con el botón derecho en el nombre del canal en la sección Detalles del canal en la aplicación de Slack. El ID del canal está en la parte inferior. |
| El ID del espacio de trabajo de Slack, tal y como se describe en los requisitos previos. Para encontrar el ID del espacio de trabajo de Slack, inicia sesión en la Consola de administración de AWS consola de aplicaciones de chat para desarrolladores de Amazon Q y selecciona Clientes configurados, Slack, WorkspaceID. |
| El nombre de la pila. CloudFormation |
| El nombre del directorio que contiene el archivo |
| El nombre del archivo |
| El nombre del archivo .zip que contiene el archivo |