Utilisez l'administrateur de projet Google Cloud, qui est un utilisateur disposant des droits resourcemanager.projects.setIamPolicy
, pour attribuer des autorisations ou des rôles IAM (Identity and Access Management) aux utilisateurs et services appropriés.
Le compte administrateur de projet Google Cloud n'est requis que pour accorder des autorisations aux utilisateurs et aux comptes de service. Il n'est pas nécessaire pour démarrer des tâches de transfert.
Pour en savoir plus sur l'attribution de rôles IAM, consultez la section Accorder, modifier et révoquer les accès à des ressources.
Si vous souhaitez créer des rôles personnalisés pour le service de transfert de stockage, consultez la page Comprendre les rôles personnalisés d'IAM.
Comptes administrateur
Les comptes administrateur du service de transfert de stockage gèrent les agents de transfert, définissent des 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 )
|
Active les actions d'administration dans le projet de transfert, telles que la configuration du projet et la surveillance des agents. | Pour obtenir la liste détaillée des autorisations accordées, consultez la page Rôles prédéfinis du 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.
Il peut s'agir d'un utilisateur de la console Google Cloud ou d'un compte de service. Si vous utilisez un compte de service, la méthode à utiliser pour transmettre les identifiants au service de transfert de stockage varie en fonction de l'interface utilisée.
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 la liste détaillée des autorisations accordées, consultez la page Rôles prédéfinis du service de transfert de stockage. |
Compte de service
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, créez un pool d'agents, 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 déterminer votre numéro de projet PROJECT_NUMBER
spécifique, utilisez l'appel d'API
googleServiceAccounts.get
.
Pour autoriser le compte du service de transfert de stockage à 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 |
---|---|---|
Créateur d'objets Storage (roles/storage.objectCreator )
|
Permet au service de transfert de stockage de créer des journaux de transfert dans le bucket Cloud Storage connecté à ce transfert. |
Ce rôle doit être accordé à tous les buckets Cloud Storage utilisés lors d'un transfert. Le cas échéant, vous pouvez l'accorder au projet à partir duquel le service de transfert de stockage est exécuté.
Pour obtenir la liste détaillée des autorisations attribuées par ces rôles, consultez la section Rôles prédéfinis pour Cloud Storage. |
Lecteur des objets Storage (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. | |
Agent de service de transfert de stockage (roles/storagetransfer.serviceAgent )
|
Permet au service de transfert de stockage de créer et de modifier automatiquement des sujets Pub/Sub pour communiquer de Google Cloud vers les agents de transfert. |
Doit être appliqué au niveau du projet au projet à partir duquel le service de transfert de stockage est exécuté.
Pour obtenir la liste détaillée des autorisations accordées par ce rôle, consultez la section Autorisations et rôles. |
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. |
Doit être accordé à chaque bucket Cloud Storage utilisé lors d'un transfert. Les rôles Cloud Storage |
Agents de transfert
Les agents de transfert du service de transfert de stockage peuvent être exécutés avec le compte de l'utilisateur ou avec un compte de service.
Pour configurer un compte de service d'agent de transfert ou un compte utilisateur exécutant les agents de transfert, attribuez le rôle suivant :
Rôle/Autorisation | Utilisation | Remarques |
---|---|---|
Agent de transfert de stockage (roles/storagetransfer.transferAgent )
|
Attribue aux agents de transfert les autorisations requises pour effectuer un transfert à l'aide du service de transfert de stockage et de Pub/Sub. |
Attribuez ce rôle à l'utilisateur ou au compte de service utilisé par les agents.
Pour obtenir la liste détaillée des autorisations accordées par ce rôle, consultez la section Contrôle d'accès avec IAM. |
Autorisations de la source et de la destination
Vous devez également vous assurer que le compte de l'agent dispose des autorisations appropriées pour accéder aux données sources et écrire sur la destination.
Système de fichiers vers Cloud Storage
Si votre destination de transfert est un bucket Cloud Storage, l'agent de transfert a besoin des autorisations suivantes sur le bucket de destination. Pour obtenir des instructions, consultez la section Ajouter un compte principal à une stratégie au niveau du bucket.
Permission | Description |
---|---|
storage.objects.create |
Permet au compte de l'agent d'écrire des objets Cloud Storage pendant le transfert. |
storage.objects.get |
Permet au compte de l'agent de lire les données et les métadonnées d'objets. |
storage.objects.delete |
Obligatoire si le transfert est configuré pour écraser ou supprimer des objets dans le récepteur. Par exemple, si overwriteObjectsAlreadyExistingInSink ou deleteObjectsUniqueInSink sont définis dans la configuration transferOptions de votre transfert. |
Pour accorder ces autorisations, attribuez le rôle suivant:
- Administrateur d'objets de l'espace de stockage (
roles/storage.objectAdmin
)
Vous pouvez également créer un rôle personnalisé avec les autorisations spécifiques et attribuer le rôle personnalisé.
Des autorisations supplémentaires sont nécessaires pour activer les importations en plusieurs parties.
Cloud Storage vers système de fichiers
Si la source de votre transfert est un bucket Cloud Storage, l'agent de transfert doit disposer des autorisations suivantes sur le bucket source.
Autorisation | Description |
---|---|
storage.objects.get |
Permet au compte de l'agent de lire les données et les métadonnées d'objets. |
Pour accorder cette autorisation, attribuez le rôle suivant:
- Lecteur d'objets de l'espace de stockage (
roles/storage.objectViewer
)
Vous pouvez également créer un rôle personnalisé avec l'autorisation unique et accorder le rôle personnalisé.
Système de fichiers vers système de fichiers
Si votre transfert s'effectue entre deux systèmes de fichiers, l'agent de transfert doit disposer des autorisations suivantes sur le bucket intermédiaire.
Permission | Description |
---|---|
storage.objects.create |
Permet au compte de l'agent d'écrire des objets Cloud Storage pendant le transfert. |
storage.objects.get |
Permet au compte de l'agent de lire les données et les métadonnées d'objets. |
storage.objects.delete |
Obligatoire si le transfert est configuré pour supprimer des objets dans le bucket intermédiaire une fois le transfert terminé. |
Pour accorder ces autorisations, attribuez le rôle suivant:
- Administrateur d'objets de l'espace de stockage (
roles/storage.objectAdmin
)
Vous pouvez également créer un rôle personnalisé avec les autorisations spécifiques et attribuer le rôle personnalisé.
Des autorisations supplémentaires sont nécessaires pour activer les importations en plusieurs parties.
Stockage compatible S3 vers Cloud Storage
Le compte de l'agent de transfert requiert les autorisations suivantes sur le bucket de destination. Pour obtenir des instructions, consultez la section Ajouter un compte principal à une stratégie au niveau du bucket.
Permission | Description |
---|---|
storage.objects.create |
Permet au compte de l'agent d'écrire des objets Cloud Storage pendant le transfert. |
storage.objects.get |
Permet au compte de l'agent de lire les données et les métadonnées d'objets. |
storage.objects.delete |
Obligatoire si le transfert est configuré pour écraser ou supprimer des objets dans le récepteur. Par exemple, si overwriteObjectsAlreadyExistingInSink ou deleteObjectsUniqueInSink sont définis dans la configuration transferOptions de votre transfert. |
Pour accorder ces autorisations, attribuez le rôle suivant:
- Administrateur d'objets de l'espace de stockage (
roles/storage.objectAdmin
)
Vous pouvez également créer un rôle personnalisé avec les autorisations spécifiques et attribuer le rôle personnalisé.
Importations en plusieurs parties
Pour activer les importations en plusieurs parties pour les transferts de système de fichiers vers Cloud Storage ou les transferts entre les systèmes de fichiers, accordez également à l'agent les autorisations suivantes.
- Pour les transferts vers Cloud Storage, attribuez les autorisations au bucket de destination.
- Pour les transferts entre les systèmes de fichiers, attribuez des autorisations au bucket intermédiaire.
Les importations en plusieurs parties peuvent accélérer les transferts qui incluent des fichiers volumineux et ne sont compatibles qu'avec les buckets utilisant la classe de stockage standard.
Nom de l'autorisation d'importation en plusieurs parties | Description |
---|---|
storage.multipartUploads.create |
Importer des objets en plusieurs parties. |
storage.multipartUploads.abort |
Annuler les sessions d'importation en plusieurs parties. |
storage.multipartUploads.listParts |
Répertorier les parties d'objet importées dans une session d'importation en plusieurs parties. |
storage.multipartUploads.list |
Répertorier les sessions d'importation en plusieurs parties dans un bucket. |
Pour accorder ces autorisations, attribuez le rôle suivant:
- Administrateur d'objets de l'espace de stockage (
roles/storage.objectAdmin
)
Vous pouvez également créer un rôle personnalisé avec les autorisations spécifiques et attribuer le rôle personnalisé.