

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

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

## Políticas de bucket para cuentas múltiples y acceso KMS-encrypted
<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 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
<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 de bucket. {{kb-account-id}}Sustitú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 ](bedrock/latest/userguide/s3-bucket-access.html) de Amazon S3.

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

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.

1. **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](#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 de 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**, introduzca un nombre para la 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 la 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 agregar patrones de expresiones regulares para incluir o excluir 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 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](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 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](kb-managed-ds-s3-acl.md).

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

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 conector`connectorParameters`. Para ver los campos que se `connectorParameters` agrupan (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 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](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. Obligatorio cuando aclEnabled estrue; 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>

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