Autorisations IAM pour le service de transfert des données sur site

Cette page décrit les autorisations IAM (Identity and Access Management) requises pour le transfert sur site.

Présentation

Le transfert sur site utilise des autorisations IAM pour contrôler qui peut accéder aux ressources de transfert sur site. Ces autorisations sont accordées aux utilisateurs via des rôles IAM.

Nous vous recommandons d'utiliser des rôles IAM prédéfinis qui répondent aux cas d'utilisation types. Toutefois, vous pouvez avoir besoin d'un rôle qui inclut un ensemble d'autorisations personnalisé, ou vous pouvez souhaiter accorder l'accès via autorisations définies suivant le principe du moindre privilège. Dans ces cas, vous pouvez choisir de créer un rôle personnalisé IAM pour répondre à vos besoins.

L'administrateur de projet Google Cloud, qui est un compte disposant des droits resourcemanager.projects.setIamPolicy, est requis pour la configuration initiale de chaque projet. Cette autorisation permet à l'administrateur de créer et d'attribuer des rôles IAM.

Autorisations requises pour créer des transferts sur site

Pour créer et gérer des transferts sur site, envisagez d'utiliser les types de comptes suivants :

  • Comptes administrateur (admin) de transfert sur site : les comptes administrateur servent à apporter une assistance aux comptes utilisateur. Les comptes peuvent gérer les agents sur site et définir les limites d'utilisation de la bande passante.
  • Comptes utilisateur : les comptes utilisateur créent et démarrent des transferts. Nous vous recommandons de ne pas autoriser les comptes utilisateur à supprimer des tâches de transfert.

Les sections suivantes décrivent les autorisations IAM requises pour utiliser le transfert sur site.

Compte administrateur des transferts

Le tableau suivant décrit les autorisations dont le compte administrateur a besoin pour assister les collègues chargés de réaliser les transferts :

Autorisation Description
resourcemanager.projects.getIamPolicy

Permet de vérifier que le compte de service de transfert sur site dispose des autorisations requises pour effectuer un transfert.

Pour plus d'informations sur cette autorisation, consultez la section Autorisations du projet.

Le rôle prédéfini de projet roles/browser peut être utilisé pour accorder un accès en lecture permettant de parcourir la hiérarchie de projet.

storagetransfer.projects.getServiceAccount

Permet d'effectuer des actions d'administration dans le projet de transfert, telles que la configuration du projet et la surveillance de l'agent.

Pour en savoir plus sur ces autorisations, consultez la section Autorisations.

Le rôle prédéfini de service de transfert de stockage roles/storagetransfer.admin accorde les autorisations répertoriées.

storagetransfer.jobs.create
storagetransfer.jobs.delete
storagetransfer.jobs.get
storagetransfer.jobs.list
storagetransfer.jobs.patch
storagetransfer.operations.get
storagetransfer.operations.list
storagetransfer.operations.pause
storagetransfer.operations.resume

Comptes utilisateur

Le tableau suivant décrit les autorisations dont les comptes utilisateur ont besoin pour créer et démarrer des transferts :

Autorisation Description
resourcemanager.projects.getIamPolicy

Permet de vérifier que le compte de service de transfert sur site dispose des autorisations Pub/Sub requises pour effectuer un transfert.

Pour plus d'informations sur cette autorisation, consultez la section Autorisations du projet.

Le rôle prédéfini de projet roles/browser peut être utilisé pour accorder un accès en lecture permettant de parcourir la hiérarchie de projet.

storagetransfer.projects.getServiceAccount

Permet à l'utilisateur de créer, d'obtenir, de mettre à jour et de répertorier des transferts.

Pour en savoir plus sur ces autorisations, consultez la section Autorisations.

Le rôle prédéfini de service de transfert de stockage roles/storagetransfer.user accorde les autorisations répertoriées.

storagetransfer.jobs.create
storagetransfer.jobs.get
storagetransfer.jobs.list
storagetransfer.jobs.patch
storagetransfer.operations.get
storagetransfer.operations.list
storagetransfer.operations.pause
storagetransfer.operations.resume
resourcemanager.projects.get

Permet à l'utilisateur de créer, de mettre à jour et de supprimer des objets Cloud Storage dans le cadre d'un transfert.

Pour en savoir plus sur ces autorisations, consultez la page Autorisations IAM pour Cloud Storage.

Le rôle prédéfini Cloud Storage roles/storage.objectAdmin permet d'accorder les autorisations répertoriées.

resourcemanager.projects.list
storage.objects.create
storage.objects.delete
storage.objects.get
storage.objects.getIamPolicy
storage.objects.list
storage.objects.setIamPolicy
storage.objects.update

Autorisations requises pour effectuer des transferts sur site

Le transfert de données sur site utilise les types de comptes suivants pour transférer les données :

  • Un compte de service géré par Google : le compte de service communique avec les ressources Cloud Storage et Pub/Sub au sein de votre projet.

  • Un compte d'agent : compte utilisé pour exécuter les agents de transfert sur site qui transfèrent vos données vers Cloud Storage. Le compte d'agent peut être un compte utilisateur ou un compte de service que vous créez.

Les sections suivantes décrivent les autorisations nécessaires pour effectuer des transferts.

Compte de service géré par Google

Le transfert sur site utilise un compte de service géré par Google pour communiquer avec les ressources Cloud Storage et Pub/Sub au sein de votre projet. Les autorisations requises pour le compte de service sont détaillées dans les sections suivantes.

Le format du compte de service est le suivant : project-PROJECT_NUMBER@storage-transfer-service.iam.gserviceaccount.com. Pour déterminer votre numéro de projet PROJECT_NUMBER spécifique, utilisez l'appel d'API googleServiceAccounts.get.

Bucket Cloud Storage de destination

Le tableau suivant décrit les autorisations dont le compte de service a besoin pour transférer des données vers le bucket Cloud Storage de destination :

Autorisation Description
storage.buckets.get Permet au compte de service de déterminer l'emplacement de facturation.
storage.objects.create Permet au compte de service d'écrire des objets de confirmation de transfert.
storage.objects.get Permet au compte de service de lire le résultat de la liste et de déterminer les conditions préalables d'importation lors d'une nouvelle tentative d'importation d'un objet.
storage.objects.list Permet au compte de service de calculer le delta pour la synchronisation et de répertorier les objets de composant temporaires créés lors du transfert afin qu'ils puissent être supprimés.

Projet Google Cloud

Le tableau suivant décrit les autorisations requises par le compte de service pour communiquer avec votre projet Google Cloud :

Autorisation Description
pubsub.subscriptions.create Permet au compte de service de créer un abonnement Pub/Sub servant à attribuer des tâches, de suivre la progression et de créer l'abonnement pour les messages heartbeat utilisés par le transfert sur site.
pubsub.subscriptions.delete Permet au compte de service de supprimer les abonnements orphelins.
pubsub.topics.create Permet au compte de service d'associer des sujets de tâche à l'abonnement Pub/Sub d'attribution des tâches, de suivre la progression des tâches, de créer des sujets heartbeat et de contrôler les sujets.

Sujets Pub/Sub

Le tableau suivant décrit les autorisations dont le compte de service a besoin pour communiquer avec les sujets Pub/Sub utilisés par le transfert sur site. Appliquez ces autorisations au niveau du projet :

Autorisation Description
pubsub.topics.attachSubscription Permet au compte de service d'associer des abonnements d'attribution aux sujets Pub/Sub de tâche, de progression, de pulsation et de contrôle.
pubsub.topics.publish Permet au compte de service de créer des sujets Pub/Sub d'attribution, de progression, de pulsation et de contrôle.

Abonnements Pub/Sub

Le tableau suivant décrit les autorisations requises par le compte de service pour communiquer avec les abonnements Pub/Sub utilisés par le transfert sur site :

Autorisation Description
pubsub.subscriptions.consume Permet au compte de service de lire à partir des abonnements Pub/Sub de progression et de pulsation.
pubsub.subscriptions.get Permet au compte de service de confirmer l'association d'un abonnement.

Compte d'agent sur site

Le transfert sur site utilise un compte d'agent pour transférer les données vers votre bucket Cloud Storage. Le compte d'agent est soit un compte utilisateur, soit un compte de service géré par l'utilisateur que vous utilisez pour exécuter les agents sur site. Ce compte d'agent assure la communication entre les agents que vous installez sur site et le service de transfert sur site. Les autorisations requises pour le compte d'agent sont détaillées dans les sections suivantes.

Bucket Cloud Storage de destination

Le tableau suivant décrit les autorisations dont le compte d'agent sur site a besoin pour transférer des données vers votre bucket Cloud Storage de destination :

Autorisation Description
storage.objects.create Permet au compte d'agent d'écrire des objets Cloud Storage pendant le transfert.
storage.objects.delete Permet au compte d'agent de supprimer ou d'écraser des objets Cloud Storage lors du transfert.
storage.objects.get Permet au compte d'agent d'effectuer de nouvelles tentatives avec des conditions préalables correctes dans le cas des importations composites.

Sujets Pub/Sub pour le transfert sur site

Le tableau suivant décrit les autorisations dont le compte d'agent sur site a besoin sur les sujets Pub/Sub nécessaires au transfert de données sur site. Appliquez ces autorisations au niveau du projet :

Autorisation Description
pubsub.topics.attachSubscription Permet au compte d'agent d'écouter le sujet Pub/Sub de contrôle.
pubsub.topics.get Permet au compte d'agent de confirmer l'existence des sujets Pub/Sub de progression et de pulsation.
pubsub.topics.publish Permet au compte d'agent de publier dans les sujets Pub/Sub de progression et de pulsation.

Abonnements Pub/Sub

Le tableau suivant décrit les autorisations dont le compte d'agent sur site a besoin pour communiquer avec les abonnements Pub/Sub utilisés par le transfert sur site. Appliquez ces autorisations au niveau du projet :

Autorisation Description
pubsub.subscriptions.consume Permet au compte d'agent de lire les sujets Pub/Sub servant à l'attribution et au contrôle des tâches.
pubsub.subscriptions.create Permet au compte d'agent de créer des abonnements Pub/Sub de contrôle.
pubsub.subscriptions.get Permet au compte d'agent de confirmer l'existence des abonnements Pub/Sub de contrôle, de pulsation et d'attribution.
pubsub.subscriptions.delete Permet au compte d'agent de nettoyer les abonnements de contrôle lors de la fermeture.