Autorisations IAM pour l'exécution des méthodes du service de transfert de stockage

Le tableau suivant répertorie les autorisations minimales requises pour exécuter chaque méthode du service de transfert de stockage.

Ressource Méthode Autorisations requises
googleServiceAccount get storagetransfer.projects.getServiceAccount
transferJobs create Les deux éléments suivants sont requis :

  • storagetransfer.jobs.create
  • storagetransfer.projects.getServiceAccount

transferjobs get storagetransfer.jobs.get
transferjobs list storagetransfer.jobs.list
transferjobs patch Pour les mises à jour avec suppression : storagetransfer.jobs.delete
Pour les mises à jour sans suppression : storagetransfer.jobs.update
transferoperations cancel storagetransfer.operations.cancel
transferOperations get storagetransfer.operations.get
transferOperations list storagetransfer.operations.list
transferOperations pause storagetransfer.operations.pause
transferOperations resume storagetransfer.operations.resume

Autorisations relatives à la source

Cloud Storage

Le service de transfert de stockage utilise un compte de service géré par Google pour déplacer des données depuis un bucket source Cloud Storage, créé la première fois que vous appelez googleServiceAccounts.get.

Le format du compte de service est le suivant : project-PROJECT_NUMBER@storage-transfer-service.iam.gserviceaccount.com. Pour connaître le format de votre compte de service, utilisez l'appel d'API googleServiceAccounts.get.

Ce compte de service doit disposer des autorisations suivantes applicables au bucket source :

Autorisation Description Utilisation
storage.buckets.get Permet au compte de service d'obtenir l'emplacement du bucket. Toujours obligatoire
storage.objects.list Permet au compte de service de répertorier les objets présents dans le bucket. Toujours obligatoire
storage.objects.get Permet au compte de service de lire les objets dans le bucket. Toujours obligatoire
storage.objects.delete Permet au compte de service de supprimer des objets du bucket. Obligatoire si vous définissez deleteObjectsFromSourceAfterTransfer sur true.

Les rôles roles/storage.objectViewer et roles/storage.legacyBucketReader contiennent les autorisations qui sont toujours requises. Le rôle roles/storage.legacyBucketWriter contient les autorisations storage.objects.delete. Les rôles souhaités doivent être attribués au compte de service utilisé pour effectuer le transfert.

Pour obtenir une liste complète des rôles Cloud Storage et des autorisations qu'ils comprennent, consultez la page sur les rôles IAM.

Amazon S3

Pour utiliser le service de transfert de stockage afin de déplacer des données à partir d'un bucket Amazon S3, vous devez disposer d'un compte d'utilisateur AWS IAM (Identity and Access Management) disposant de certaines autorisations pour le bucket en question :

Autorisation Description Utilisation
s3:ListBucket Permet au service de transfert de stockage de répertorier les objets présents dans le bucket. Toujours obligatoire
s3:GetObject Permet au service de transfert de stockage de lire des objets dans le bucket. Toujours obligatoire
s3:GetBucketLocation Permet au service de transfert de stockage d'obtenir l'emplacement du bucket. Toujours obligatoire
s3:DeleteObject Permet au service de transfert de stockage de supprimer des objets du bucket. Obligatoire si vous définissez deleteObjectsFromSourceAfterTransfer sur true.

Microsoft Azure Blob Storage

Pour utiliser le service de transfert de stockage afin de déplacer des données d'un conteneur ou d'un compte Microsoft Azure Storage vers Cloud Storage, vous devez disposer d'un compte utilisateur Microsoft Azure Storage sur lequel les autorisations suivantes sont appliquées :

Autorisation Description Utilisation
List Blobs Permet au service de transfert de stockage de répertorier les blobs d'un conteneur. Toujours obligatoire
Get Blob Permet au service de transfert de stockage d'obtenir le contenu, les métadonnées définies par le système et les métadonnées définies par l'utilisateur d'un blob. Toujours obligatoire
Get Blob Properties Permet au service de transfert de stockage d'obtenir les métadonnées définies par le système et par l'utilisateur pour un blob. Toujours obligatoire
Delete Blob Permet au service de transfert de stockage de marquer un blob à supprimer. Obligatoire si vous définissez deleteObjectsFromSourceAfterTransfer sur true. .

Liste d'URL

Si votre source de données est une liste d'URL, vérifiez que chaque objet de cette liste est accessible au public.

Autorisations relatives au récepteur

Le service de transfert de stockage utilise un compte de service géré par Google pour déplacer vos données depuis un bucket source Cloud Storage, créé la première fois que vous appelez googleServiceAccounts.get.

Le format du compte de service est le suivant : project-PROJECT_NUMBER@storage-transfer-service.iam.gserviceaccount.com. Pour connaître le format de votre compte de service, utilisez l'appel d'API googleServiceAccounts.get.

Le compte de service doit disposer des autorisations suivantes pour le bucket de destination :

Autorisation Description Utilisation
storage.buckets.get Permet au compte de service d'obtenir l'emplacement du bucket. Toujours obligatoire
storage.objects.create Permet au compte de service d'ajouter des objets au bucket. Toujours obligatoire
storage.objects.delete Permet au compte de service de supprimer des objets du bucket. Obligatoire si vous définissez overwriteObjectsAlreadyExistingInSink ou deleteObjectsUniqueInSink sur true.
storage.objects.list Permet au compte de service de répertorier les objets présents dans le bucket. Obligatoire si vous définissez overwriteObjectsAlreadyExistingInSink sur false ou deleteObjectsUniqueInSink sur true.

Toutes ces autorisations sont contenues dans le rôle roles/storage.legacyBucketWriter, que vous pouvez attribuer au compte de service. Pour obtenir une liste complète des rôles Cloud Storage et des autorisations qu'ils comprennent, consultez la page sur les rôles IAM.

Autorisations Pub/Sub

Si vous prévoyez d'utiliser Pub/Sub pour les transferts, attribuez au compte de service le rôle IAM roles/pubsub.publisher pour le sujet Pub/Sub souhaité.