AI Security Maturity Model·AWS v1.0.0

Arrastra para explorar · pellizca para ampliar

Mejorada Seguridad de la aplicación de IACapa de defensa en profundidad: Aplicación de IA Capacidad 3 · Generación aumentada por recuperación (RAG)Caso de uso: IA que conecta 👤 ClienteModelo de Responsabilidad Compartida de AWS: quién implementa y opera este control. Cliente = es tuyo; AWS = lo opera AWS y tú lo heredas; Compartida = ambos tienen obligaciones.

c3.3 Aplica control de acceso a la recuperación con filtrado por metadatos

Adjunta metadatos (departamento, clasificación, tenant, fechas) a cada vector y filtra la recuperación según los atributos del usuario que consulta, para que el modelo solo vea documentos que ese usuario está autorizado a ver.

Fundacional
Mejorada
Avanzada
Esfuerzo: Medio Impacto: Alto Scopes de IA generativaDe la AWS Generative AI Security Scoping Matrix.: 3 · Modelos preentrenados; 4 · Modelos ajustados (fine-tuned)

Guía de implementación

Cómo implementarlo en AWS

Provee archivos de metadatos para cada documento ingerido (tags, clasificación, unidad de negocio, timestamps) y filtra las consultas por atributos de usuario al momento de consultar. Usa los metadatos para aplicar niveles de clasificación, aislar tenants y aplicar acceso temporal. La aplicación debe establecer el filtro correcto en cada llamada a Bedrock.

La capa de recuperación es un límite de control de acceso

En una aplicación de RAG, el modelo responde usando lo que el recuperador extrae del knowledge base. Si la recuperación devuelve un documento que el usuario no debería ver, el modelo lo resumirá con gusto en la respuesta: una fuga de datos sin rastro obvio. Así que la recuperación no es solo un problema de relevancia; es un límite de autorización. El filtrado por metadatos es la forma de imponerlo: adjunta atributos (departamento, clasificación, tenant, fechas de vigencia) a cada vector y luego filtra cada consulta por los permisos del usuario que la solicita.

Adjunta metadatos en la ingesta

Cada documento fuente lleva un archivo lateral de metadatos (por ejemplo, document.pdf.metadata.json) con los atributos por los que filtrarás:

{
  "metadataAttributes": {
    "department": "finance",
    "classification": "confidential",
    "tenant_id": "acme-123"
  }
}

Estos se convierten en campos filtrables en cada vector derivado de ese documento.

Filtra cada consulta por los permisos del llamador

En Retrieve / RetrieveAndGenerate, pasa una retrievalConfiguration cuyo filtro se construya a partir de los atributos del usuario autenticado, nunca de entradas proporcionadas por el usuario. Combina condiciones con andAll para que todas deban cumplirse:

{
  "retrievalConfiguration": {
    "vectorSearchConfiguration": {
      "filter": {
        "andAll": [
          { "equals": { "key": "tenant_id",     "value": "acme-123" } },
          { "equals": { "key": "department",     "value": "finance" } },
          { "notEquals": { "key": "classification", "value": "restricted" } }
        ]
      }
    }
  }
}

Bedrock admite operadores como equals, notEquals, in, greaterThanOrEquals y los combinadores booleanos andAll / orAll.

Construye el filtro del lado del servidor a partir de una identidad de confianza

La seguridad de este control descansa por completo en de dónde vienen los valores del filtro. Resuelve tenant_id, department y el nivel de acceso a partir de la identidad verificada del llamador (los claims del JWT / la sesión), en tu backend, nunca dejes que el cliente envíe el filtro. Si un usuario pudiera fijar su propio tenant_id, el límite desaparece.

Nota de nomenclatura: mantén las claves de metadatos consistentes en todos los documentos; un error tipográfico (dept vs department) excluye o filtra documentos en silencio. Valida el esquema de metadatos en la ingesta.

Cómo encaja todo

User verified identity (JWT claims) Backend builds filter from claims tenant · dept · clearance query + filter Vector store metadata-tagged vectors ✓ matches filter → returned ✓ matches filter → returned ✗ other tenant → excluded Model grounded only on permitted chunks The filter is built from the authenticated identity server-side — never from user input.
El backend construye un filtro de metadatos a partir de la identidad verificada del usuario (claims del JWT) y luego consulta el vector store con él. Solo se devuelven los fragmentos cuyos metadatos coinciden con el filtro; los documentos de otro tenant o clasificación se excluyen antes de llegar al modelo. El filtro se construye del lado del servidor, nunca a partir de la entrada del usuario.

Criterios de aceptación

Los vectores llevan metadatos de clasificación/tenant; las consultas filtran por atributos de usuario; un usuario de prueba no puede recuperar documentos por encima de su nivel ni de otro tenant.

Implementación práctica

Cómo se implementa este control en cada arquitectura de referencia:

Cada vector lleva metadatos de clasificación/tenant; la cuenta de aplicación pasa los atributos del usuario autenticado y la cuenta de IA generativa filtra la recuperación solo a lo que ese usuario puede ver.

  1. Provee archivos de metadatos (clasificación, unidad de negocio, tenant, timestamps) para cada documento ingerido para que cada vector quede etiquetado.
    Cuenta de IA generativa Amazon Bedrock Amazon S3
  2. En la cuenta de aplicación, deriva el filtro de los atributos del usuario autenticado (claims de Cognito/Identity Center) y pásalo en cada llamada de recuperación.
    Cuenta de aplicación Amazon Cognito IAM Identity Center
  3. Aplica el filtro de metadatos en cada consulta a la base de conocimiento de Bedrock para que la recuperación nunca devuelva documentos por encima del nivel del usuario ni de otro tenant.
    Cuenta de aplicación → Cuenta de IA generativa Amazon Bedrock

Cómo validar: Los vectores llevan metadatos de clasificación/tenant; un usuario de prueba no puede recuperar documentos por encima de su nivel ni de otro tenant; el filtro se establece del lado del servidor en cada consulta.

Evita: Confiar en que el cliente envíe el filtro correcto. Derívalo de la identidad autenticada del lado del servidor para que una petición manipulada no pueda ampliar la recuperación.

OU de IA generativa (multi-cuenta) →

Los vectores se etiquetan con metadatos de clasificación/tenant y la capa de aplicación filtra la recuperación por los atributos del usuario autenticado en cada consulta.

  1. Adjunta metadatos (clasificación, tenant, unidad de negocio, fechas) a cada documento ingerido.
    Capa de IA generativa (rol IAM) Amazon Bedrock Amazon S3
  2. Deriva el filtro de recuperación de los claims del usuario autenticado y establécelo en cada consulta a la base de conocimiento.
    Capa de aplicación (rol IAM) Amazon Cognito Amazon Bedrock
  3. Verifica que un usuario no pueda recuperar por encima de su nivel ni entre tenants.
    Capa de aplicación (rol IAM) Amazon Bedrock

Cómo validar: Los vectores llevan metadatos; las consultas filtran por atributos de usuario; un usuario de prueba no puede cruzar fronteras de clasificación ni de tenant.

Evita: Un solo índice compartido sin filtro por usuario. Etiqueta los vectores y filtra por identidad para que RAG respete el mismo control de acceso que los datos fuente.

Cuenta única (punto de entrada) →

Amenazas que atiende

  • La IA exponiendo datos que el usuario que consulta no está autorizado a ver.
  • Exposición de datos entre tenants en vector stores compartidos.

Servicios AWS

Amazon Bedrock Knowledge Bases

Precios

El filtrado por metadatos no añade cargo aparte: pagas la recuperación del knowledge base, los embeddings y los costos del vector store normales. El filtrado puede incluso reducir un poco el costo al disminuir el conjunto de candidatos que el modelo debe procesar. Consulta Configure and customize queries and response generation.

Mapeos de frameworks

OWASP GenAI/LLM Top 10 (2026)

  • LLM02 Sensitive Information Disclosure
  • LLM08 Hidden Context Exposure

NIST AI Risk Management Framework (AI 100-1)

  • MANAGE.1 AI risks are prioritized, responded to and managed

AWS Well-Architected Generative AI Lens (Security)

  • GENSEC01-BP03 Implement least privilege access to data stores

Recursos de aprendizaje

Referencias

  • AWS SRA para IA — Capacidad 3, Filtrado por metadatos para recuperación segura