Comment configurer un bucket Google Cloud ?
Utilisez un projet Google Cloud, un bucket privé et un compte de service dédié à Transloadit. Vous devez disposer des autorisations nécessaires pour créer le bucket, gérer ses accès IAM et créer un compte de service et sa clé JSON. Des frais de stockage Google Cloud et de traitement Transloadit s’appliquent.
1. Créer un bucket privé
Suivez le guide de création de buckets de Google. Utilisez l’accès uniforme au niveau du bucket pour qu’IAM contrôle les accès plutôt que les ACL propres à chaque objet. N’accordez aucun accès public. Conservez le nom du bucket et l’ID du projet pour les étapes suivantes.
2. Accorder à un compte de service l’accès à ce bucket
Créez un compte de service dédié et accordez-lui le rôle Storage Object Creator sur ce bucket, et non sur l’ensemble de votre projet. Ce rôle permet de créer des objets, mais pas de lire, supprimer ou écraser des objets existants. L’exemple ci-dessous utilise les chemins de sortie uniques par défaut du Robot. Si vous choisissez des chemins fixes ou ajoutez des Steps d’importation, examinez les autorisations nécessaires à ce flux de travail plutôt que d’accorder des droits d’administration étendus.
Cette connexion à Transloadit utilise le fichier de clé JSON d’un compte de service. Suivez le guide de création de clés de Google et téléchargez une clé JSON pour le compte de service dédié. Gardez-la privée. Si votre organisation interdit les clés de compte de service, consultez votre administrateur plutôt que de contourner cette politique. Un fichier client OAuth ou une clé d’accès HMAC ne remplace pas cette clé JSON.
3. Enregistrer des informations d’identification de Template
Suivez le guide Comment créer des informations d’identification de Template et sélectionnez Google Cloud Storage comme service. Renseignez les champs suivants :
| Champ de la Console | Valeur |
|---|---|
| ID du projet Google | L’ID de votre projet Google Cloud. |
| Bucket Google Cloud Storage | Le nom du bucket, sans préfixe gs://. |
| Fichier de clé JSON Google | Le fichier de clé JSON du compte de service que vous avez téléchargé. |
Donnez un nom reconnaissable à cet ensemble d’informations d’identification. Utilisez ce nom dans le Template ci-dessous, et non le contenu du fichier JSON ou l’adresse e-mail du compte de service.
4. Tester une exportation
Créez un Template avec ces instructions, en remplaçant
YOUR_GOOGLE_CLOUD_CREDENTIALS par le nom de l’ensemble d’informations d’identification enregistré :
{
"steps": {
":original": {
"robot": "/upload/handle"
},
"exported": {
"robot": "/google/store",
"use": ":original",
"credentials": "YOUR_GOOGLE_CLOUD_CREDENTIALS",
"acl": null
}
}
}
Conservez "acl": null : ce réglage omet l’ACL de l’objet et laisse la politique IAM du
bucket contrôler les accès. Si vous omettez acl, le Robot applique à la place
aux objets exportés son ACL d’objet par défaut, qui accorde un accès public en lecture et est
incompatible avec l’accès uniforme au niveau du bucket.
Exécutez le Template avec un petit téléversement de test. Une fois l’Assembly terminée, examinez le résultat de l’exportation et vérifiez que l’objet existe en utilisant votre propre accès authentifié à Google Cloud Console. Une simple URL de résultat n’accorde pas d’accès anonyme à un objet privé. Ne rendez pas le bucket public uniquement pour tester cette URL.
Une Assembly peut échouer si une tentative automatique de téléversement crée l’objet, mais perd la confirmation : une nouvelle tentative automatique ne peut pas remplacer cet objet avec le rôle Storage Object Creator. Examinez la destination indiquée et l’erreur de l’Assembly avant de modifier les autorisations. La seule présence d’un objet ne confirme pas la réussite complète de l’exportation. Pour réessayer manuellement, lancez une nouvelle Assembly avec un nouveau téléversement et les chemins de sortie uniques par défaut de l’exemple, plutôt que d’ajouter des autorisations d’écrasement ou de suppression.
Pour en savoir plus
- Consultez la documentation des Templates pour leur configuration et leur sécurité.
- Consultez la documentation du Robot 🤖/google/store pour les chemins, les autorisations et les autres options d’exportation.