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.
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 (deptvsdepartment) exclui ou vaza documentos silenciosamente. Valide o esquema de metadados na ingestão.
Como tudo se encaixa
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.
- Forneça arquivos de metadados (classificação, unidade de negócio, tenant, timestamps) para cada documento ingerido para que cada vetor fique marcado.
- 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.
- 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.
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.
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.
- Anexe metadados (classificação, tenant, unidade de negócio, datas) a cada documento ingerido.
- Derive o filtro de recuperação dos claims do usuário autenticado e defina-o em cada consulta à base de conhecimento.
- Verifique que um usuário não consiga recuperar acima do seu nível nem entre tenants.
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.
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
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
AI Security Maturity Model