c1.1 Acota el acceso al modelo con IAM de mínimo privilegio
Otorga a quien invoca solo las acciones de Amazon Bedrock y los ARN de modelo que necesita, para que una identidad comprometida no pueda invocar modelos arbitrarios ni alcanzar datos que no le corresponden.
Guía de implementación
Cómo implementarlo en AWS
Redacta políticas de IAM que permitan solo las acciones de Bedrock requeridas (p. ej. bedrock:InvokeModel) sobre ARN de modelo específicos, acotadas con condition keys cuando sea posible. Separa quién invoca modelos de quién los administra y prefiere credenciales temporales sobre llaves de larga vida.
Por qué importa el mínimo privilegio para el acceso al modelo
Amazon Bedrock expone modelos fundacionales potentes tras un pequeño conjunto de acciones de IAM. Si a un rol de aplicación se le concede bedrock: sobre Resource: , una sola credencial filtrada puede invocar cualquier modelo de la cuenta, reconfigurar guardrails o iniciar costosos trabajos de personalización. Acotar el acceso a las acciones y los ARN de modelo exactos que necesita una carga de trabajo convierte un compromiso amplio en uno contenido.
Separa invocar un modelo de administrarlo
Trátalos como dos funciones distintas con dos roles distintos:
- Invocar — la aplicación en ejecución solo necesita
bedrock:InvokeModel(ybedrock:InvokeModelWithResponseStreampara streaming) sobre los ARN de modelo específicos que tiene aprobado usar. - Administrar — crear o actualizar guardrails, modelos personalizados y el acceso a modelos corresponde a un rol de plataforma/operador que la aplicación en ejecución nunca asume.
Mantenerlos separados significa que una identidad de aplicación comprometida puede llamar a sus modelos aprobados pero no puede cambiar cómo se gobiernan.
Acota a ARN de modelo explícitos
Los modelos fundacionales se direccionan por ARN con la forma arn:aws:bedrock:<region>::foundation-model/<model-id>. Enumera los ARN de modelo exactos en el bloque Resource de la política en lugar de *, para que el rol no pueda alcanzar modelos que nunca se aprobaron. El ejemplo siguiente concede acceso solo de invocación a dos modelos específicos y nada más:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "InvokeApprovedModelsOnly",
"Effect": "Allow",
"Action": [
"bedrock:InvokeModel",
"bedrock:InvokeModelWithResponseStream"
],
"Resource": [
"arn:aws:bedrock:us-east-1::foundation-model/anthropic.claude-3-5-sonnet-20240620-v1:0",
"arn:aws:bedrock:us-east-1::foundation-model/amazon.titan-embed-text-v2:0"
]
}
]
}
Vincula la invocación a la ruta de red aprobada
Añade claves de condición a la política de invocación para que la credencial solo sea utilizable desde donde realmente se ejecuta la carga de trabajo; por ejemplo, exige que las llamadas lleguen a través de tu endpoint de VPC de Bedrock con aws:SourceVpce. Así, una credencial exfiltrada es inútil desde la internet pública:
{
"Effect": "Allow",
"Action": "bedrock:InvokeModel",
"Resource": "arn:aws:bedrock:us-east-1::foundation-model/anthropic.claude-3-5-sonnet-20240620-v1:0",
"Condition": {
"StringEquals": { "aws:SourceVpce": "vpce-0abc123456789def0" }
}
}
Prefiere credenciales temporales
Haz que la aplicación asuma un rol (rol de tarea, perfil de instancia o rol entre cuentas) en lugar de incrustar claves de acceso de larga duración. Las credenciales temporales rotan automáticamente y son mucho más fáciles de revocar si una carga de trabajo se ve comprometida.
Nota de nomenclatura: reemplaza los IDs de modelo de ejemplo y el ID del endpoint de VPC por los valores de tu región y cuenta. Los IDs de modelo difieren por región y cambian a medida que se publican nuevas versiones.
Criterios de aceptación
Las políticas de IAM listan ARN y acciones explícitas; no hay bedrock:* sobre * ; las revisiones de acceso muestran a quienes invocan limitados a sus modelos aprobados.
Implementación práctica
Cómo se implementa este control en cada arquitectura de referencia:
La cuenta de aplicación asume un rol acotado hacia la cuenta de IA generativa; ese rol solo puede invocar los ARN de modelo aprobados, nada más.
- En la cuenta de IA generativa, crea un rol IAM solo-invocación que permita bedrock:InvokeModel y bedrock:InvokeModelWithResponseStream sobre los ARN específicos de los modelos fundacionales aprobados, y nada sobre bedrock:*.
- Deja que el rol de la cuenta de aplicación asuma ese rol solo-invocación con una política de confianza acotada al rol de ejecución de la app, para que la app nunca tenga permisos de administración de modelos.
- Agrega condition keys (p. ej. aws:SourceVpce, aws:PrincipalTag) para atar la invocación al endpoint de VPC y a la carga aprobados, y mantén la administración de modelos en un rol separado en manos solo del equipo de plataforma.
Cómo validar: IAM Access Analyzer no muestra ningún rol con bedrock:* sobre *; el rol de la app solo puede invocar los ARN listados; un intento de llamar a un modelo no listado o a una acción de administración es denegado.
Evita: Otorgar bedrock:* sobre Resource:* al rol de la aplicación por comodidad. Una sola credencial filtrada alcanza entonces todos los modelos y acciones de administración; acota a ARN explícitos y separa invocación de administración.
Dos roles IAM distintos en la única cuenta —uno de aplicación y uno de invocación de modelo— mantienen separadas las funciones de invocar y administrar sin límites de cuenta.
- Crea un rol dedicado de invocación de modelo que permita solo bedrock:InvokeModel sobre los ARN aprobados, y haz que el rol de aplicación lo asuma (o adjúntalo como rol de tarea/ejecución) en vez de embeber permisos amplios de Bedrock en la app.
- Mantén la administración de modelos (crear/actualizar guardrails, modelos personalizados) en un rol separado en manos solo de operadores, nunca otorgado al rol de aplicación en ejecución.
- Usa credenciales temporales (asunción de rol / roles de instancia o tarea) en vez de llaves de acceso de larga vida para cada llamada a Bedrock.
Cómo validar: La política efectiva del rol en ejecución lista ARN de modelo explícitos y ningún comodín bedrock:*; no existen llaves de larga vida para la identidad de la app; las acciones de administración se le deniegan al rol en ejecución.
Evita: Usar un solo rol compartido para la app y la administración de modelos. Separa el rol de invocación del de administración incluso dentro de una sola cuenta para que una identidad de app comprometida no pueda reconfigurar modelos.
Amenazas que atiende
- Identidades con permisos excesivos que invocan modelos o acciones fuera de su propósito.
- Exfiltración de datos mediante técnicas de prompt cuando el acceso no está acotado.
Servicios AWS
Precios
Las políticas y roles de IAM no tienen costo. Solo pagas por las invocaciones de modelo de Bedrock, facturadas por token de entrada/salida (bajo demanda) o por rendimiento aprovisionado; acotar el acceso no añade costo.
Mapeos de frameworks
OWASP GenAI/LLM Top 10 (2026)
- LLM02 Sensitive Information Disclosure
- LLM03 Excessive Agency
NIST AI Risk Management Framework (AI 100-1)
- GOVERN.1 Policies, processes, procedures and accountability structures
- MANAGE.1 AI risks are prioritized, responded to and managed
AWS Well-Architected Generative AI Lens (Security)
- GENSEC01-BP01 Grant least privilege access to foundation model endpoints
Recursos de aprendizaje
Referencias
- AWS SRA para IA — Capacidad 1, Defensa en profundidad
AI Security Maturity Model