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 archivo y prefijos clave de S3

  • El contenido incremental se sincroniza para el contenido agregado, actualizado y eliminado

  • Cross-account Acceso al bucket de Amazon S3

  • Document-level control de acceso (ACL), con archivos de 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 un bucket de uso general en la misma AWS región que su base de conocimientos y debe tener permiso para acceder a él.

  • Si el bucket 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, configura la política de bucket y (si corresponde) la política de claves de KMS para permitir el acceso desde tu rol de servicio de la base de conocimientos. Consulte Políticas de bucket para cuentas múltiples y acceso KMS-encrypted.

En tu AWS cuenta, asegúrate de:

  • Incluye los permisos necesarios para conectarte a tu fuente de datos en tu role/permissions política AWS Identity and Access Management (IAM) para tu 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 cuentas múltiples y acceso KMS-encrypted

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 los recursos para conceder a su base de conocimientos el acceso a la función de servicio. En los siguientes ejemplos se muestran las declaraciones mínimas requeridas.

Cross-account política de depósitos

En la cuenta propietaria del bucket de Amazon S3, añada la siguiente declaración a la política de bucket. kb-account-idSustitúyala por la ID de la cuenta en la 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 de tu 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 gestionada 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 cubos multicuenta. Espere unos minutos para que se propaguen los cambios clave en las políticas.

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

"Resource": "*"Esto 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. Prepara tu cubo. Confirma el nombre del bucket, el ID de la cuenta y (para el acceso multicuenta) la política del bucket. Si tiene previsto utilizar metadatos de documentos, elija el prefijo de Amazon S3 en el que se alojarán sus .metadata.json archivos.

  2. Conecte la fuente de datos. Cree la fuente de datos de Amazon S3 en la base de conocimientos mediante la API Consola de administración de AWS o. 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 de 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, introduzca un nombre para la 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 la 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 agregar patrones de expresiones regulares para incluir o excluir 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 la URI de Amazon S3 de su archivo de 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 CreateDataSource solicitud a un punto de enlace en 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 bucket de la misma cuenta, con filtros de prefijos y patrones. Para obtener una descripción de cada campo, consulte la referencia a los parámetros del conector que aparece a continuación.

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 defina true y añada un aclConfiguration ancho. globalAccessControlListS3Uri Consulte Document-level controles de acceso.

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

Parámetros de conector

La configuración de la fuente de datos usa los siguientes parámetros de conector. Para conectarse a Amazon S3, especifique S3 el tipo de conectorconnectorParameters. Para ver los campos que se connectorParameters agrupan (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 identificador de la AWS cuenta del propietario del bucket. Necesario para el acceso multicuenta.
Configuración del filtro (opcional)
Campo Obligatorio Description (Descripción)
inclusionPrefixes No Lista de prefijos clave de Amazon S3 que se deben incluir (por ejemplo,). documents/
exclusionPrefixes No Lista de prefijos de clave de Amazon S3 que se deben excluir (por ejemplo,archive/).
inclusionPatterns No Lista de expresiones regulares. Solo se ingieren 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. Proporciónelo 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 de Amazon S3 donde se almacenan los archivos de metadatos del documento (.metadata.json).
aclEnabled No Configúrelo en 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. Obligatorio cuando aclEnabled estrue; se ignora cuando aclEnabled esfalse. Consulte Document-level controles de acceso.

Archivos de metadatos del documento

Puedes adjuntar metadatos a cada documento cargando un archivo adicional junto a él. Para cada documento, cree un archivo con el nombre de filename.extension.metadata.json la misma ruta de Amazon S3. El archivo de metadatos no debe superar los 10 KB. Por ejemploreport.pdf, súbelo 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 compatibles y los operadores de filtrado que puedes aplicar en el momento de la consulta, consulta Metadatos y filtrado.