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.
Uso de agentes de Amazon Bedrock para automatizar la creación de controles de entrada de acceso en Amazon EKS mediante peticiones basadas en texto
Keshav Ganesh y Sudhanshu Saurav, Amazon Web Services
Resumen
Las organizaciones se enfrentan a desafíos al administrar los controles de acceso y el aprovisionamiento de recursos cuando varios equipos necesitan trabajar con un clúster compartido de Amazon Elastic Kubernetes Service (Amazon EKS). Un servicio de Kubernetes administrado, como Amazon EKS, ha simplificado las operaciones de los clústeres. Sin embargo, la sobrecarga administrativa que supone administrar el acceso de los equipos y los permisos de los recursos sigue siendo compleja y es tardada.
Este patrón muestra cómo los agentes de Amazon Bedrock pueden serle útiles para automatizar la administración del acceso a los clústeres de Amazon EKS. Esta automatización permite a los equipos de desarrollo centrarse en el desarrollo de sus aplicaciones principales en lugar de centrarse en la configuración y la administración del control de acceso. Puede personalizar un agente de Amazon Bedrock para que realice acciones para una amplia variedad de tareas mediante instrucciones sencillas en lenguaje natural.
Al utilizar AWS Lambda funciones como grupos de acción, un agente de Amazon Bedrock puede gestionar tareas como la creación de entradas de acceso de usuarios y la gestión de las políticas de acceso. Además, un agente de Amazon Bedrock puede configurar asociaciones de identidad de pods que permiten el acceso a los recursos AWS Identity and Access Management (IAM) para los pods que se ejecutan en el clúster. Con esta solución, las organizaciones pueden optimizar la administración de sus clústeres de Amazon EKS con instrucciones sencillas basadas en texto, reducir la sobrecarga manual y mejorar la eficiencia general del desarrollo.
Requisitos previos y limitaciones
Requisitos previos
Un activo. Cuenta de AWS
Se establecieron los roles y los permisos de IAM para el proceso de implementación. Esto incluye permisos para acceder a los modelos básicos (FM) de Amazon Bedrock, crear funciones Lambda y cualquier otro recurso necesario en todo el destino. Cuentas de AWS
El acceso está habilitado en activo Cuenta de AWS a estos haiku Amazon Bedrock FMs: Amazon Titan Text Embeddings V2 y Anthropic Claude 3.
AWS Command Line Interface (AWS CLI) versión 2.9.11 o posterior, instalada y configurada.
eksctl 0.194.0 o posterior, instalado
.
Limitaciones
Es posible que se necesiten entrenamiento y documentación para garantizar una adopción fluida y un uso efectivo de estas técnicas. El uso de Amazon Bedrock, Amazon EKS, Lambda, OpenSearch Amazon Service y OpenAPI
implica una curva de aprendizaje importante para los desarrolladores y los equipos. DevOps Algunas Servicios de AWS no están disponibles en todos. Regiones de AWS Para obtener información sobre la disponibilidad en regiones, consulte AWS services 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.

Esta solución realiza los pasos que se indican a continuación:
El usuario interactúa con el agente de Amazon Bedrock, ya que envía una petición o consulta que sirve de entrada para que el agente la procese y tome medidas.
Según la petición, el agente de Amazon Bedrock comprueba el esquema de OpenAPI para identificar la API correcta a la que dirigirse. Si el agente de Amazon Bedrock encuentra la llamada a la API correcta, la solicitud se dirige al grupo de acciones asociado a la función de Lambda que implementa estas acciones.
Si no encuentra una API relevante, el agente de Amazon Bedrock consulta la OpenSearch colección. La OpenSearch colección utiliza contenido indexado de la base de conocimientos que proviene del depósito de Amazon S3 que contiene la Guía del usuario de Amazon EKS.
La OpenSearch colección devuelve la información contextual relevante al agente de Amazon Bedrock.
En el caso de las solicitudes prácticas (aquellas que coinciden con una operación de API), el agente de Amazon Bedrock se ejecuta en una nube privada virtual (VPC) y activa la función de Lambda.
La función de Lambda realiza una acción que se basa en la entrada del usuario dentro del clúster de Amazon EKS.
El bucket de Amazon S3 para el código de Lambda almacena el artefacto que contiene el código y la lógica escritos para la función de Lambda.
Tools (Herramientas)
Servicios de AWS
Amazon Bedrock es un servicio totalmente gestionado que pone a su disposición modelos básicos de alto rendimiento (FMs) de las principales empresas emergentes de IA y Amazon a través de una API unificada.
AWS CloudFormationle ayuda a configurar AWS los recursos, aprovisionarlos de forma rápida y coherente y gestionarlos a lo largo de su ciclo de vida en todo el territorio y. Cuentas de AWS Regiones de AWS
Amazon Elastic Kubernetes Service (Amazon EKS) le ayuda a ejecutar AWS Kubernetes sin necesidad de instalar o mantener su propio plano de control o nodos de Kubernetes.
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 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.
Amazon OpenSearch Service es un servicio gestionado que le ayuda a implementar, operar y escalar OpenSearch clústeres en Nube de AWS. Su característica de colecciones le permite organizar los datos y crear bases de conocimiento integrales que los asistentes de IA, como los agentes de Amazon Bedrock, pueden utilizar.
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.
Otras herramientas
eksctl: es una utilidad sencilla de línea de comandos para crear y administrar clústeres de Kubernetes en Amazon EKS.
Repositorio de código
El código de este patrón está disponible en el repositorio GitHub eks-access-controls-bedrock-agent
Prácticas recomendadas
Mantenga la mayor seguridad posible al implementar este patrón. Asegúrese de que el clúster de Amazon EKS sea privado, tenga permisos de acceso limitados y que todos los recursos estén dentro de una nube privada virtual (VPC). Para más información, consulte Best practices for security en la documentación de Amazon EKS.
Utilice claves administradas por el AWS KMS cliente siempre que sea posible y concédales permisos de acceso limitados.
Cumpla con 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 este patrón, ejecute el comando siguiente en la estación de trabajo local:
| AWS DevOps |
Obtenga la Cuenta de AWS identificación. | Para obtener la Cuenta de AWS identificación, sigue los siguientes pasos:
Este comando almacena tu Cuenta de AWS ID en la | AWS DevOps |
Cree el bucket de S3 para el código de Lambda. | Para implementar esta solución, debe crear tres buckets de Amazon S3 que sirvan para propósitos distintos, como se muestra en el diagrama de arquitectura. Los buckets de S3 son para código de Lambda, una base de conocimientos y un esquema OpenAPI. Para crear el bucket de Lambda, haga esto:
El comando package crea una nueva CloudFormation plantilla (
| AWS DevOps |
Cree el bucket de S3 para la base de conocimientos. | Para crear el bucket de Amazon S3 para la base de conocimientos, haga lo siguiente:
| AWS DevOps |
Cree el bucket de S3 para el esquema de OpenAPI. | Para crear el bucket de Amazon S3 para el esquema de OpenAPI, haga lo siguiente:
| AWS DevOps |
| Tarea | Descripción | Habilidades requeridas |
|---|---|---|
Despliegue la CloudFormation pila. | Para implementar la CloudFormation pila, usa el archivo CloudFormation de plantilla notaEl aprovisionamiento del OpenSearch índice con la CloudFormation plantilla tarda unos 10 minutos. Una vez creada la pila, anote el valor de | AWS DevOps |
Cree el clúster de Amazon EKS. | Para crear el clúster de Amazon EKS dentro de la VPC, haga lo siguiente:
Los resultados esperados son los siguientes:
| AWS DevOps |
| Tarea | Descripción | Habilidades requeridas |
|---|---|---|
Cree una conexión entre el clúster de Amazon EKS y la función de Lambda. | Para configurar los permisos de red e IAM para permitir que la función de Lambda se comunique con el clúster de Amazon EKS, haga lo siguiente:
| AWS DevOps |
| Tarea | Descripción | Habilidades requeridas |
|---|---|---|
Pruebe el agente de Amazon Bedrock. | Antes de hacer pruebas con el agente de Amazon Bedrock, asegúrese de hacer lo siguiente:
Para acceder al agente de Amazon Bedrock, haga lo siguiente:
También puede pedirle al agente que realice acciones para las asociaciones de Pod Identity de EKS. Para más información, consulte Más información sobre cómo Pod Identity de EKS concede a los pods acceso a los Servicios de AWS en la documentación de Amazon EKS. | AWS DevOps |
| Tarea | Descripción | Habilidades requeridas |
|---|---|---|
Eliminación de recursos. | Para limpiar los recursos que creó este patrón, siga el procedimiento siguiente. Espere a que cada paso de eliminación termine antes de ir al paso siguiente. avisoEste procedimiento eliminará de manera permanente todos los recursos creados por estas pilas. Asegúrese de que hizo una copia de seguridad de los datos importantes antes de continuar.
| AWS DevOps |
Resolución de problemas
| Problema | Solución |
|---|---|
Durante la configuración del entorno, se devuelve un código de error distinto de cero. | Compruebe que está utilizando la carpeta correcta al ejecutar los comandos para implementar esta solución. Para más información, consulte el archivo FIRST_DEPLOY.md |
La función de Lambda no puede hacer la tarea. | Asegúrese de que la conectividad esté configurada correctamente desde la función de Lambda al clúster de Amazon EKS. |
Las indicaciones del agente no reconocen el APIs. | Implementar la solución. Para más información, consulte el archivo RE_DEPLOY.md |
La pila no se puede eliminar. | Es posible que se produzca un error al intentar eliminar la pila por primera vez. Este error puede producirse debido a problemas de dependencia con el recurso personalizado que se creó para la OpenSearch colección, que se encarga de la indexación de la base de conocimientos. Para eliminar la pila, vuelva a intentar la operación de eliminación conservando el recurso personalizado. |
Recursos relacionados
AWS Blog
Documentación de Amazon Bedrock
Documentación de Amazon EKS