Roca Amazónica es un servicio totalmente administrado que hace que los modelos básicos (FM) de las principales empresas emergentes de IA y Amazon estén disponibles a través de una API, por lo que puede elegir entre una amplia gama de FM para encontrar el modelo que mejor se adapte a su caso de uso. Con la experiencia sin servidor de Amazon Bedrock, puede comenzar rápidamente, personalizar de forma privada los FM con sus propios datos, integrarlos e implementarlos en su aplicación usando Servicios web de Amazon (AWS) sin tener que gestionar ninguna infraestructura.
Para las empresas en el ámbito de la computación en la nube y el desarrollo de software, es esencial proporcionar repositorios de código seguros. A medida que las amenazas sofisticadas a la ciberseguridad se vuelven más frecuentes, las organizaciones deben adoptar medidas proactivas para proteger sus activos. Amazon Bedrock ofrece una solución poderosa al automatizar el proceso de escaneo de repositorios en busca de vulnerabilidades y remediarlas. Esta publicación explora cómo puede utilizar Amazon Bedrock para mejorar la seguridad de sus repositorios y mantener el cumplimiento de los estándares organizativos y normativos.
Esta solución demuestra cómo Agentes de Amazon Bedrock se puede configurar para escanear un repositorio de código específico, corregir vulnerabilidades y enviar los cambios a una nueva rama. Este enfoque puede acelerar el desarrollo, reducir errores y cumplir con las pautas de seguridad.
Descripción general de la solución
Hay tres pasos de alto nivel para implementar la solución:
- Configurar el agente de Amazon Bedrock
- Configurar el AWS Lambda función para el grupo de acción
- Agregue el grupo de acciones al agente de Amazon Bedrock
Hay dos pasos clave en la arquitectura, como se ilustra en el siguiente diagrama:
- El usuario proporciona la información necesaria a través de la consola de chat del agente de Amazon Bedrock. Proporcionan la URL del repositorio de código, como
https://github.com/abc/testy especifique el nombre de la rama a escanear, por ejemplo, principal. Luego enumeran las carpetas que se excluirán del análisis, como pruebay especifique las extensiones de archivo que desea excluir, como .Maryland y .TXT. Luego proporcionan un nuevo nombre de sucursal donde se cargará el código corregido. - El agente de Amazon Bedrock envía los detalles a un grupo de acción que invoca una función Lambda. Esta función recupera el código, lo escanea en busca de vulnerabilidades utilizando un modelo de lenguaje grande (LLM) preseleccionado, aplica la corrección y envía el código corregido a una nueva rama para la validación del usuario. Las carpetas y extensiones de archivos excluidas no se analizan. Al finalizar, el grupo de acciones (función Lambda) envía la información al agente de Amazon Bedrock, que luego muestra el estado al usuario.
Figura 1. Diagrama de arquitectura
Requisitos previos
Para implementar la solución, necesita lo siguiente:
Configurar el agente de Amazon Bedrock
Para configurar el agente de Amazon Bedrock, complete los siguientes pasos:
- en el Consola Amazon Bedrockelegir Agentes en el panel de navegación, luego elija Crear agente.
- (Opcional) Proporcione los detalles del agente, incluido el nombre y la descripción del agente.
- Otorgue permisos al agente para los servicios de AWS a través del rol de servicio de IAM. Esto le da a su agente acceso a los servicios requeridos, como lambda.
- Seleccione una FM en Amazon Bedrock (como Claude 3 Sonnet de Anthropic).
- Para escanear un repositorio de código y corregir vulnerabilidades a través de agentes de Amazon Bedrock, adjunte las siguientes instrucciones al agente:
Eres un asistente de IA para escanear y remediar códigos. Salude al usuario y pregúntele la URL del repositorio y el nombre de la sucursal que deben escanearse. Solicite al usuario una lista de carpetas que deben excluirse del escaneo y también solicite una lista de extensiones de archivos específicas que deben excluirse del escaneo. Solicite al usuario el nuevo nombre de la sucursal para enviar el código corregido. Pase esas entradas para activar el grupo de acciones de corrección de escaneo de código.
Configurar Lambda para el grupo de acciones
Después de la configuración inicial del agente y de agregar la instrucción anterior al agente, crea una función Lambda que se utilizará para el grupo de acciones.
Crear un función lambda diseñado para escanear un repositorio de código en busca de vulnerabilidades, remediar las vulnerabilidades y enviar los cambios a una nueva rama especificada por el usuario. Esta función será utilizada por el grupo de acciones, que será invocado por el agente de Amazon Bedrock luego de que el usuario ingrese la URL del repositorio de código, el nombre de la rama y la lista de carpetas y extensiones de archivo para excluir del análisis. Referencia a la código lambda. Confirme que la función Lambda tiene los permisos de IAM requeridos y configure una Política basada en recursos en la función Lambda para permitir que Amazon Bedrock Agent invoque Lambda utilizando el lambda:InvokeFunction acción. Consulte la política aquí.
Agregue el grupo de acciones al agente de Amazon Bedrock
Complete los siguientes pasos para agregar los grupos de acciones al agente de Amazon Bedrock:
- Agregar un grupo de acciones al agente de Amazon Bedrock.
- Asigna un nombre descriptivo al grupo de acciones y detalla la función en el campo de descripción. Esto ayuda a aclarar el propósito del grupo de acciones dentro del flujo de trabajo.
- Para Tipo de grupo de acciónseleccionar Definir con detalles de función.
- Para Invocación de grupo de accionesseleccione la función Lambda que ha creado anteriormente.
Esta función ejecuta la lógica empresarial necesaria cuando se invoca una acción. Asegúrese de elegir la versión correcta de la función Lambda y de que el token de GitHub esté configurado como una variable de entorno. Para obtener más información sobre cómo configurar funciones Lambda para grupos de acciones, consulte Configure funciones de Lambda para enviar información que un agente de Amazon Bedrock obtiene del usuario.
- Para el Función del grupo de acción 1seleccionar Editor JSON y agregue los parámetros requeridos. Referencia a la archivo JSON.
La siguiente captura de pantalla muestra un ejemplo de la interacción del usuario con los agentes de Amazon Bedrock.
Figura 2. Interacción del usuario con Amazon Bedrock Agent
La siguiente captura de pantalla muestra un ejemplo de código corregido.
Figura 3. Ejemplo de diferencia entre el código real y el corregido
Mejores prácticas
Siga estas mejores prácticas:
- Agregue pruebas de automatización para validar el código antes de enviarlo al repositorio y revise el código corregido antes de fusionarlo en la rama predeterminada.
- Utilice nombres de ramas descriptivos al crear nuevas ramas durante la corrección para mantener un control de versiones claro.
- Configure roles y permisos de IAM con el principio de privilegio mínimo para proteger el agente de Amazon Bedrock y las funciones Lambda.
- Actualizar mensajes para abordar y remediar vulnerabilidades específicas de casos de uso
Limpiar
Los servicios utilizados en esta demostración pueden generar costos. Complete los siguientes pasos para limpiar sus recursos:
- Elimine la función Lambda si ya no es necesaria
- Eliminar el grupo de acción y agentes tu creaste
- Eliminar la rama generada del repositorio de GitHub
Conclusión
Usos de los agentes de Amazon Bedrock IA generativa para transformar repositorios de código escaneando vulnerabilidades y aplicando correcciones automáticamente. Esta capacidad es esencial para los ingenieros porque acelera el proceso de proteger el código y mantener el cumplimiento de las mejores prácticas establecidas desde el principio.
Las funciones interactivas de Amazon Bedrock Agents automatizan el proceso de escaneo y corrección de vulnerabilidades, no solo agilizando la configuración inicial sino también mejorando significativamente el mantenimiento continuo del código. Aunque esta publicación se centra en el escaneo y la corrección de códigos, las capacidades interactivas de Amazon Bedrock Agents se pueden aplicar en varios servicios de AWS, ofreciendo una solución dinámica e integral para administrar y optimizar la infraestructura de la nube.
¿Está listo para optimizar su proceso de implementación en la nube con la IA generativa de Amazon Bedrock? Comience explorando el Guía del usuario de Amazon Bedrock para saber cómo puede facilitar la transición de su organización a la nube. Para obtener asistencia especializada, considere colaborar con Servicios profesionales de AWS para maximizar la eficiencia y los beneficios del uso de Amazon Bedrock.
Aproveche el potencial de una transformación de la nube rápida, segura y eficiente con Amazon Bedrock. Dé el primer paso hoy y descubra cómo el uso de la IA generativa puede revolucionar su enfoque de la infraestructura en la nube.
Sobre los autores
Rama Krishna Yalla es consultor asociado de DevOps en AWS, experto en el diseño de entornos de nube escalables, confiables y seguros. Aprovecha las mejores prácticas de automatización y CI/CD para optimizar la entrega de software, reducir el tiempo de inactividad y mejorar la eficiencia operativa. Rama tiene experiencia en la gestión de infraestructura como código (IaC), lo que garantiza implementaciones consistentes y repetibles. También se centra en implementar soluciones sólidas de monitoreo y registro, lo que permite una resolución proactiva de problemas y un rendimiento optimizado. Fuera del trabajo, a Rama le gusta jugar al bádminton y, a menudo, participa en torneos locales.
Akhil Raj Yallamelli es arquitecto de infraestructura de nube en AWS y se especializa en diseñar soluciones de infraestructura de nube para mejorar la seguridad de los datos y la rentabilidad. Tiene experiencia en la integración de soluciones técnicas con estrategias comerciales para crear entornos de nube escalables, confiables y seguros. A Akhil le gusta desarrollar soluciones centradas en los resultados comerciales de los clientes, incorporando tecnologías de IA generativa (Gen AI) para impulsar la innovación y la habilitación de la nube. Tiene una maestría en Ciencias de la Computación. Fuera de su trabajo profesional, a Akhil le gusta mirar y practicar deportes.