As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Document-level controles de acesso
O reconhecimento da ACL não é autorização
A Base de Conhecimento Gerenciada Bedrock fornece ACL-aware filtragem, não um limite de segurança. A Base de Conhecimento Gerenciada da Bedrock não autentica usuários finais — seu aplicativo é responsável por autenticar usuários e transmitir o contexto de identidade verificado. Como a Base de Conhecimento Gerenciada da Bedrock não pode verificar a autenticidade do contexto de usuário que você fornece, esse recurso filtra os resultados com base na identidade que você fornece, mas não constitui uma autorização verdadeira. Você não deve confiar nesse recurso como um único mecanismo de controle de acesso sem a autenticação upstream.
As fontes de dados personalizadas oferecem suporte opcional ao controle de acesso em nível de documento. Ao contrário dos conectores rastreados, uma fonte de dados personalizada não tem um sistema de permissão nativo, então você fornece a lista de controle de acesso (ACL) para cada documento ao ingeri-lo com a operação. IngestKnowledgeBaseDocuments Para obter uma visão geral do reconhecimento de ACL em todos os conectores, consulte. Ativação de conscientização de listas de controle de acesso
Como funciona
Para uma fonte de dados ACL-enabled personalizada, a Base de Conhecimento Gerenciada da Bedrock aplica as listas de controle de acesso fornecidas pelo cliente durante a filtragem de pré-recuperação, retornando somente documentos que o usuário consultor tem permissão para acessar. Real-time A verificação da ACL não é compatível com fontes de dados personalizadas porque os metadados da ACL fornecidos pelo cliente são a fonte da verdade.
Habilite o reconhecimento da ACL
Para habilitar o reconhecimento de ACL para uma fonte de dados personalizada, aclEnabled defina true como connectorParameters quando você cria ou atualiza a fonte de dados. Para a estrutura de configuração da fonte de dados, consultePersonalizada.
"connectorParameters": { "type": "CUSTOM", "version": "1", "aclEnabled": true }
Forneça controles de acesso ao ingerir documentos
Você fornece a ACL de um documento por meio do accessControlList campo do documento metadata na IngestKnowledgeBaseDocuments solicitação. A origem da ACL é determinada pelo metadata.type mesmo campo que controla a origem dos atributos de metadados:
-
IN_LINE_ATTRIBUTE— A ACL é lida daaccessControlListmatriz no corpo da solicitação. -
S3_LOCATION— A ACL é lida daaccessControlListmatriz no.metadata.jsonarquivo do documento no Amazon S3.
Como accessControlList reside abaixo e metadata não como um campo de nível superiorKnowledgeBaseDocument, um documento tem uma única fonte de ACL, controlada por. metadata.type Isso evita que ACLs conflitantes sejam fornecidas para o mesmo documento (por exemplo, uma ACL embutida na solicitação e uma ACL no arquivo S3). A desvantagem é que você não pode misturar uma ACL em linha com atributos de S3-based metadados ou S3-based uma ACL com atributos de metadados em linha para o mesmo documento.
Cada accessControlList entrada contém:
name— O endereço de e-mail de um usuário.type— Deve serUSER.access—ALLOWOuDENY. Negue a permissão de substituições.
ACL embutida (metadata.type = IN_LINE_ATTRIBUTE)
Forneça o accessControlList diretamente no corpo da solicitação junto com os atributos de metadados embutidos.
PUT /knowledgebases/KB12345678/datasources/DS12345678/documents HTTP/1.1 Content-type: application/json { "documents": [ { "content": { "dataSourceType": "CUSTOM", "custom": { "customDocumentIdentifier": { "id": "hr-policy-2026" }, "inlineContent": { "textContent": { "data": "Annual leave policy: All full-time employees are entitled to..." }, "type": "TEXT" }, "sourceType": "IN_LINE" } }, "metadata": { "type": "IN_LINE_ATTRIBUTE", "inlineAttributes": [ { "key": "department", "value": { "stringValue": "HR", "type": "STRING" } } ], "accessControlList": [ { "name": "alice@example.com", "type": "USER", "access": "ALLOW" }, { "name": "bob@example.com", "type": "USER", "access": "DENY" } ] } } ] }
S3-based ACL (metadata.type = S3_LOCATION)
Aponte os metadados do documento para um .metadata.json arquivo no Amazon S3. Tanto os atributos de metadados quanto os accessControlList são lidos desse arquivo.
"metadata": { "type": "S3_LOCATION", "s3Location": { "uri": "s3://amzn-s3-demo-bucket/hr-policy-2026.metadata.json" } }
O .metadata.json arquivo usa o mesmo formato dos arquivos de metadados por documento para fontes de dados do Amazon S3. Esse arquivo usa nomes de campo ACL em maiúsculas (Name,Type,Access), que diferem dos nomes de campo em minúsculas (name,type,access) usados na solicitação embutida.
{ "metadataAttributes": {}, "accessControlList": [ { "Name": "alice@example.com", "Type": "USER", "Access": "ALLOW" }, { "Name": "bob@example.com", "Type": "USER", "Access": "DENY" } ] }
Verificar sua configuração.
Como as ACLs personalizadas são fornecidas pelo clienteIngestKnowledgeBaseDocuments, valide-as antes de consultar:
Confirme
aclEnabledse estátruena fonte de dadosconnectorParameters(typeCUSTOM).Confirme se cada documento ingerido inclui um
accessControlListabaixometadatae quemetadata.typecorresponde à origem da ACL (IN_LINE_ATTRIBUTEpara embutido,S3_LOCATIONpara um arquivo S3).Confirme se a caixa do campo de entrada da ACL corresponde à fonte: minúscula//para ACLs embutidas,
nametype//em maiúsculasaccessNamepara o arquivo S3.TypeAccess.metadata.jsonConfirme se o e-mail de um usuário de teste corresponde exatamente ao da
nameALLOWentrada de um documento que você espera que ele recupere.
Solução de problemas
nota
As configurações incorretas da ACL não produzem erros explícitos durante a recuperação. Falha na recuperação: os documentos afetados são omitidos silenciosamente, então uma consulta retorna menos ou zero resultados em vez de um erro. Use as verificações de verificação acima para diagnosticar esses problemas.
| Sintomas | Causa provável | Correção |
|---|---|---|
| Recuperar retorna 0 resultados para um usuário que deveria ter acesso. | O userId e-mail não corresponde a nenhuma accessControlList entrada. |
Alinhe o e-mail do usuário com o name em uma ALLOW entrada. |
| Uma ACL embutida é rejeitada ou ignorada. | Caixa de campo errada ou metadata.type nãoIN_LINE_ATTRIBUTE. |
Usename/type/em minúsculas access e metadata.type defina como. IN_LINE_ATTRIBUTE |
| Uma S3-based ACL não é aplicada. | metadata.typenão estáS3_LOCATION, ou o .metadata.json arquivo está ausenteaccessControlList. |
metadata.typeDefina S3_LOCATION e inclua accessControlList no arquivo. |
| Um documento nunca é devolvido a ninguém. | O documento foi ingerido sem umaccessControlList. |
Re-ingest o documento com umaccessControlList. |