View a markdown version of this page

Amazon S3 - 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.

Amazon S3

Amazon S3 es un servicio de almacenamiento de objetos que almacena datos como objetos dentro de buckets. Puede conectar un bucket de Amazon S3 como fuente de datos para que su base de conocimientos gestionada incorpore los objetos que almacena allí.

Características admitidas

  • Documente los campos de metadatos mediante archivos de metadatos independientes

  • Filtra el contenido de inclusión y exclusión mediante patrones de archivos y prefijos clave S3

  • El contenido incremental se sincroniza para añadir, actualizar y eliminar contenido

  • Cross-account Acceso al bucket de Amazon S3

  • Document-level control de acceso (ACL), con archivos ACL proporcionados por el cliente

Requisitos previos

En Amazon S3, asegúrese de:

  • Anote el nombre del bucket de Amazon S3 y el ID de AWS cuenta del propietario del bucket. El bucket debe ser de uso general y estar en la misma AWS región que tu base de conocimientos y debes tener permiso para acceder a él.

  • Si el depósito está en una AWS cuenta diferente a la de la base de conocimientos o si está cifrado con una clave de KMS gestionada por el cliente, configure la política de depósito y (si procede) la política de claves de KMS para permitir el acceso desde su función de servicio de la base de conocimientos. Consulte Políticas de bucket para el acceso y KMS-encrypted el acceso entre cuentas.

En su AWS cuenta, asegúrese de:

  • Incluya los permisos necesarios para conectarse a su fuente de datos en la role/permissions política AWS Identity and Access Management (de IAM) de su base de conocimientos. Para obtener información sobre los permisos necesarios, consultePermisos de acceso a los orígenes de datos.

Políticas de bucket para el acceso y KMS-encrypted el acceso entre cuentas

Si su bucket de Amazon S3 está en una AWS cuenta diferente a la de su base de conocimientos o si está cifrado con una clave de KMS gestionada por el cliente, añada una política basada en recursos para conceder a su función de servicio de base de conocimientos acceso. En los siguientes ejemplos se muestran las instrucciones mínimas obligatorias.

Cross-account política de cubos

En la cuenta propietaria del bucket de Amazon S3, añada la siguiente declaración a la política del bucket. kb-account-idSustitúyalo por el ID de cuenta en el que se creó la base de conocimientos, kb-service-role por el nombre de la función de servicio de la base de conocimientos y bucket-name por el nombre del bucket.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowBedrockKnowledgeBaseAccess", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::kb-account-id:role/kb-service-role" }, "Action": [ "s3:GetObject", "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::bucket-name", "arn:aws:s3:::bucket-name/*" ] } ] }

Para obtener información más general, consulte Configurar el acceso a los buckets de Amazon S3.

Política de claves de KMS para depósitos cifrados

Si su bucket de Amazon S3 está cifrado con una clave de KMS administrada por el cliente, añada la siguiente declaración a la política de claves. Utilice los mismos marcadores de posición que en la política de depósitos multicuenta. Espere unos minutos para que se propaguen los cambios clave de la política.

{ "Sid": "AllowBedrockKnowledgeBaseKmsAccess", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::kb-account-id:role/kb-service-role" }, "Action": [ "kms:Decrypt", "kms:DescribeKey" ], "Resource": "*" }

"Resource": "*"Aquí se refiere a la clave a la que se adjunta la política.

Cómo configurar una fuente de datos de Amazon S3

La configuración de una fuente de datos de Amazon S3 implica los siguientes pasos:

  1. Prepare su depósito. Confirma el nombre del bucket, el ID de la cuenta y (para el acceso entre cuentas) la política del bucket. Si planea usar metadatos de documentos, elija el prefijo Amazon S3 donde se encuentran sus .metadata.json archivos.

  2. Conecta la fuente de datos. Cree la fuente de datos de Amazon S3 en la base de conocimientos mediante la Consola de administración de AWS o la API. Consulte Cree la fuente de datos.

  3. (Opcional) Habilite el control de acceso a nivel de documento. Filtre los resultados de las consultas según los permisos de usuario definidos en los archivos ACL proporcionados por el cliente. Consulte Document-level controles de acceso.

Cree la fuente de datos

Console
Para conectar un bucket de Amazon S3 a su base de conocimientos gestionada
  1. En Fuente de datos, proporcione un nombre para su fuente de datos.

  2. Seleccione Amazon S3 en el menú desplegable de fuentes de datos.

  3. En Ubicación de la fuente de datos, elija si el bucket de Amazon S3 está en Esta cuenta de AWS o en otra cuenta de AWS.

  4. Introduzca el URI de Amazon S3 de su bucket. Puede elegir Browse S3 para seleccionar un bucket.

  5. (Opcional) Introduzca un prefijo de archivos de metadatos: el prefijo de Amazon S3 en el que se almacenan los archivos de metadatos del documento (.metadata.json) para esta fuente de datos.

  6. (Opcional) Amplíe los patrones de filtro de prefijos de S3 para incluir o excluir rutas específicas.

  7. (Opcional) Amplíe los patrones de filtro de archivos para añadir patrones de expresiones regulares que incluyan o excluyan archivos específicos.

  8. (Opcional) Para habilitar el control de acceso a nivel de documento, seleccione Controlar el acceso a los documentos con ACL y proporcione el URI de Amazon S3 de su archivo ACL global. Esta opción no se puede cambiar después de la creación. Para obtener más información, consulte Document-level controles de acceso.

API

Para crear una fuente de datos de Amazon S3, envíe una CreateDataSourcesolicitud con un punto final de tiempo de compilación de Agents for Amazon Bedrock. En el siguiente AWS Command Line Interface ejemplo, se crea una fuente de datos para un depósito de la misma cuenta, con filtros de prefijos y patrones. Para obtener una descripción de cada campo, consulte la siguiente referencia de parámetros del conector.

aws bedrock-agent create-data-source \ --name "S3-connector" \ --knowledge-base-id "your-knowledge-base-id" \ --data-source-configuration file://s3-managed-connector.json

El s3-managed-connector.json archivo contiene lo siguiente:

{ "type": "MANAGED_KNOWLEDGE_BASE_CONNECTOR", "managedKnowledgeBaseConnectorConfiguration": { "connectorParameters": { "type": "S3", "version": "1", "connectionConfiguration": { "bucketName": "my-knowledge-base-bucket", "bucketOwnerAccountId": "123456789012" }, "filterConfiguration": { "inclusionPrefixes": ["documents/"], "inclusionPatterns": [".*\\.pdf", ".*\\.txt"], "exclusionPatterns": [".*\\.tmp"] }, "metadataFilesPrefix": "metadata/" } } }

Para habilitar el control de acceso a nivel de documento, aclEnabled configúrelo true y agréguelo conaclConfiguration. globalAccessControlListS3Uri Consulte Document-level controles de acceso.

En el caso de las bases de conocimiento gestionadas, CreateDataSource es asíncrono: el estado de la fuente de datos pasa de un estado CREATING a AVAILABLE otro cuando se completa la operación.

Parámetros de conector

La configuración de la fuente de datos utiliza los siguientes parámetros de conector. Para conectarse a Amazon S3, especifique S3 el tipo de conectorconnectorParameters. Para ver los campos que lo connectorParameters rodean (como deletionProtectionConfiguration ymediaExtractionConfiguration), consulteConexión de un origen de datos.

connectionConfiguration
Campo Obligatorio Descripción
bucketName El nombre del bucket de Amazon S3.
bucketOwnerAccountId Condicional El ID de AWS cuenta del propietario del bucket. Necesario para el acceso entre cuentas.
Configuración del filtro (opcional)
Campo Obligatorio Description (Descripción)
inclusionPrefixes No Lista de prefijos clave de Amazon S3 que se van a incluir (por ejemplo,documents/).
exclusionPrefixes No Lista de prefijos clave de Amazon S3 que se van a excluir (por ejemplo,archive/).
inclusionPatterns No Lista de expresiones regulares. Solo se ingieren los objetos cuyas claves coincidan con al menos un patrón.
exclusionPatterns No Lista de expresiones regulares. Los objetos cuyas claves coincidan con algún patrón no se ingieren.
maxFileSizeInMegaBytes No Tamaño máximo, en megabytes, de cualquier archivo individual que ingiera el conector. Introdúzcalo como cadena numérica (por ejemplo,). "500" El valor predeterminado es "500".
Top-level parámetros del conector (opcional)
Campo Obligatorio Description (Descripción)
metadataFilesPrefix No El prefijo Amazon S3 donde se almacenan los archivos de metadatos de los documentos (.metadata.json).
aclEnabled No Configúrelo true para habilitar el control de acceso a nivel de documento. No puede cambiar esta configuración después de crear la fuente de datos. Para obtener más información, consulte Document-level controles de acceso.
aclConfiguration Condicional ContieneglobalAccessControlListS3Uri: el URI de Amazon S3 de un archivo JSON que asigna prefijos clave a las entradas de control de acceso. Se requiere cuando aclEnabled estátrue; se ignora cuando aclEnabled esfalse. Consulte Document-level controles de acceso.

Archivos de metadatos del documento

Puede adjuntar metadatos a cada documento cargando un archivo secundario junto a ellos. Para cada documento, cree un archivo con el nombre filename.extension.metadata.json de la misma ruta de Amazon S3. El archivo de metadatos no debe superar los 10 KB. Por ejemploreport.pdf, cárguelo junto report.pdf.metadata.json con el siguiente contenido:

{ "metadataAttributes": { "company": { "value": { "type": "STRING", "stringValue": "BioPharm Innovations" } }, "created_date": { "value": { "type": "NUMBER", "numberValue": 20221205 } }, "author": { "value": { "type": "STRING", "stringValue": "Lisa Thompson" } } } }

Para obtener información sobre los tipos de datos de atributos admitidos y los operadores de filtrado que puede aplicar en el momento de la consulta, consulte Metadatos y filtrado.