Passer au contenu principal

Présentation

La source S3 récupère des fichiers de données depuis un bucket Amazon S3 ou tout service de stockage compatible S3 (par ex. MinIO, DigitalOcean Spaces, OVH Object Storage). Utilisez-la lorsque vos données sont stockées sous forme de fichiers dans S3 et que vous souhaitez les importer dans Reelevant pour la personnalisation.

Configuration

Champs obligatoires

Champs optionnels

Pour AWS S3 standard, la accessKey doit appartenir à un utilisateur ou rôle IAM disposant au minimum des permissions s3:GetObject et s3:ListBucket sur le bucket cible. Avec assumeRole, c’est le rôle qui doit les posséder, et les clés peuvent être omises.

Accès inter-comptes avec AssumeRole

Lorsque le bucket appartient à votre propre compte AWS, vous pouvez préférer ne pas confier à Reelevant une clé qui le lit directement. Créez plutôt dans votre compte un rôle IAM que Reelevant est autorisé à endosser. Reelevant obtient des identifiants temporaires pour ce rôle, puis les utilise pour lister et télécharger les fichiers. Renseignez le champ assumeRole avec les options suivantes : bucket, path, region et les autres options conservent la même signification.

Avec les identifiants de Reelevant (recommandé)

Laissez accessKey et secretKey vides et renseignez uniquement assumeRole.roleArn. Reelevant endosse d’abord son propre rôle reelevant-customers-access, puis endosse votre rôle depuis celui-ci. Rien n’est à créer côté Reelevant pour un nouveau client. Sur votre compte AWS, configurez le rôle ainsi :
  1. Trust policy : autorisez l’action sts:AssumeRole pour le principal et la condition ci-dessous.
  2. Permissions policy : accordez s3:ListBucket sur le bucket et s3:GetObject sur les objets sous le path configuré. Si le bucket utilise le chiffrement SSE-KMS, accordez aussi kms:Decrypt sur la clé.
  3. Durée de session maximale : conservez-la supérieure ou égale à durationSeconds.
L’external ID est votre ID de société Reelevant, que vous pouvez obtenir auprès de votre Technical Account Manager. Reelevant l’envoie systématiquement : une autre société Reelevant ne peut donc pas endosser votre rôle, même si elle connaît son ARN.
Reelevant endosse votre rôle depuis un autre rôle (role chaining) : AWS limite donc chaque session à une heure. Reelevant renouvelle les identifiants automatiquement avant leur expiration, les imports longs ne sont pas affectés.

Avec vos propres identifiants

Renseignez dans accessKey et secretKey la clé d’un utilisateur IAM autorisé à endosser le rôle, puis configurez la trust policy du rôle pour cet utilisateur. Si vous utilisez un externalId, ajoutez une condition exigeant que sts:ExternalId soit égal à cette valeur.
La configuration de la Datasource est rejetée si une seule des clés accessKey et secretKey est renseignée, ou si roleArn n’est pas un ARN de rôle IAM valide. Elle l’est aussi si durationSeconds est hors limites, ou si externalId est vide ou renseigné avec les identifiants de Reelevant. accessKey, secretKey et externalId sont stockés comme champs sensibles et ne sont jamais affichés une fois enregistrés. Les identifiants temporaires sont conservés uniquement en mémoire.

Services compatibles S3

La source S3 fonctionne avec tout service implémentant l’API S3. Définissez endpoint sur l’URL de votre fournisseur : | Fournisseur | Exemple d’endpoint | ||-----------------| | AWS S3 | https://s3.amazonaws.com (par défaut) | | MinIO | https://minio.example.com | | DigitalOcean Spaces | https://nyc3.digitaloceanspaces.com | | OVH Object Storage | https://s3.gra.io.cloud.ovh.net | | Scaleway | https://s3.fr-par.scw.cloud |

Formats de fichiers pris en charge

S3 détecte automatiquement le format du fichier. Les formats suivants sont pris en charge :
Les fichiers compressés (.gz, .zip) sont automatiquement décompressés avant le parsing.

Déchiffrement PGP

La source S3 prend en charge les fichiers chiffrés PGP. Lorsque pgpPrivateKey est configuré, les fichiers sont déchiffrés de manière transparente avant la décompression et le parsing. Les fichiers chiffrés armored (.asc) et binary (.pgp, .gpg) sont pris en charge.
Consultez le guide de déchiffrement PGP pour plus de détails sur la génération de clés, les formats pris en charge et la gestion des erreurs.

Chemins wildcards

Vous pouvez utiliser un wildcard (*) dans le chemin du fichier pour correspondre à plusieurs fichiers. Cela est utile lorsque :
  • Un nouveau fichier est exporté périodiquement avec un nom différent (par ex. exports/products_20240101.csv, exports/products_20240102.csv)
  • Les données sont réparties sur plusieurs fichiers dans le même répertoire
Exemples de patterns :
  • exports/products_*.csv — correspond à tous les fichiers CSV commençant par products_ dans le préfixe exports/
  • data/*.json — correspond à tous les fichiers JSON sous le préfixe data/

Modes de traitement des fichiers

Lors de l’utilisation de chemins wildcards, vous pouvez configurer la manière dont les fichiers sont sélectionnés via le champ processType : Pour exclure les fichiers correspondants modifiés avant une date donnée, définissez ignoreFilesBefore ; consultez Ignorer les fichiers antérieurs à une date.

Fonctionnement

  1. Reelevant s’authentifie auprès de S3 avec la clé d’accès et la clé secrète fournies. Avec assumeRole, il obtient d’abord des identifiants temporaires du rôle configuré, avec les identifiants de Reelevant si aucune clé n’est renseignée.
  2. Le bucket et le chemin spécifiés sont accédés. Si un wildcard est utilisé, les objets correspondants sont listés.
  3. Les fichiers sont téléchargés, décompressés si nécessaire, et parsés selon le format détecté.
  4. Les champs sont extraits et rendus disponibles pour le mapping.
  5. Lors des synchronisations suivantes, les fichiers sont rerécupérés selon le mode de traitement configuré.
Assurez-vous que l’utilisateur ou le rôle IAM dispose des permissions s3:GetObject et s3:ListBucket sur le bucket cible. Pour les services compatibles S3, assurez-vous que les permissions de lecture équivalentes sont accordées.