Introducción al servidor MCP de Amazon EKS - Amazon EKS

Ayude a mejorar esta página

Para contribuir a esta guía del usuario, elija el enlace Edit this page on GitHub que se encuentra en el panel derecho de cada página.

Introducción al servidor MCP de Amazon EKS

En esta guía, se explican los pasos necesarios para configurar y utilizar el servidor MCP de EKS con los asistentes de código de IA. Obtendrá información sobre cómo configurar el entorno, conectarse al servidor y comenzar a administrar los clústeres de EKS mediante interacciones en lenguaje natural.

nota

El servidor MCP de Amazon EKS se encuentra en versión preliminar para Amazon EKS y está sujeto a cambios.

Requisitos previos

Antes de comenzar, asegúrese de haber realizado las siguientes tareas:

Configuración

1. Verificación de los requisitos previos de

# Check that your Python version is 3.10 or higher python3 --version # Check uv installation uv --version # Verify CLI configuration aws configure list

2. Configuración de permisos de IAM

Para conectarse al servidor MCP de EKS, el rol de IAM debe tener adjuntas las siguientes políticas: eks-mcp:InvokeMcp (permisos necesarios para la inicialización y recuperación de información sobre las herramientas disponibles), eks-mcp:CallReadOnlyTool (permisos necesarios para el uso de herramientas de solo lectura) y eks-mcp:CallPrivilegedTool (permisos necesarios para el uso de herramientas de acceso completo [escritura]). Estos permisos de eks-mcp se incluyen en las políticas administradas de AWS de solo lectura y acceso completo que se indican a continuación.

  • Abra la consola de IAM.

  • En el panel de navegación izquierdo, elija Usuarios, Grupos de usuarios o Roles en función de la identidad a la que desee adjuntar la política y, a continuación, del nombre del usuario, grupo o rol específico.

  • Elija la pestaña Permisos.

  • Elija Adjuntar políticas (o Agregar permisos si es la primera vez).

  • En la lista de políticas, busque y seleccione la política administrada que desee adjuntar:

  • Operaciones de solo lectura: AmazonEKSMCPReadOnlyAccess

  • Elija Adjuntar políticas (o Siguiente, seguido de Agregar permisos para confirmar).

De este modo, se adjunta la política y los permisos entran en vigor inmediatamente. Puede adjuntar varias políticas a la misma identidad y cada política puede incluir varios permisos. Para obtener más información sobre estas políticas, consulte Políticas administradas de AWS para Amazon Elastic Kubernetes Service.

3. Elección de un asistente de IA

Elija uno de los siguientes asistentes de IA compatibles con MCP o cualquier herramienta compatible con MCP:

Paso 1: configuración del asistente de IA

Elija una de las siguientes opciones para configurar el asistente de código de IA. Al completar este paso, se configura el asistente de código de IA para que utilice el proxy MCP para AWS, que es necesario para acceder de forma segura y autenticada al servidor MCP de Amazon EKS. Esto implica agregar o editar el archivo de configuración del MCP (por ejemplo, ~/.aws/amazonq/mcp.json para la CLI de Amazon Q Developer). El proxy actúa como un puente del cliente, gestiona la autenticación de AWS SigV4 con sus credenciales de AWS locales y permite la detección dinámica de herramientas para interactuar con los servidores MCP AWS de backend, como el servidor MCP de EKS. Para obtener más información, consulte el repositorio del proxy MCP para AWS.

Opción A: CLI de Amazon Q Developer

La CLI de Q Developer proporciona la experiencia más integrada con el servidor MCP de EKS.

1. Búsqueda del archivo de configuración de MCP

  • macOS/Linux: ~/.aws/q/mcp.json

  • Windows: %USERPROFILE%\.aws\q\mcp.json

2. Adición de la configuración del servidor MCP

Cree el archivo de configuración si no existe. Asegúrese de sustituir el marcador de posición de región ({region}) por la región deseada.

Para Mac/Linux:

{ "mcpServers": { "eks-mcp": { "disabled": false, "type": "stdio", "command": "uvx", "args": [ "mcp-proxy-for-aws@latest", "https://eks-mcp.{region}.api.aws/mcp", "--service", "eks-mcp", "--profile", "default", "--region", "{region}" ] } } }

Para Windows:

{ "mcpServers": { "eks-mcp": { "disabled": false, "type": "stdio", "command": "uvx", "args": [ "--from", "mcp-proxy-for-aws@latest", "mcp-proxy-for-aws.exe", "https://eks-mcp.{region}.api.aws/mcp", "--service", "eks-mcp", "--profile", "default", "--region", "{region}" ] } } }

Nota de seguridad: Se puede utilizar --read-only para permitir únicamente operaciones de herramientas de solo lectura.

3. Verificación de la configuración

Reinicie la CLI de Q Developer y, a continuación, compruebe las herramientas disponibles:

q /tools

Opción B: IDE de Kiro

Kiro es un espacio de trabajo de codificación centrado en la IA y con soporte del MCP integrado.

1. Apertura de la configuración de Kiro

  • Abra Kiro.

  • Vaya a KiroSettings y busque “MCP Config”.

  • O pulse Cmd+Shift+P, (Mac) o Ctrl+Shift+P, (Windows y Linux) y busque “MCP Config”.

2. Adición de la configuración del servidor MCP

  • Haga clic en “Open Workspace MCP Config” o en “Open User MCP Config” para editar el archivo de configuración de MCP directamente.

Asegúrese de sustituir el marcador de posición de región ({region}) por la región deseada.

Para Mac/Linux:

{ "mcpServers": { "eks-mcp": { "disabled": false, "type": "stdio", "command": "uvx", "args": [ "mcp-proxy-for-aws@latest", "https://eks-mcp.{region}.api.aws/mcp", "--service", "eks-mcp", "--profile", "default", "--region", "{region}" ] } } }

Para Windows:

{ "mcpServers": { "eks-mcp": { "disabled": false, "type": "stdio", "command": "uvx", "args": [ "--from", "mcp-proxy-for-aws@latest", "mcp-proxy-for-aws.exe", "https://eks-mcp.{region}.api.aws/mcp", "--service", "eks-mcp", "--profile", "default", "--region", "{region}" ] } } }

Nota de seguridad: Se puede utilizar --read-only para permitir únicamente operaciones de herramientas de solo lectura.

Opción C: IDE de Cursor

Cursor proporciona soporte de MCP integrado con una interfaz de configuración gráfica.

1. Apertura de la configuración de Cursor

  • Abra Cursor.

  • Vaya a SettingsCursor SettingsTools & MCP

  • O pulse Cmd+Shift+P (Mac) o Ctrl+Shift+P (Windows) y busque “MCP”.

2. Adición de la configuración del servidor MCP

  • Haga clic en “New MCP Server”.

Cree el archivo de configuración si no existe. Asegúrese de sustituir el marcador de posición de región ({region}) por la región deseada.

Para Mac/Linux:

{ "mcpServers": { "eks-mcp": { "disabled": false, "type": "stdio", "command": "uvx", "args": [ "mcp-proxy-for-aws@latest", "https://eks-mcp.{region}.api.aws/mcp", "--service", "eks-mcp", "--profile", "default", "--region", "{region}" ] } } }

Para Windows:

{ "mcpServers": { "eks-mcp": { "disabled": false, "type": "stdio", "command": "uvx", "args": [ "--from", "mcp-proxy-for-aws@latest", "mcp-proxy-for-aws.exe", "https://eks-mcp.{region}.api.aws/mcp", "--service", "eks-mcp", "--profile", "default", "--region", "{region}" ] } } }

Nota de seguridad: Se puede utilizar --read-only para permitir únicamente operaciones de herramientas de solo lectura.

3. Reinicio de Cursor

Cierre y vuelva a abrir Cursor para que los cambios surtan efecto.

4. Comprobación en el chat de Cursor

Abra el panel de chat e intente lo siguiente:

What EKS MCP tools are available?

Debería aparecer una lista completa de las herramientas de administración de EKS disponibles.

Opción D: Cline (extensión de VS Code)

Cline es una popular extensión de VS Code que lleva la asistencia de la IA directamente a su editor.

1. Apertura de la configuración de Cline

  • Abra Cline.

  • Pulse Cmd+Shift+P (Mac) o Ctrl+Shift+P (Windows) y busque “MCP”.

2. Adición de la configuración del servidor MCP

  • Haga clic en “Add Server”.

  • Haga clic en “Open User Configuration”.

Cree el archivo de configuración si no existe. Asegúrese de sustituir el marcador de posición de región ({region}) por la región deseada.

Para Mac/Linux:

{ "mcpServers": { "eks-mcp": { "disabled": false, "type": "stdio", "command": "uvx", "args": [ "mcp-proxy-for-aws@latest", "https://eks-mcp.{region}.api.aws/mcp", "--service", "eks-mcp", "--profile", "default", "--region", "{region}" ] } } }

Para Windows:

{ "mcpServers": { "eks-mcp": { "disabled": false, "type": "stdio", "command": "uvx", "args": [ "--from", "mcp-proxy-for-aws@latest", "mcp-proxy-for-aws.exe", "https://eks-mcp.{region}.api.aws/mcp", "--service", "eks-mcp", "--profile", "default", "--region", "{region}" ] } } }

Nota de seguridad: Se puede utilizar --read-only para permitir únicamente operaciones de herramientas de solo lectura.

2. Recarga de VS Code

Pulse Cmd+Shift+P o Ctrl+Shift+P y seleccione “Developer: Reload Window”.

3. Verificación de la configuración

Abra Cline y pregunte lo siguiente:

List the available MCP tools for EKS

Paso 2 (opcional): creación de una política de “escritura”

Si lo desea, puede crear una política de IAM administrada por el cliente que proporcione acceso completo al servidor MCP de Amazon EKS. Esta política otorga permisos para usar todas las herramientas del servidor MCP de EKS, lo que incluye tanto las herramientas con privilegios que pueden implicar operaciones de escritura como las herramientas de solo lectura. Tenga en cuenta que, en esta política, se incluyen los permisos de alto riesgo (todos aquellos que contengan Delete* o un recurso de IAM sin restricciones), ya que son necesarios para configurar o desmontar los recursos del clúster en la herramienta manage_eks_stacks.

aws iam create-policy \ --policy-name EKSMcpWriteManagementPolicy \ --policy-document "{\"Version\": \"2012-10-17\", \"Statement\": [{\"Effect\": \"Allow\", \"Action\": [\"eks:DescribeCluster\", \"eks:ListClusters\", \"eks:DescribeNodegroup\", \"eks:ListNodegroups\", \"eks:DescribeAddon\", \"eks:ListAddons\", \"eks:DescribeAccessEntry\", \"eks:ListAccessEntries\", \"eks:DescribeInsight\", \"eks:ListInsights\", \"eks:AccessKubernetesApi\"], \"Resource\": \"*\"}, {\"Effect\": \"Allow\", \"Action\": [\"eks:CreateCluster\", \"eks:DeleteCluster\", \"eks:CreateAccessEntry\", \"eks:TagResource\"], \"Resource\": \"*\"}, {\"Effect\": \"Allow\", \"Action\": [\"iam:GetRole\", \"iam:ListRolePolicies\", \"iam:ListAttachedRolePolicies\", \"iam:GetRolePolicy\", \"iam:GetPolicy\", \"iam:GetPolicyVersion\"], \"Resource\": \"*\"}, {\"Effect\": \"Allow\", \"Action\": [\"iam:TagRole\", \"iam:CreateRole\", \"iam:AttachRolePolicy\", \"iam:PutRolePolicy\", \"iam:DetachRolePolicy\", \"iam:DeleteRole\"], \"Resource\": \"*\"}, {\"Effect\": \"Allow\", \"Action\": [\"iam:PassRole\"], \"Resource\": \"*\", \"Condition\": {\"StringEquals\": {\"iam:PassedToService\": [\"eks.amazonaws.com\", \"ec2.amazonaws.com\"]}}}, {\"Effect\": \"Allow\", \"Action\": [\"ec2:CreateVpc\", \"ec2:CreateSubnet\", \"ec2:CreateRouteTable\", \"ec2:CreateRoute\", \"ec2:CreateInternetGateway\", \"ec2:CreateNatGateway\", \"ec2:CreateSecurityGroup\", \"ec2:AttachInternetGateway\", \"ec2:AssociateRouteTable\", \"ec2:ModifyVpcAttribute\", \"ec2:ModifySubnetAttribute\", \"ec2:AllocateAddress\", \"ec2:CreateTags\"], \"Resource\": \"*\"}, {\"Effect\": \"Allow\", \"Action\": [\"ec2:DeleteVpc\", \"ec2:DeleteSubnet\", \"ec2:DisassociateRouteTable\", \"ec2:DeleteRouteTable\", \"ec2:DeleteRoute\", \"ec2:DetachInternetGateway\", \"ec2:DeleteInternetGateway\", \"ec2:DeleteNatGateway\", \"ec2:ReleaseAddress\", \"ec2:DeleteSecurityGroup\"], \"Resource\": \"*\"}, {\"Effect\": \"Allow\", \"Action\": [\"ec2:DescribeVpcs\", \"ec2:DescribeSubnets\", \"ec2:DescribeRouteTables\", \"ec2:DescribeInternetGateways\", \"ec2:DescribeNatGateways\", \"ec2:DescribeAddresses\", \"ec2:DescribeSecurityGroups\", \"ec2:DescribeAvailabilityZones\"], \"Resource\": \"*\"}, {\"Effect\": \"Allow\", \"Action\": [\"cloudformation:CreateStack\", \"cloudformation:UpdateStack\", \"cloudformation:DeleteStack\", \"cloudformation:DescribeStacks\", \"cloudformation:TagResource\"], \"Resource\": \"*\"}, {\"Effect\": \"Allow\", \"Action\": [\"sts:GetCallerIdentity\"], \"Resource\": \"*\"}, {\"Effect\": \"Allow\", \"Action\": [\"logs:StartQuery\", \"logs:GetQueryResults\"], \"Resource\": \"*\"}, {\"Effect\": \"Allow\", \"Action\": [\"cloudwatch:GetMetricData\"], \"Resource\": \"*\"}, {\"Effect\": \"Allow\", \"Action\": [\"eks-mcp:*\"], \"Resource\": \"*\"}]}"

Paso 3: comprobación de la configuración

Prueba de conexión

Haga una pregunta sencilla a su asistente de IA para verificar la conexión:

List all EKS clusters in my {aws} account

Debería aparecer una lista de los clústeres de EKS.

Paso 4: ejecución de las primeras tareas

Ejemplo 1: exploración de los clústeres

Show me all EKS clusters and their status
What insights does EKS have about my production-cluster?
Show me the VPC configuration for my staging cluster

Ejemplo 2: comprobación de los recursos de Kubernetes

Get the details of all the kubernetes resources deployed in my EKS cluster
Show me pods that are not in Running state or pods with any restarts
Get the logs from the aws-node daemonset in the last 30 minutes

Ejemplo 3: solución de problemas

Why is my nginx-ingress-controller pod failing to start?
Search the EKS troubleshooting guide for pod networking issues
Show me events related to the failed deployment in the staging namespace

Ejemplo 4: creación de recursos (si el modo de “escritura” está activado)

Create a new EKS cluster named demo-cluster with VPC and Auto Mode
Deploy my containerized app from ECR to the production namespace with 3 replicas
Generate a Kubernetes deployment YAML for my Node.js app running on port 3000

Configuraciones comunes

Escenario 1: varios perfiles de AWS

Si trabaja con varias cuentas de AWS, cree configuraciones de servidor MCP independientes.

Para Mac/Linux:

{ "mcpServers": { "eks-mcp-prod": { "disabled": false, "type": "stdio", "command": "uvx", "args": [ "mcp-proxy-for-aws@latest", "https://eks-mcp.{region}.api.aws/mcp", "--service", "eks-mcp", "--profile", "production", "--region", "us-west-2" ] }, "eks-mcp-dev": { "disabled": false, "type": "stdio", "command": "uvx", "args": [ "mcp-proxy-for-aws@latest", "https://eks-mcp.{region}.api.aws/mcp", "--service", "eks-mcp", "--profile", "development", "--region", "us-east-1" ] } } }

Para Windows:

{ "mcpServers": { "eks-mcp-prod": { "disabled": false, "type": "stdio", "command": "uvx", "args": [ "--from", "mcp-proxy-for-aws@latest", "mcp-proxy-for-aws.exe", "https://eks-mcp.{region}.api.aws/mcp", "--service", "eks-mcp", "--profile", "production", "--region", "us-west-2" ] }, "eks-mcp-dev": { "disabled": false, "type": "stdio", "command": "uvx", "args": [ "--from", "mcp-proxy-for-aws@latest", "mcp-proxy-for-aws.exe", "https://eks-mcp.{region}.api.aws/mcp", "--service", "eks-mcp", "--profile", "development", "--region", "us-east-1" ] } } }

Escenario 2: solo lectura para producción

Cree una configuración de solo lectura para los entornos de producción.

Para Mac/Linux:

{ "mcpServers": { "eks-mcp-prod-readonly": { "command": "uvx", "args": [ "mcp-proxy-for-aws@latest", "https://eks-mcp.{region}.api.aws/mcp", "--service", "eks-mcp", "--profile", "production", "--region", "us-west-2", "--read-only" ], "autoApprove": [ "list_k8s_resources", "get_pod_logs", "get_k8s_events" ] } } }

Para Windows:

{ "mcpServers": { "eks-mcp-prod-readonly": { "command": "uvx", "args": [ "--from", "mcp-proxy-for-aws@latest", "mcp-proxy-for-aws.exe", "https://eks-mcp.{region}.api.aws/mcp", "--service", "eks-mcp", "--profile", "production", "--region", "us-west-2", "--read-only" ], "autoApprove": [ "list_k8s_resources", "get_pod_logs", "get_k8s_events" ] } } }

Escenario 3: desarrollo con acceso completo

Para entornos de desarrollo con acceso de escritura completo.

Para Mac/Linux:

{ "mcpServers": { "eks-mcp-dev-full": { "command": "uvx", "args": [ "mcp-proxy-for-aws@latest", "https://eks-mcp.{region}.api.aws/mcp", "--service", "eks-mcp", "--profile", "development", "--region", "us-east-1" ] } } }

Para Windows:

{ "mcpServers": { "eks-mcp-dev-full": { "command": "uvx", "args": [ "--from", "mcp-proxy-for-aws@latest", "mcp-proxy-for-aws.exe", "https://eks-mcp.{region}.api.aws/mcp", "--service", "eks-mcp", "--profile", "development", "--region", "us-east-1" ] } } }

Consideraciones

Seguridad

No divulgue secretos ni información confidencial a través de los mecanismos de entrada permitidos:

  • No incluya secretos ni credenciales en los archivos YAML aplicados con apply_yaml.

  • No transfiera información confidencial directamente al modelo en las petición.

  • No incluya secretos en las plantillas de CloudFormation ni en los manifiestos de aplicaciones.

  • Evite usar herramientas de MCP para crear secretos de Kubernetes, ya que esto requeriría proporcionar los datos secretos al modelo.

  • Evite registrar información confidencial en los registros de las aplicaciones dentro de pods de Kubernetes.

Seguridad del contenido de YAML:

  • Utilice archivos YAML solo de orígenes fiables.

  • El servidor depende de la validación de la API de Kubernetes para el contenido de YAML y no lleva a cabo su propia validación.

  • Audite los archivos YAML antes de aplicarlos al clúster.

En lugar de transferir los secretos a través del MCP, haga lo siguiente:

  • Utilice AWS Secrets Manager o el Almacén de parámetros para almacenar información confidencial.

  • Configure el RBAC de Kubernetes adecuado para las cuentas de servicio.

  • Utilice roles de IAM para cuentas de servicio (IRSA) para acceder al servicio de AWS desde los pods.

Tema siguiente

Para una lista completa de configuraciones y herramientas, consulte Referencia de la configuración de la herramienta del servidor MCP de Amazon EKS.