c5.4 Otorga a los agentes roles de mínimo privilegio sin ruta de escalada
Acota el rol de IAM de cada agente solo a las herramientas, recursos y secretos que necesita, para que un agente comprometido o manipulado no pueda escalar mediante combinaciones no previstas de herramientas.
Guía de implementación
Cómo implementarlo en AWS
Asigna a los agentes de AgentCore Runtime roles de IAM con permisos mínimos, acotados a herramientas/recursos/secretos específicos. Centraliza el acceso a herramientas con AgentCore Gateway con un identity store separado para agentes (OAuth Client Credentials), guarda los client IDs/secrets en Secrets Manager y acota la autorización de salida (SigV4/OAuth scopes) solo a las herramientas que cada agente puede invocar. Autoriza cada llamada a herramienta con AgentCore Policy (Cedar) en el gateway, que deniega por defecto.
Un agente autónomo hereda el alcance de su rol
Un agente actúa en tu nombre usando su rol de IAM. Si ese rol es amplio —o, peor, tiene permisos que le permiten cambiar sus propios permisos—, un agente manipulado o comprometido no solo hace mal uso de lo que tiene; puede escalar a más. Acota el rol solo a las herramientas, recursos y secretos que el agente necesita, y cierra explícitamente la puerta al puñado de permisos que habilitan la escalada de privilegios.
Concede solo lo que requiere la tarea del agente
Parte de cero y añade las acciones específicas y los ARN de recursos que el agente usa: la misma disciplina de mínimo privilegio que los roles de invocación del modelo y de herramientas:
{
"Sid": "AgentTaskPermissions",
"Effect": "Allow",
"Action": ["bedrock:InvokeModel", "dynamodb:GetItem"],
"Resource": [
"arn:aws:bedrock:us-east-1::foundation-model/anthropic.claude-3-5-sonnet-20240620-v1:0",
"arn:aws:dynamodb:us-east-1:111122223333:table/AgentState"
]
}
Deniega explícitamente las rutas de escalada
Un conjunto corto y bien conocido de acciones de IAM/STS convierte un rol limitado en uno de administrador. Aunque nunca se concedan, un Deny explícito garantiza que una política ampliada no pueda reintroducirlas:
{
"Sid": "NoPrivilegeEscalation",
"Effect": "Deny",
"Action": [
"iam:CreatePolicyVersion",
"iam:SetDefaultPolicyVersion",
"iam:AttachRolePolicy",
"iam:PutRolePolicy",
"iam:AttachUserPolicy",
"iam:CreateAccessKey",
"iam:UpdateAssumeRolePolicy",
"iam:PassRole"
],
"Resource": "*"
}
iam:PassRole es el clásico: la capacidad de entregar un rol más poderoso a un servicio que el agente puede invocar. Si el agente legítimamente debe pasar un rol, acota el Allow de iam:PassRole a ese único ARN de rol con una Condition sobre iam:PassedToService, en lugar de dejarlo en el deny.
Sin cadenas de auto-asunción
Mantén ajustadas las relaciones de confianza del agente para que no pueda asumir un rol más amplio. Combina un deny explícito (o un sts:AssumeRole acotado a ARN de rol específicos) con un límite de permisos (consulta el control de roles de herramienta), de modo que la política de identidad Y el límite topen el techo.
Nota de nomenclatura: reemplaza los ARN del modelo y de la tabla. Si el agente necesita iam:PassRole, quítalo del deny y añade en su lugar un allow estrechamente acotado; no concedas PassRole amplio.Criterios de aceptación
Los roles de agente son de mínimo privilegio y acotados; el gateway usa un identity store separado para agentes; los OAuth scopes limitan qué herramientas invoca cada agente; no existe ruta amplia de escalada. Una llamada a herramienta sin política que la permita se deniega.
Implementación práctica
Cómo se implementa este control en cada arquitectura de referencia:
Cada agente en la cuenta de IA generativa recibe un rol de IAM de mínimo privilegio y alcanza las herramientas solo a través de AgentCore Gateway con un identity store de agente separado y OAuth acotado.
- Asigna a los agentes de AgentCore Runtime roles de IAM con permisos mínimos acotados a herramientas, recursos y secretos específicos.
- Centraliza el acceso a herramientas con AgentCore Gateway con un identity store separado para agentes (OAuth Client Credentials); guarda los client IDs/secrets en Secrets Manager.
- Autoriza cada llamada a herramienta en el gateway con AgentCore Policy: escribe políticas Cedar que permitan a cada identidad de agente (principal IAM u OAuth) llamar solo a sus propias herramientas. Las llamadas sin una política permit que coincida se deniegan por defecto.
- Acota la autorización de salida (SigV4/OAuth scopes) solo a las herramientas que cada agente puede invocar, sin dejar ruta amplia de escalada.
Cómo validar: Los roles de agente son de mínimo privilegio y acotados; el gateway usa un identity store separado para agentes; los OAuth scopes limitan qué herramientas invoca cada agente; encadenar dos herramientas no puede escalar. Una llamada a herramienta sin política que la permita se deniega.
Evita: Un rol de agente compartido y potente más un gateway permisivo. Acota el rol y los OAuth scopes para que encadenar herramientas no pueda escalar privilegios.
Roles de agente de mínimo privilegio más AgentCore Gateway con un identity store de agente separado y OAuth acotado evitan que los agentes escalen dentro de la cuenta.
- Da a cada agente un rol de IAM acotado solo a sus herramientas, recursos y secretos.
- Enruta el acceso a herramientas por AgentCore Gateway con un identity store de agente separado; guarda los client secrets en Secrets Manager.
- Autoriza cada llamada a herramienta en el gateway con AgentCore Policy: escribe políticas Cedar que permitan a cada identidad de agente (principal IAM u OAuth) llamar solo a sus propias herramientas. Las llamadas sin una política permit que coincida se deniegan por defecto.
- Acota OAuth solo a las herramientas que cada agente puede invocar.
Cómo validar: Los roles de agente son de mínimo privilegio; el gateway usa un identity store separado para agentes; los OAuth scopes limitan las herramientas; no existe ruta amplia de escalada. Una llamada a herramienta sin política que la permita se deniega.
Evita: Reutilizar el rol de la app para los agentes. Dales a los agentes sus propios roles mínimos y acota su acceso a herramientas.
Amenazas que atiende
- Agencia excesiva: un agente alcanzando recursos fuera de su tarea.
- Escalada de privilegios encadenando herramientas que un agente no debería combinar.
Servicios AWS
Precios
Los roles y las políticas de IAM son gratuitos; este es un control de diseño sin costo. IAM Access Analyzer (útil para confirmar que no quedan permisos sin uso o capaces de escalar) no tiene cargo para el análisis de acceso externo; el análisis de acceso sin uso se factura por recurso analizado. Consulta Least-privilege permissions.
Mapeos de frameworks
OWASP GenAI/LLM Top 10 (2026)
- LLM03 Excessive Agency
NIST AI Risk Management Framework (AI 100-1)
- MANAGE.1 AI risks are prioritized, responded to and managed
AWS Security Hub — AI Security Best Practices
- BedrockAgentCore.2 Bedrock AgentCore Gateways should require authorization for inbound requests
AWS Well-Architected Generative AI Lens (Security)
- GENSEC05-BP01 Implement least privilege and permission boundaries for agentic workflows
OWASP GenAI Top 10 for Agentic Applications (2025)
- ASI03 Identity and Privilege Abuse
Recursos de aprendizaje
Referencias
- AWS SRA para IA — Capacidad 5, Gestión de identidad y acceso
AI Security Maturity Model