View a markdown version of this page

Document-level controles de acceso - Amazon Bedrock

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Document-level controles de acceso

El conocimiento de la ACL no es autorización

Bedrock Managed Knowledge Base proporciona ACL-aware filtros, no límites de seguridad. Bedrock Managed Knowledge Base no autentica a los usuarios finales; su aplicación es responsable de autenticar a los usuarios y de pasar el contexto de identidad verificado. Dado que Bedrock Managed Knowledge Base no puede verificar la autenticidad del contexto de usuario que usted proporciona, esta función filtra los resultados en función de la identidad que proporciona, pero no constituye una autorización verdadera. No debe confiar en esta función como único mecanismo de control de acceso sin una autenticación previa.

Las fuentes de datos de Amazon S3 admiten opcionalmente el control de acceso a nivel de documento. A diferencia de otros conectores, Amazon S3 no tiene un sistema de permisos nativo para rastrear, por lo que puede definir las ACL mediante los archivos de configuración que administra. Para obtener información general sobre el reconocimiento de las ACL en todos los conectores, consulte. Habilitación del conocimiento de las listas de control de acceso

Funcionamiento

En el caso de una fuente de datos de ACL-enabled Amazon S3, Bedrock Managed Knowledge Base aplica las listas de control de acceso proporcionadas por el cliente durante el filtrado previo a la recuperación, y solo devuelve los documentos a los que el usuario que realiza la consulta tiene permiso de acceso. Real-time La verificación de la ACL no es compatible con Amazon S3 porque los metadatos de la ACL proporcionados por el cliente son la fuente de la verdad.

Habilite el reconocimiento de ACL

Para habilitar el reconocimiento de las ACL true en una fuente de datos de Amazon S3, aclEnabled defina connectorParameters y defina los permisos de acceso mediante uno de los dos métodos siguientes:

  • Archivo de configuración de ACL global: un archivo JSON único y centralizado que define los permisos de acceso a nivel de carpeta (prefijo). Ideal para organizaciones con estructuras de permisos estables. Los cambios en el archivo global requieren volver a indexar el prefijo afectado.

  • Document-level archivos de metadatos: cada documento tiene su propio archivo de metadatos que contiene información de control de acceso. Esto permite actualizar los índices con mayor rapidez cuando cambian los permisos, ya que solo es necesario volver a indexar los documentos afectados.

importante

En el ACL-enabled caso de las fuentes de datos de Amazon S3, los documentos sin una entrada de ACL asociada no se ingieren. Asegúrese de que cada documento tenga una ACL definida mediante el archivo de ACL global o en su archivo de metadatos.

"connectorParameters": { "type": "S3", "version": "1", "aclEnabled": true, "connectionConfiguration": { "bucketName": "your-bucket-name", "bucketOwnerAccountId": "123456789012" }, "aclConfiguration": { "globalAccessControlListS3Uri": "s3://your-bucket-name/acl/global-acl.json" } }

Estructura de archivos de ACL global

El archivo ACL global es una matriz JSON en la que cada entrada asigna un prefijo clave a un conjunto de entradas de control de acceso. Cada una keyPrefix es la URI absoluta de Amazon S3 de una carpeta (que se aplica a todos los documentos incluidos en ella) o de un documento individual.

[ { "keyPrefix": "s3://your-bucket-name/finance/", "aclEntries": [ { "Name": "user1@example.com", "Type": "USER", "Access": "ALLOW" } ] } ]

Cada aclEntries elemento contiene:

  • Name— La dirección de correo electrónico de un usuario.

  • Type— Debe serloUSER.

  • Access— Ya sea ALLOW oDENY. Denegar las anulaciones permiten.

Per-document archivos de metadatos

Como alternativa al archivo ACL global, puede definir las ACL por documento mediante archivos de metadatos. Para cada documento, cree un archivo con el nombre de filename.metadata.json la misma ruta de Amazon S3. Incluya una accessControlList matriz con el mismo formato de entrada que el archivo global.

{ "metadataAttributes": {}, "accessControlList": [ { "Name": "user1@example.com", "Type": "USER", "Access": "ALLOW" }, { "Name": "user2@example.com", "Type": "USER", "Access": "DENY" } ] }

Per-document los metadatos tienen prioridad sobre el archivo ACL global. Si un documento tiene una entrada de prefijo global coincidente y un archivo de metadatos por documento, se utilizan los metadatos por documento.

nota

El archivo de configuración de la ACL debe almacenarse en el mismo bucket de Amazon S3 que el contenido de la fuente de datos.

Verificación de la configuración

Dado que las ACL de Amazon S3 las proporciona el cliente, valídelas antes de realizar la consulta:

  1. Confirme aclEnabled que está true en la fuente de datos. connectorParameters

  2. Confirme que todos los documentos tengan una ACL, ya sea una entrada en el archivo ACL global o un .metadata.json archivo por documento. Los documentos sin una ACL no se ingieren.

  3. Valide el JSON de la ACL: cada entrada contiene Name (correo electrónico del usuarioUSER), Type () y Access (ALLOWoDENY), y los archivos de la ACL se encuentran en el mismo depósito que su contenido.

  4. Confirma que el correo electrónico de un usuario de prueba coincide exactamente con el Name de una ALLOW entrada de un documento que esperas que recupere.

Resolución de problemas

nota

Las configuraciones incorrectas de la ACL no producen errores explícitos durante la recuperación. Los errores de recuperación se resuelven: los documentos afectados se omiten de forma silenciosa, por lo que una consulta arroja menos o ningún resultado en lugar de un error. Utilice las comprobaciones de verificación anteriores para diagnosticar estos problemas.

ACL-enabled Síntomas, causas y soluciones de Amazon S3
Síntoma Causa probable Fix
Retrieve devuelve 0 resultados para un usuario que debería tener acceso. El correo electrónico del usuario no coincide con ninguna entrada de la ACL (el correo electrónico no coincide). Asegúrese de que la ACL Name coincida exactamente con el correo electrónico del usuario.
Nunca se devuelve un documento a nadie. El documento no tiene ninguna entrada de ACL, por lo que no se ingirió. Agregue una ACL para el documento a través del archivo de ACL global o un archivo por documento y, a continuación, vuelva a .metadata.json sincronizarlo.
La ACL por documento no surte efecto. El nombre del .metadata.json archivo es incorrecto o la ruta es incorrecta. Asígnele el nombre filename.metadata.json en la misma ruta de S3; los metadatos por documento anulan el archivo global.
Los cambios en la ACL no se reflejan. Los cambios globales en los archivos de ACL requieren volver a indexar el prefijo afectado. Vuelva a sincronizar el prefijo afectado.