OverView DropPoint

Dépôt de fichiers compatible S3, avec des buckets dédiés par organisation

OverView DropPoint est un point de dépôt de fichiers compatible S3. Chaque organisation dispose de ses propres buckets, accessibles avec ses credentials.

Les fichiers se déposent depuis l'interface web OverView, avec l'AWS CLI ou avec un SDK S3. C'est cette compatibilité qui permet d'automatiser les envois, par exemple en planifiant un export quotidien. S3 désigne ici le protocole : DropPoint n'est pas lié à AWS, et les fichiers sont stockés en France, chez un hébergeur français.

Vue d'ensemble

DropPoint offre :

  • Isolation complète entre les organisations
  • Compatibilité AWS CLI pour une intégration facile
  • Buckets S3 dédiés par type de connecteur
  • Hébergement en France, chez un hébergeur français, sans lien avec AWS

Génération des credentials

Étapes pour générer vos credentials

  1. Dans l'application OverView, rendez-vous dans Paramètres > Sécurité > S3 Credentials
  2. Cliquez sur le bouton + pour générer de nouveaux credentials
  3. Vos credentials sont affichés :
    • Access Key ID : Identifiant unique pour votre compte
    • Secret Access Key : Clé secrète (gardez-la confidentielle)
    • S3 Endpoint : https://s3.oversoc.com

Sécurité des credentials

Attention
Important
  • La Secret Access Key n'est visible qu'au moment de la génération
  • Copiez et sauvegardez immédiatement vos credentials
  • Ne partagez jamais vos credentials avec des tiers

Choisir un client

DropPoint parle l'API S3 : n'importe quel client S3 fonctionne dès lors qu'il pointe vers https://s3.oversoc.com. Voici ceux couverts ici :

ClientPlateformesAdapté à
AWS CLIWindows, macOS, LinuxLe point de départ recommandé : un seul outil, les mêmes commandes partout, facile à scripter
AWS Tools for PowerShellWindowsScripter sous Windows sans installer l'AWS CLI, avec des cmdlets natives
rcloneWindows, macOS, LinuxRépliquer un dossier, puisqu'il n'envoie que ce qui a changé
SDK Python (boto3)Windows, macOS, LinuxDéposer depuis un script ou une application existante

Un client graphique convient aussi pour des dépôts manuels occasionnels. Cyberduck (Windows, macOS) et WinSCP (Windows) acceptent tous deux un endpoint S3 personnalisé : créez un profil de type S3, renseignez s3.oversoc.com comme serveur, et utilisez vos Access Key ID et Secret Access Key comme identifiant et mot de passe.

Attention
L'adressage path style est requis

DropPoint lit le bucket dans le chemin, sous la forme https://s3.oversoc.com/your-bucket/export.csv. Le bucket ne fait jamais partie du nom d'hôte : l'adressage virtual hosted (your-bucket.s3.oversoc.com) ne fonctionne donc pas. Les clients ci-dessous sont configurés en conséquence, et un client graphique demande d'activer son option « path style ».

Configuration AWS CLI

Installer l'AWS CLI

# Windows (PowerShell)
winget install --id Amazon.AWSCLI
# macOS
brew install awscli
# Linux
curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o awscliv2.zip
unzip awscliv2.zip && sudo ./aws/install

Configurer le profil

Configurez votre profil AWS CLI avec les credentials générés ci-dessus :

aws configure set aws_access_key_id VOTRE_ACCESS_KEY --profile ovs_votre_org
aws configure set aws_secret_access_key VOTRE_SECRET_KEY --profile ovs_votre_org
aws configure set region fr-par --profile ovs_votre_org
aws configure set endpoint_url https://s3.oversoc.com --profile ovs_votre_org
aws configure set s3.addressing_style path --profile ovs_votre_org

Ces cinq commandes sont identiques sous Windows, macOS et Linux. s3.addressing_style vaut auto par défaut, ce qui tente de placer le bucket dans le nom d'hôte : le passer à path maintient les requêtes dans la forme que DropPoint accepte. C'est endpoint_url dans le profil qui permet aux commandes suivantes de se passer de --endpoint-url à chaque appel. Cela demande l'AWS CLI v2.13 ou plus récent ; sur une version antérieure, ajoutez --endpoint-url https://s3.oversoc.com à chaque commande.

Vérifiez que le profil fonctionne :

aws s3 ls --profile ovs_votre_org

La commande liste les buckets de votre organisation. Une sortie vide signifie que le profil a bien joint DropPoint, mais qu'aucun bucket n'existe encore.

Utilisation des buckets S3

Structure des buckets

Chaque organisation dispose de buckets S3 dédiés pour chaque connecteur. Les buckets sont nommés directement d'après le type de connecteur :

  • azure - Pour les données Azure
  • sentinelone - Pour les données SentinelOne
  • vmware - Pour les données VMware
  • Et autres connecteurs selon vos besoins

Les fichiers se déposent à la racine du bucket, au format CSV ou JSON. OverView détecte les nouveaux fichiers et les importe lors de la synchronisation suivante. La page de chaque connecteur indique le bucket qu'il lit.

Lister vos buckets disponibles

# Lister tous les buckets disponibles pour votre organisation
aws s3 ls --profile ovs_votre_org

Déposer des fichiers

Via AWS CLI

# Lister le contenu d'un bucket spécifique
aws s3 ls s3://your-bucket/ --profile ovs_votre_org

# Déposer un fichier dans le bucket Azure
aws s3 cp fichier.json s3://your-bucket/fichier.json --profile ovs_votre_org

# Déposer un fichier dans le bucket SentinelOne
aws s3 sync ./exports/ s3://your-bucket/ --profile ovs_votre_org

# Télécharger un fichier depuis un bucket
aws s3 cp s3://your-bucket/fichier.json ./fichier.json --profile ovs_votre_org

Conservez le listing dans un script : c'est lui qui indique à une exécution sans surveillance si le dépôt a abouti.

Via AWS Tools for PowerShell (Windows)

Les AWS Tools for PowerShell fournissent des cmdlets natives sous Windows, sans installer l'AWS CLI. Installez le module S3 une fois :

Install-Module -Name AWS.Tools.Installer -Repository PSGallery -Scope CurrentUser
Install-AWSToolsModule -Name AWS.Tools.S3 -Scope CurrentUser

Enregistrez les credentials dans un profil nommé, puis fixez la région pour la session :

Set-AWSCredential -AccessKey VOTRE_ACCESS_KEY -SecretKey VOTRE_SECRET_KEY -StoreAs ovs_votre_org
Set-DefaultAWSRegion -Region fr-par

Listez les buckets et déposez un fichier :

Get-S3Bucket -ProfileName ovs_votre_org -EndpointUrl https://s3.oversoc.com -Region fr-par

Write-S3Object -BucketName your-bucket -Key export.csv -File .\export.csv `
  -ProfileName ovs_votre_org -EndpointUrl https://s3.oversoc.com -Region fr-par
Note
Pourquoi -Region sur chaque cmdlet

Set-AWSCredential -StoreAs enregistre les clés mais aucune région, or le SDK en a besoin pour signer une requête. Set-DefaultAWSRegion couvre la session en cours, tandis que -Region sur chaque cmdlet couvre aussi un script lancé par le Planificateur de tâches, où aucune valeur de session n'a été fixée.

L'adressage en path style ne demande aucun réglage : les cmdlets y passent d'elles-mêmes dès qu'un -EndpointUrl est fourni.

Via rclone

rclone compare la source et la destination : une exécution planifiée n'envoie donc que ce qui a changé. Ajoutez un remote dans rclone.conf :

[droppoint]
type = s3
provider = Other
access_key_id = VOTRE_ACCESS_KEY
secret_access_key = VOTRE_SECRET_KEY
endpoint = https://s3.oversoc.com
region = fr-par
force_path_style = true

force_path_style n'est pas optionnel ici, pour la raison donnée plus haut.

Le fichier de configuration se trouve dans %APPDATA%\rclone\rclone.conf sous Windows et ~/.config/rclone/rclone.conf sous macOS et Linux. rclone config file affiche le chemin utilisé.

# Lister les buckets
rclone lsd droppoint:

# Copier un fichier
rclone copy ./export.csv droppoint:your-bucket/

# Répliquer un dossier, en n'envoyant que ce qui a changé
rclone sync ./exports/ droppoint:your-bucket/
Attention
sync supprime

rclone sync aligne la destination sur la source, ce qui implique de retirer du bucket les fichiers qui n'existent plus localement. Utilisez rclone copy pour ajouter sans jamais supprimer, et faites un premier essai avec --dry-run.

Via SDK Python (boto3)

import boto3

# Configuration du client S3
session = boto3.Session(
    aws_access_key_id='VOTRE_ACCESS_KEY',
    aws_secret_access_key='VOTRE_SECRET_KEY',
    region_name='fr-par'
)

s3_client = session.client(
    's3',
    endpoint_url='https://s3.oversoc.com'
)

# Lister tous les buckets disponibles
response = s3_client.list_buckets()
for bucket in response['Buckets']:
    print(f"Bucket: {bucket['Name']}")

# Déposer un fichier dans le bucket Azure
s3_client.upload_file(
    'fichier_local.json',
    'your-bucket',
    'fichier_distant.json'
)

# Lister les objets dans un bucket spécifique
response = s3_client.list_objects_v2(Bucket='your-bucket')
for obj in response.get('Contents', []):
    print(f"Fichier: {obj['Key']}, Taille: {obj['Size']} bytes")

Automatiser les envois

Associez le dépôt à une tâche planifiée pour que les exports arrivent dans OverView sans intervention. Chaque dépôt déclenche un nouvel import : un export quotidien maintient donc l'inventaire à jour.

Remplacez your-bucket par le nom du bucket du connecteur, indiqué sur la page de documentation de ce connecteur.

Linux

# /etc/cron.d/overview-export : chaque jour à 02h30
30 2 * * * root /usr/local/bin/aws s3 cp /var/exports/export.csv s3://your-bucket/export.csv --profile ovs_votre_org

cron s'exécute dans un environnement minimal : indiquez le chemin complet d'aws. Le profil est lu dans le répertoire personnel de l'utilisateur qui exécute la tâche, root ci-dessus.

macOS

cron fonctionne de la même manière via crontab -e. launchd est l'ordonnanceur pris en charge sous macOS et survit plus sûrement aux redémarrages :

<!-- ~/Library/LaunchAgents/com.oversoc.export.plist -->
<?xml version="1.0" encoding="UTF-8"?>
<plist version="1.0"><dict>
  <key>Label</key><string>com.oversoc.export</string>
  <key>ProgramArguments</key>
  <array>
    <string>/opt/homebrew/bin/aws</string><string>s3</string><string>cp</string>
    <string>/Users/vous/exports/export.csv</string>
    <string>s3://your-bucket/export.csv</string>
    <string>--profile</string><string>ovs_votre_org</string>
  </array>
  <key>StartCalendarInterval</key><dict><key>Hour</key><integer>2</integer><key>Minute</key><integer>30</integer></dict>
</dict></plist>

Chargez-le avec launchctl load ~/Library/LaunchAgents/com.oversoc.export.plist.

Windows

Enregistrez le dépôt dans un script, pour que la tâche planifiée ne porte qu'une seule commande :

# C:\Scripts\Send-OverViewExport.ps1
$ErrorActionPreference = 'Stop'
Write-S3Object -BucketName your-bucket -Key export.csv -File 'C:\Exports\export.csv' `
  -ProfileName ovs_votre_org -EndpointUrl https://s3.oversoc.com -Region fr-par

Déclarez-le dans le Planificateur de tâches :

$action  = New-ScheduledTaskAction -Execute 'powershell.exe' `
  -Argument '-NoProfile -ExecutionPolicy Bypass -File C:\Scripts\Send-OverViewExport.ps1'
$trigger = New-ScheduledTaskTrigger -Daily -At 02:30
Register-ScheduledTask -TaskName 'OverView export' -Action $action -Trigger $trigger

La tâche s'exécute sous l'utilisateur déclaré, et Set-AWSCredential enregistre le profil par utilisateur. Déclarez la tâche sous le compte qui a enregistré les credentials, sinon le script ne trouvera pas le profil.

Dépannage

Erreurs courantes

Tous les clients affichent le code d'erreur renvoyé par DropPoint. C'est ce code qui distingue les causes :

ErreurCe que cela signifieQuoi vérifier
InvalidAccessKeyIdL'Access Key ID est inconnuUne faute de frappe dans la clé, ou des credentials révoqués. Générez-en de nouveaux depuis Paramètres > Sécurité > S3 Credentials
SignatureDoesNotMatchLa signature ne correspond pasLe plus souvent une Secret Access Key erronée. Cela arrive aussi quand l'horloge de la machine dérive de plus d'un quart d'heure environ, la signature couvrant l'horodatage de la requête : vérifiez le NTP
AccessDeniedAuthentifié, mais pas autorisé iciLe bucket correspond à un connecteur que ces credentials ne couvrent pas. Vérifiez le nom du bucket sur la page du connecteur, puis contactez le support OverSOC pour qu'il soit ajouté à vos credentials
AccessDenied, « Credentials are inactive »Les credentials ont été désactivésGénérez de nouveaux credentials, ou contactez le support OverSOC
AccessDenied, « Missing authorization »La requête ne portait aucune signatureLe client n'est pas configuré pour la signature S3 v4, ou envoie des requêtes anonymes
EntityTooLargeUne requête a dépassé 500 MoEnvoyez les gros fichiers en plusieurs parties. aws s3 cp et rclone le font d'eux-mêmes ; un appel SDK écrit à la main peut demander d'activer le multipart. Découper l'export fonctionne aussi
NoSuchKeyL'objet n'existe pasLa clé est orthographiée autrement, ou le fichier est parti dans un autre bucket
InvalidBucketNameLe nom de bucket est refuséLe nom doit être l'identifiant du connecteur, en minuscules, tel qu'indiqué sur sa page
XAmzContentSHA256MismatchLe corps ne correspond pas à son empreinteUn proxy modifie la requête. Excluez s3.oversoc.com de tout proxy qui réécrit ou inspecte le trafic

Où lire l'erreur

# La CLI affiche le code en cas d'échec ; --debug montre l'échange complet
aws s3 cp ./export.csv s3://your-bucket/export.csv --profile ovs_votre_org --debug

Support

Pour toute assistance, contactez support@oversoc.com.

Limites et quotas

  • Taille maximale par requête : 500 Mo. Un fichier plus gros passe tout de même, en plusieurs parties : aws s3 cp et rclone basculent d'eux-mêmes sur un envoi multipart, et chaque partie reste sous cette limite. Au-delà, une requête unique est rejetée avec EntityTooLarge.
  • Nombre de fichiers et volume total : aucun quota par organisation n'est appliqué aujourd'hui.