AI Security Maturity Model·AWS v1.0.0

Arraste para explorar · faça pinça para ampliar

Aprimorada Segurança da aplicação de IACamada de defesa em profundidade: Aplicação de IA Capacidade 3 · Geração aumentada por recuperação (RAG)Caso de uso: IA que conecta 👤 ClienteModelo de Responsabilidade Compartilhada da AWS: quem implementa e opera este controle. Cliente = é seu; AWS = a AWS opera e você o herda; Compartilhada = ambos têm obrigações.

c3.3 Aplique controle de acesso à recuperação com filtragem por metadados

Anexe metadados (departamento, classificação, tenant, datas) a cada vetor e filtre a recuperação pelos atributos do usuário que consulta, para que o modelo veja apenas documentos que esse usuário está autorizado a ver.

Fundacional
Aprimorada
Avançada
Esforço: Médio Impacto: Alto Scopes de IA generativaDa AWS Generative AI Security Scoping Matrix.: 3 · Modelos pré-treinados; 4 · Modelos ajustados (fine-tuned)

Guia de implementação

Como implementar na AWS

Forneça arquivos de metadados para cada documento ingerido (tags, classificação, unidade de negócio, timestamps) e filtre as consultas por atributos de usuário no momento da consulta. Use os metadados para aplicar níveis de classificação, isolar tenants e aplicar acesso temporal. A aplicação deve definir o filtro correto em cada chamada ao Bedrock.

A camada de recuperação é um limite de controle de acesso

Em uma aplicação de RAG, o modelo responde usando o que o recuperador extrai do knowledge base. Se a recuperação retornar um documento que o usuário não deveria ver, o modelo o resumirá alegremente na resposta — um vazamento de dados sem rastro óbvio. Portanto, a recuperação não é apenas um problema de relevância; é um limite de autorização. A filtragem por metadados é como você o impõe: anexe atributos (departamento, classificação, tenant, datas de vigência) a cada vetor e depois filtre cada consulta pelos direitos do usuário solicitante.

Anexe metadados na ingestão

Cada documento de origem carrega um arquivo lateral de metadados (por exemplo, document.pdf.metadata.json) com os atributos pelos quais você vai filtrar:

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

Estes se tornam campos filtráveis em cada vetor derivado desse documento.

Filtre cada consulta pelos direitos do chamador

Em Retrieve / RetrieveAndGenerate, passe uma retrievalConfiguration cujo filtro seja construído a partir dos atributos do usuário autenticado, nunca de entradas fornecidas pelo usuário. Combine condições com andAll para que todas devam valer:

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

O Bedrock suporta operadores como equals, notEquals, in, greaterThanOrEquals e os combinadores booleanos andAll / orAll.

Construa o filtro no lado do servidor a partir de uma identidade confiável

A segurança deste controle depende inteiramente de de onde vêm os valores do filtro. Resolva tenant_id, department e o nível de acesso a partir da identidade verificada do chamador (as claims do JWT / a sessão), no seu backend — nunca deixe o cliente enviar o filtro. Se um usuário pudesse definir seu próprio tenant_id, o limite desaparece.

Nota de nomenclatura: mantenha as chaves de metadados consistentes em todos os documentos; um erro de digitação (dept vs department) exclui ou vaza documentos silenciosamente. Valide o esquema de metadados na ingestão.

Como tudo se encaixa

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.
O backend constrói um filtro de metadados a partir da identidade verificada do usuário (claims do JWT) e depois consulta o vector store com ele. Apenas os fragmentos cujos metadados correspondem ao filtro são retornados; documentos de outro tenant ou classificação são excluídos antes de chegar ao modelo. O filtro é construído no lado do servidor, nunca a partir da entrada do usuário.

Critérios de aceitação

Os vetores carregam metadados de classificação/tenant; as consultas filtram por atributos de usuário; um usuário de teste não consegue recuperar documentos acima do seu nível nem de outro tenant.

Implementação prática

Como este controle é implementado em cada arquitetura de referência:

Cada vetor carrega metadados de classificação/tenant; a conta de aplicação passa os atributos do usuário autenticado e a conta de IA generativa filtra a recuperação apenas ao que esse usuário pode ver.

  1. Forneça arquivos de metadados (classificação, unidade de negócio, tenant, timestamps) para cada documento ingerido para que cada vetor fique marcado.
    Conta de IA generativa Amazon Bedrock Amazon S3
  2. Na conta de aplicação, derive o filtro dos atributos do usuário autenticado (claims do Cognito/Identity Center) e passe-o em cada chamada de recuperação.
    Conta de aplicação Amazon Cognito IAM Identity Center
  3. Aplique o filtro de metadados em cada consulta à base de conhecimento do Bedrock para que a recuperação nunca retorne documentos acima do nível do usuário nem de outro tenant.
    Conta de aplicação → Conta de IA generativa Amazon Bedrock

Como validar: Os vetores carregam metadados de classificação/tenant; um usuário de teste não consegue recuperar documentos acima do seu nível nem de outro tenant; o filtro é definido no lado do servidor em cada consulta.

Evite: Confiar que o cliente envie o filtro correto. Derive-o da identidade autenticada no lado do servidor para que uma requisição adulterada não possa ampliar a recuperação.

OU de IA generativa (multi-conta) →

Os vetores são marcados com metadados de classificação/tenant e a camada de aplicação filtra a recuperação pelos atributos do usuário autenticado em cada consulta.

  1. Anexe metadados (classificação, tenant, unidade de negócio, datas) a cada documento ingerido.
    Camada de IA generativa (papel IAM) Amazon Bedrock Amazon S3
  2. Derive o filtro de recuperação dos claims do usuário autenticado e defina-o em cada consulta à base de conhecimento.
    Camada de aplicação (papel IAM) Amazon Cognito Amazon Bedrock
  3. Verifique que um usuário não consiga recuperar acima do seu nível nem entre tenants.
    Camada de aplicação (papel IAM) Amazon Bedrock

Como validar: Os vetores carregam metadados; as consultas filtram por atributos de usuário; um usuário de teste não consegue cruzar fronteiras de classificação nem de tenant.

Evite: Um único índice compartilhado sem filtro por usuário. Marque os vetores e filtre por identidade para que o RAG respeite o mesmo controle de acesso dos dados de origem.

Conta única (ponto de entrada) →

Ameaças atendidas

  • A IA expondo dados que o usuário que consulta não está autorizado a ver.
  • Exposição de dados entre tenants em vector stores compartilhados.

Serviços AWS

Amazon Bedrock Knowledge Bases

Preços

A filtragem por metadados não adiciona cobrança à parte: você paga a recuperação do knowledge base, os embeddings e os custos do vector store normais. A filtragem pode até reduzir um pouco o custo ao diminuir o conjunto de candidatos que o modelo precisa processar. Consulte Configure and customize queries and response generation.

Mapeamentos 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 aprendizado

Referências

  • AWS SRA para IA — Capacidade 3, Filtragem por metadados para recuperação segura