Autorisations de transfert sans agent

Les transferts sans agent incluent les transferts dans Cloud Storage, ou depuis Amazon S3, Azure Blob Storage ou Data Lake Storage Gen2, ou des listes d'URL d'objets publics. Ils ne nécessitent pas d'agents de transfert ni de pools d'agents.

Lorsque vous transférez des données entre des fournisseurs cloud dans un transfert sans agent, vous devez accorder des autorisations à deux entités :

  • Compte de service géré par l'utilisateur ou l'utilisateur qui crée ou gère le transfert de données.
  • Un compte de service géré par Google créé automatiquement la première fois que vous interagissez avec le service de transfert de stockage.

En outre, vous devez configurer l'accès aux fichiers sources sur AWS S3, Microsoft Azure ou Cloud Storage.

Pour savoir comment attribuer des rôles IAM, consultez la section Accorder, modifier et révoquer les accès à des ressources.

Méthode la plus simple pour accorder des autorisations

La CLI gcloud permet d'accorder les autorisations requises au compte de service utilisateur/géré par l'utilisateur et au compte de service géré par Google. Ces autorisations permettent à l'utilisateur de créer, de modifier et de supprimer des tâches de transfert, et de définir ou de modifier des limites de bande passante.

Si ces autorisations sont trop larges pour les règles de votre organisation, consultez les sections suivantes de ce document pour connaître les autorisations minimales requises par le service de transfert de stockage.

Pour inspecter les autorisations existantes et imprimer les rôles manquants, exécutez la la commande suivante:

gcloud transfer authorize

Pour appliquer automatiquement ces rôles, utilisez l'indicateur --add-missing :

gcloud transfer authorize --add-missing

Pour accorder des autorisations à un compte de service géré par l'utilisateur, transmettez le compte de service fichier de clé:

gcloud transfer authorize --add-missing --creds-file=path/to/key.json

Pour savoir comment créer un compte de service, consultez la page Créer et gérer des comptes de service.

La commande accorde les autorisations suivantes.

  • Au compte de service utilisateur/géré par l'utilisateur :

    • roles/owner
    • roles/storagetransfer.admin
    • roles/storagetransfer.transferAgent
    • roles/storage.objectAdmin
    • roles/pubsub.editor
  • Pour le compte de service géré par Google:

    • roles/storage.admin
    • roles/storagetransfer.serviceAgent

Pour obtenir des instructions sur l'installation de la CLI gcloud, consultez le guide de démarrage rapide gcloud.

Autorisations de compte de service géré par l'utilisateur ou l'utilisateur

Cette section décrit les rôles requis pour les administrateurs de comptes en cours d'exécution de transferts. Ce sont les exigences de votre entreprise qui déterminent des rôles pour chaque personnage ; Dans cette section, nous partons du principe que vous allez créer un administrateur et un utilisateur.

Comptes administrateur

Les comptes administrateur du service de transfert de stockage définissent les limites d'utilisation de la bande passante et suppriment les tâches de transfert.

Pour configurer un compte administrateur, attribuez les autorisations et les rôles IAM suivants :

Rôle/Autorisation Utilisation Remarques
resourcemanager.projects.getIamPolicy Cette autorisation permet de vérifier que le compte de service géré par Google dispose des autorisations requises pour effectuer un transfert. Pour accorder cette autorisation, attribuez le rôle prédéfini Lecteur de rôle (roles/iam.roleViewer) ou créez un rôle personnalisé avec cette autorisation unique et accordez le rôle personnalisé.
Administrateur de transfert de stockage (roles/storagetransfer.admin) Permet d'effectuer des actions d'administration dans le projet de transfert, telles que la configuration du projet. Pour obtenir une liste détaillée des autorisations accordées, consultez la section Rôles prédéfinis pour le service de transfert de stockage.

Comptes utilisateur

Les comptes utilisateur du service de transfert de stockage permettent de créer et d'exécuter des transferts. Ces comptes ne sont généralement pas autorisés à supprimer des tâches de transfert.

Un compte utilisateur peut être un utilisateur de la console Google Cloud ou un compte de service. Si vous utilisez à l'aide d'un compte de service, la méthode utilisée pour transmettre les identifiants Le service de transfert de stockage varie en fonction de l'interface que vous utilisez.

Pour configurer un compte utilisateur, attribuez-lui les autorisations et les rôles suivants:

Rôle/Autorisation Utilisation Remarques
resourcemanager.projects.getIamPolicy Permet de vérifier que le compte de service géré par Google dispose des autorisations Pub/Sub requises pour effectuer un transfert. Pour accorder cette autorisation, attribuez le rôle prédéfini Lecteur de rôle (roles/iam.roleViewer) ou créez un rôle personnalisé avec cette autorisation unique et accordez le rôle personnalisé.
Utilisateur du transfert de stockage (roles/storagetransfer.user) Permet à l'utilisateur de créer, d'obtenir, de mettre à jour et de répertorier des transferts. Pour obtenir une liste détaillée des autorisations accordées, consultez la section Rôles prédéfinis pour le service de transfert de stockage.

Autorisations du compte de service géré par Google

Le service de transfert de stockage utilise un compte de service géré par Google pour déplacer vos données. Ce compte de service est créé automatiquement la première fois que vous créez une tâche de transfert, appelez googleServiceAccounts.get ou consultez la page de création de tâche dans Google Cloud Console.

Le format du compte de service est le suivant : project-PROJECT_NUMBER@storage-transfer-service.iam.gserviceaccount.com. Pour récupérer votre identifiant de compte de service, utilisez la méthode Appel d'API googleServiceAccounts.get.

Attribuer automatiquement des rôles

Il existe deux façons d'attribuer automatiquement les rôles appropriés au compte Compte de service géré par Google:

Attribuer manuellement des rôles

Pour autoriser le compte de service géré par Google à accéder aux ressources nécessaires pour effectuer des transferts, attribuez les rôles suivants ou des autorisations équivalentes au compte de service.

Rôle/Autorisation Utilisation Remarques
Rédacteur des anciens buckets Storage (roles/storage.legacyBucketWriter) Permet au service de transfert de stockage de lire les métadonnées des buckets et de répertorier les objets dans un bucket et écrire des objets dans le bucket de destination. Accès accordé au bucket de destination Cloud Storage.
Lecteur des objets de l'espace de stockage (roles/storage.objectViewer) Permet au service de transfert de stockage de déterminer si un fichier a déjà été transféré vers ou depuis Cloud Storage. Accordez l'accès au bucket source Cloud Storage si vous transférez depuis Cloud Storage. Le cas échéant, vous pouvez l'accorder au projet à partir duquel le service de transfert de stockage est exécuté.
Lecteur des anciens buckets Storage (roles/storage.legacyBucketReader) Permet au service de transfert de stockage de lire les métadonnées d'un bucket Cloud Storage.

Accordez l'accès au bucket source Cloud Storage si vous transférez depuis Cloud Storage.

Les rôles Cloud Storage legacy ne peuvent être accordés qu'au niveau du bucket.

Pour obtenir des instructions, consultez la section Accorder les autorisations requises.

Transferts Cloud Storage entre projets

Pour transférer des objets entre des buckets Cloud Storage dans différents projets, vous devez accorder une autorisation à un seul compte de service géré par Google à la fois au niveau du bucket source et du bucket de destination. Compte de service géré par Google appartient au projet à partir duquel vous créez le transfert.

Le compte de service géré par l'utilisateur ou par l'utilisateur n'a besoin que d'autorisations sur le projet qui crée le transfert.

Pour obtenir l'adresse e-mail du compte de service géré par Google, consultez la section Rechercher l'adresse e-mail de l'agent de service.

Sur le bucket source, attribuez les rôles suivants au niveau du bucket Compte de service géré par Google:

  • Storage Legacy Bucket Reader
  • Storage Object Viewer

Au niveau du bucket de destination, attribuez le rôle suivant au même compte de service géré par Google :

  • Storage Legacy Bucket Writer

Pour savoir comment attribuer des rôles au niveau du bucket, consultez les pages suivantes :

Restrictions organisationnelles

Si votre organisation a fait une demande de participation contraintes liées aux règles d'administration tels que restrictions de domaine (constraints/iam.allowedPolicyMemberDomains) ou désactivation du rattachement de comptes de service aux ressources d'autres projets (constraints/iam.disableCrossProjectServiceAccountUsage), ces contraintes doivent être mis à jour avant que les transferts entre projets puissent aboutir.

Vous devrez peut-être également mettre à jour les paramètres de contrôle des services VPC pour prendre en charge les transferts interprojets. Consultez la section Configurer VPC Service Controls pour les transferts de stockage d'objet cloud.

Autorisations AWS et Microsoft

Vous devez également configurer l'accès à vos fichiers sources s'ils se trouvent dans AWS S3 ou Microsoft Azure Storage. Les documents suivants décrivent les étapes requises :