

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
<a name="kb-managed-ds-s3"></a>

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
<a name="kb-managed-supported-features-s3"></a>
+ 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
<a name="kb-managed-prereqs-s3"></a>

**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](#kb-managed-s3-bucket-policies).

**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, consulte[Permisos de acceso a los orígenes de datos](kb-permissions.md#kb-permissions-access-ds).

## Políticas de bucket para el acceso y KMS-encrypted el acceso entre cuentas
<a name="kb-managed-s3-bucket-policies"></a>

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
<a name="kb-managed-s3-cross-account-policy"></a>

En la cuenta propietaria del bucket de Amazon S3, añada la siguiente declaración a la política del bucket. {{kb-account-id}}Sustitú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](https://docs.aws.amazon.com/bedrock/latest/userguide/s3-bucket-access.html).

### Política de claves de KMS para depósitos cifrados
<a name="kb-managed-s3-kms-policy"></a>

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
<a name="kb-managed-s3-workflow"></a>

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.

1. **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](#kb-managed-ds-s3-create).

1. **(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](kb-managed-ds-s3-acl.md).

## Cree la fuente de datos
<a name="kb-managed-ds-s3-create"></a>

------
#### [ 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.

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

1. 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**.

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

1. (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.

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

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

1. (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](kb-managed-ds-s3-acl.md).

------
#### [ API ]

Para crear una fuente de datos de Amazon S3, envíe una [CreateDataSource](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_CreateDataSource.html)solicitud 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 con`aclConfiguration`. `globalAccessControlListS3Uri` Consulte [Document-level controles de acceso](kb-managed-ds-s3-acl.md).

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
<a name="kb-managed-config-s3"></a>

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 conector`connectorParameters`. Para ver los campos que lo `connectorParameters` rodean (como `deletionProtectionConfiguration` y`mediaExtractionConfiguration`), consulte[Conexión de un origen de datos](kb-managed-connect-ds.md).


**connectionConfiguration**  

| Campo | Obligatorio | Descripción | 
| --- | --- | --- | 
| bucketName | Sí | 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](kb-managed-ds-s3-acl.md). | 
| 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](kb-managed-ds-s3-acl.md). | 

### Archivos de metadatos del documento
<a name="kb-managed-s3-metadata-files"></a>

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 ejemplo`report.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](https://docs.aws.amazon.com/bedrock/latest/userguide/kb-test-config.html).