

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Amazon S3
<a name="kb-managed-ds-s3"></a>

Amazon S3 est un service de stockage d’objets qui stocke les données en tant qu’objets dans des compartiments. Vous pouvez connecter un compartiment Amazon S3 en tant que source de données pour votre base de connaissances gérée afin d'ingérer les objets que vous y stockez.

## Fonctionnalités prises en charge
<a name="kb-managed-supported-features-s3"></a>
+ Documentez les champs de métadonnées via des fichiers de métadonnées distincts
+ Filtres de contenu d'inclusion et d'exclusion à l'aide de modèles de fichiers et de préfixes clés S3
+ Synchronisation incrémentielle du contenu pour le contenu ajouté, mis à jour et supprimé
+ Cross-account Accès au compartiment Amazon S3
+ Document-level contrôle d'accès (ACL), avec des fichiers ACL fournis par le client

## Conditions préalables
<a name="kb-managed-prereqs-s3"></a>

**Dans Amazon S3** :
+ Notez le nom du compartiment Amazon S3 et l'ID de AWS compte du propriétaire du compartiment. Le bucket doit être un bucket à usage général situé dans la même AWS région que votre base de connaissances, et vous devez être autorisé à y accéder.
+ Si le compartiment se trouve dans un AWS compte différent de celui de la base de connaissances, ou s'il est chiffré à l'aide d'une clé KMS gérée par le client, configurez la politique de compartiment et (le cas échéant) la politique de clé KMS pour autoriser l'accès depuis votre rôle de service de base de connaissances. Consultez [Politiques relatives aux compartiments pour les comptes multiples et l'accès KMS-encrypted](#kb-managed-s3-bucket-policies).

**Dans votre AWS compte, assurez-vous** de :
+ Incluez les autorisations nécessaires pour vous connecter à votre source de données dans votre role/permissions politique Gestion des identités et des accès AWS (IAM) pour votre base de connaissances. Pour plus d'informations sur les autorisations requises, consultez[Autorisations d’accès aux sources de données](kb-permissions.md#kb-permissions-access-ds).

## Politiques relatives aux compartiments pour les comptes multiples et l'accès KMS-encrypted
<a name="kb-managed-s3-bucket-policies"></a>

Si votre compartiment Amazon S3 se trouve dans un AWS compte différent de celui de votre base de connaissances, ou s'il est chiffré à l'aide d'une clé KMS gérée par le client, ajoutez une politique basée sur les ressources pour accorder l'accès aux rôles de service de votre base de connaissances. Les exemples suivants indiquent le nombre minimum d'instructions requises.

### Cross-account politique relative aux compartiments
<a name="kb-managed-s3-cross-account-policy"></a>

Dans le compte propriétaire du compartiment Amazon S3, ajoutez l'instruction suivante à la politique du compartiment. {{kb-account-id}}Remplacez-le par l'ID du compte sur lequel votre base de connaissances a été créée, {{kb-service-role}} par le nom de votre rôle de service de base de connaissances et {{bucket-name}} par le nom de votre 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}}/*"
            ]
        }
    ]
}
```

Pour obtenir des conseils plus généraux, consultez [Configurer l'accès aux compartiments Amazon S3](https://docs.aws.amazon.com/bedrock/latest/userguide/s3-bucket-access.html).

### Politique relative aux clés KMS pour les compartiments chiffrés
<a name="kb-managed-s3-kms-policy"></a>

Si votre compartiment Amazon S3 est chiffré à l'aide d'une clé KMS gérée par le client, ajoutez la déclaration suivante à la politique en matière de clés. Utilisez les mêmes espaces réservés que dans la politique relative aux compartiments entre comptes. Attendez quelques minutes pour que les principaux changements de politique se propagent.

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

Le champ d'application `"Resource": "*"` ici correspond à la clé à laquelle la politique est attachée.

## Comment configurer une source de données Amazon S3
<a name="kb-managed-s3-workflow"></a>

La configuration d'une source de données Amazon S3 implique les étapes suivantes :

1. **Préparez votre seau.** Confirmez le nom du compartiment, l'ID du compte et (pour l'accès entre comptes) la politique du compartiment. Si vous prévoyez d'utiliser des métadonnées de documents, choisissez le préfixe Amazon S3 dans lequel se trouvent vos `.metadata.json` fichiers.

1. **Connectez la source de données.** Créez la source de données Amazon S3 dans la base de connaissances à l'aide de l'API AWS Management Console ou de l'API. Consultez [Création de la source de données](#kb-managed-ds-s3-create).

1. **(Facultatif) Activez le contrôle d'accès au niveau du document.** Filtrez les résultats des requêtes en fonction des autorisations utilisateur définies dans les fichiers ACL fournis par le client. Consultez [Document-level contrôles d'accès](kb-managed-ds-s3-acl.md).

## Création de la source de données
<a name="kb-managed-ds-s3-create"></a>

------
#### [ Console ]

**Pour connecter un compartiment Amazon S3 à votre base de connaissances gérée**

1. Sous **Source de données**, donnez un nom à votre source de données.

1. Sélectionnez **Amazon S3** dans le menu déroulant des sources de données.

1. Sous **Emplacement de la source de données**, indiquez si le compartiment Amazon S3 se trouve dans **ce compte AWS** ou dans un **autre compte AWS**.

1. Entrez l'URI Amazon S3 de votre compartiment. Vous pouvez choisir **Browse S3** pour sélectionner un compartiment.

1. (Facultatif) Entrez un **préfixe de fichiers de métadonnées**, le préfixe Amazon S3 dans lequel les fichiers de métadonnées de document (`.metadata.json`) sont stockés pour cette source de données.

1. (Facultatif) Développez les **modèles de filtres de préfixes S3** pour inclure ou exclure des chemins spécifiques.

1. (Facultatif) Développez **les modèles de filtre de fichiers** pour ajouter des modèles regex afin d'inclure ou d'exclure des fichiers spécifiques.

1. (Facultatif) Pour activer le contrôle d'accès au niveau du **document, sélectionnez Contrôler l'accès aux documents avec des ACL** et fournissez l'URI Amazon S3 de votre fichier ACL global. Cette option ne peut pas être modifiée après sa création. Pour en savoir plus, consultez [Document-level contrôles d'accès](kb-managed-ds-s3-acl.md).

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

Pour créer une source de données Amazon S3, envoyez une [CreateDataSource](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_CreateDataSource.html)demande avec un point de terminaison Agents for Amazon Bedrock Build-time. L' AWS Command Line Interface exemple suivant crée une source de données pour un bucket du même compte, avec des filtres de préfixes et de modèles. Pour une description de chaque champ, reportez-vous à la référence des paramètres du connecteur ci-dessous.

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

Le `s3-managed-connector.json` fichier contient les éléments suivants :

```
{
    "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/}}"
        }
    }
}
```

Pour activer le contrôle d'accès au niveau du document, définissez `aclEnabled` `true` et ajoutez un `aclConfiguration` with. `globalAccessControlListS3Uri` Consultez [Document-level contrôles d'accès](kb-managed-ds-s3-acl.md).

Pour les bases de connaissances gérées, `CreateDataSource` c'est asynchrone : le statut de la source de données passe de « `CREATING` à » `AVAILABLE` lorsque l'opération est terminée.

------

## Paramètres du connecteur
<a name="kb-managed-config-s3"></a>

La configuration de la source de données utilise les paramètres de connecteur suivants. Pour vous connecter à Amazon S3, spécifiez `S3` le type de connecteur`connectorParameters`. Pour les champs encapsulés `connectorParameters` (tels que `deletionProtectionConfiguration` et`mediaExtractionConfiguration`), reportez-vous à la section[Connexion d’une sources de données](kb-managed-connect-ds.md).


**connectionConfiguration**  

| Champ | Obligatoire | Description | 
| --- | --- | --- | 
| bucketName | Oui | Le nom du compartiment Amazon S3. | 
| bucketOwnerAccountId | Conditionnel | L'ID de AWS compte du propriétaire du compartiment. Nécessaire pour l'accès entre comptes. | 


**Configuration du filtre (facultatif)**  

| Champ | Obligatoire | Description | 
| --- | --- | --- | 
| inclusionPrefixes | Non | Liste des préfixes clés Amazon S3 à inclure (par exemple,documents/). | 
| exclusionPrefixes | Non | Liste des préfixes clés Amazon S3 à exclure (par exemple,archive/). | 
| inclusionPatterns | Non | Liste des expressions régulières. Seuls les objets dont les clés correspondent à au moins un modèle sont ingérés. | 
| exclusionPatterns | Non | Liste des expressions régulières. Les objets dont les clés correspondent à n'importe quel modèle ne sont pas ingérés. | 
| maxFileSizeInMegaBytes | Non | Taille maximale, en mégaoctets, de tout fichier ingéré par le connecteur. Fournissez-le sous forme de chaîne numérique (par exemple,"500"). La valeur par défaut est "500" . | 


**Top-level paramètres du connecteur (facultatif)**  

| Champ | Obligatoire | Description | 
| --- | --- | --- | 
| metadataFilesPrefix | Non | Le préfixe Amazon S3 dans lequel les fichiers de métadonnées du document (.metadata.json) sont stockés. | 
| aclEnabled | Non | Définissez sur pour true activer le contrôle d'accès au niveau du document. Vous ne pouvez pas modifier ce paramètre après avoir créé la source de données. Pour en savoir plus, consultez [Document-level contrôles d'accès](kb-managed-ds-s3-acl.md). | 
| aclConfiguration | Conditionnel | Contient globalAccessControlListS3Uri : l'URI Amazon S3 d'un fichier JSON qui associe les préfixes clés aux entrées de contrôle d'accès. Obligatoire quand aclEnabled c'est le cas true ; ignoré quand aclEnabled c'est le casfalse. Consultez [Document-level contrôles d'accès](kb-managed-ds-s3-acl.md). | 

### Fichiers de métadonnées de documents
<a name="kb-managed-s3-metadata-files"></a>

Vous pouvez joindre des métadonnées à chaque document en téléchargeant un fichier annexe à celui-ci. Pour chaque document, créez un fichier nommé `{{filename.extension}}.metadata.json` dans le même chemin Amazon S3. Le fichier de métadonnées ne doit pas dépasser 10 Ko. Par exemple`report.pdf`, chargez en parallèle `report.pdf.metadata.json` avec le contenu suivant :

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

Pour plus d'informations sur les types de données attributaires pris en charge et les opérateurs de filtrage que vous pouvez appliquer au moment de la requête, consultez la section [Métadonnées et filtrage](https://docs.aws.amazon.com/bedrock/latest/userguide/kb-test-config.html).