Lorsque vous transférez des données vers un système de fichiers sur site ou de cloud privé (tel que POSIX, NFS ou SMB), vous devez configurer les éléments suivants :
- Autorisations du système de fichiers local : accordez aux agents de transfert de destination un accès en écriture au niveau de l'OS à vos répertoires cibles.
- Autorisations du bucket intermédiaire (fichier à fichier uniquement) : accordez des rôles IAM sur le bucket Cloud Storage intermédiaire utilisé pour stocker les fichiers entre les systèmes de fichiers.
Prérequis
- Autorisations utilisateur : assurez-vous que votre compte utilisateur ou votre compte de service géré par l'utilisateur dispose des autorisations nécessaires pour configurer des jobs de transfert et des pools d'agents. Consultez Autorisations utilisateur requises.
- Autorisations au niveau du projet basées sur l'agent : assurez-vous d'avoir configuré les rôles requis au niveau du projet pour votre agent de service et votre compte d'agent de transfert. Consultez Autorisations au niveau du projet basées sur l'agent.
Autorisations du système de fichiers cible local
Les agents de transfert écrivent des fichiers directement dans votre système de fichiers hôte. Pour activer les écritures réussies :
Autorisations de l'utilisateur de l'OS : assurez-vous que l'utilisateur du système d'exploitation qui exécute le processus du conteneur dispose des autorisations de lecture, d'écriture et d'exécution sur l'arborescence du répertoire de destination.
Installer des répertoires : lorsque vous installez vos agents de destination, installez le chemin d'accès au répertoire cible dans le conteneur à l'aide de l'option
--mount-directories:gcloud transfer agents install --pool=DESTINATION_POOL_NAME \ --mount-directories=/path/to/destination/dir
Autorisations du bucket intermédiaire (transferts de fichier à fichier)
Les transferts entre deux systèmes de fichiers utilisent un bucket Cloud Storage intermédiaire pour stocker temporairement les fichiers pendant le transfert.
Les rôles prédéfinis suivants accordent à l'agent de service l'accès requis au bucket intermédiaire :
- Créateur d'objets Storage (
roles/storage.objectCreator) - Lecteur d'objets de l'espace de stockage (
roles/storage.objectViewer) - Lecteur des anciens buckets Storage (
roles/storage.legacyBucketReader)
Le rôle suivant accorde l'accès requis au bucket intermédiaire aux comptes d'agent de transfert :
- Utilisateur d'objets Storage (
roles/storage.objectUser)
Attribuez ces rôles sur le bucket intermédiaire :
Console
- Dans la console Google Cloud , accédez à la page Buckets de Cloud Storage.
- Cliquez sur le menu déroulant Bucket () associé au bucket intermédiaire, puis sélectionnez Modifier l'accès.
- Cliquez sur + Ajouter un compte principal.
- Dans Nouveaux comptes principaux, saisissez l'adresse e-mail de votre agent de service.
- Sélectionnez
Storage Object Creator,Storage Object VieweretStorage Legacy Bucket Readerdans les menus déroulants Sélectionner un rôle. - Cliquez à nouveau sur + Ajouter un compte principal.
- Saisissez l'adresse e-mail du ou des comptes d'agent de transfert utilisés pour vos pools d'agents source et de destination.
- Sélectionnez
Storage Object Userdans le menu déroulant Sélectionner un rôle. - Cliquez sur Enregistrer.
gcloud
Attribuez des rôles de journalisation et de métadonnées à l'agent de service :
gcloud storage buckets add-iam-policy-binding gs://INTERMEDIATE_BUCKET_NAME \ --member=serviceAccount:SERVICE_AGENT_EMAIL --role=roles/storage.objectCreatorgcloud storage buckets add-iam-policy-binding gs://INTERMEDIATE_BUCKET_NAME \ --member=serviceAccount:SERVICE_AGENT_EMAIL --role=roles/storage.objectViewergcloud storage buckets add-iam-policy-binding gs://INTERMEDIATE_BUCKET_NAME \ --member=serviceAccount:SERVICE_AGENT_EMAIL --role=roles/storage.legacyBucketReaderAttribuez des rôles de gestion des objets aux comptes d'agent de transfert pour les pools d'agents source et de destination :
gcloud storage buckets add-iam-policy-binding gs://INTERMEDIATE_BUCKET_NAME \ --member=serviceAccount_OR_user:TRANSFER_AGENT_ACCOUNT --role=roles/storage.objectUserRemplacez :
- INTERMEDIATE_BUCKET_NAME : nom de votre bucket de préproduction intermédiaire.
- SERVICE_AGENT_EMAIL : adresse e-mail de l'agent de service.
- serviceAccount_OR_user : spécifiez
serviceAccountsi votre compte d'agent de transfert est un compte de service, ouusersi vos agents ont été installés avec un compte utilisateur. - TRANSFER_AGENT_ACCOUNT : adresse e-mail du compte exécutant les agents de transfert. Répétez cette commande si vos pools d'agents source et de destination utilisent des comptes différents.
API REST
Générez un jeton d'accès pour authentifier votre requête. Si vous utilisez la CLI
gcloud, exécutez la commande suivante :gcloud auth print-access-token
Récupérez la stratégie IAM du bucket existant (
GET https://storage./storage/v1/b/<var>INTERMEDIATE_BUCKET_NAME</var>/iam), ajoutez les liaisons suivantes à son tableaubindingset enregistrez la stratégie fusionnée sous le nomintermediate_policy.json:{ "bindings": [ { "role": "roles/storage.objectCreator", "members": ["serviceAccount:SERVICE_AGENT_EMAIL"] }, { "role": "roles/storage.objectViewer", "members": ["serviceAccount:SERVICE_AGENT_EMAIL"] }, { "role": "roles/storage.legacyBucketReader", "members": ["serviceAccount:SERVICE_AGENT_EMAIL"] }, { "role": "roles/storage.objectUser", "members": ["serviceAccount_OR_user:TRANSFER_AGENT_ACCOUNT"] } ] }
Remplacez :
- SERVICE_AGENT_EMAIL : adresse e-mail de l'agent de service.
- serviceAccount_OR_user : spécifiez
serviceAccountsi votre compte d'agent de transfert est un compte de service, ouusersi vos agents ont été installés avec un compte utilisateur. - TRANSFER_AGENT_ACCOUNT : adresse e-mail du compte qui a installé vos agents de transfert. Si vos pools d'agents source et de destination utilisent des comptes différents, incluez les deux comptes dans le tableau
memberspourroles/storage.objectUser.
Mettez à jour la stratégie du bucket intermédiaire via
curl:curl -X PUT --data-binary @intermediate_policy.json \ -H "Authorization: Bearer OAUTH2_TOKEN" \ -H "Content-Type: application/json" \ "https://storage./storage/v1/b/INTERMEDIATE_BUCKET_NAME/iam"Remplacez :
- OAUTH2_TOKEN : jeton d'accès OAuth 2.0 généré à l'étape 1.
- INTERMEDIATE_BUCKET_NAME : nom de votre bucket intermédiaire.
Pour en savoir plus sur les architectures de fichier à fichier, consultez Transferts de système de fichiers à système de fichiers.
Performances et optimisation
- Pour maximiser le débit lors du transfert vers des systèmes de fichiers volumineux, installez plusieurs agents dans votre pool d'agents de destination (trois au minimum). Consultez Bonnes pratiques concernant les agents de transfert.
- Pour les fichiers volumineux dans les transferts de fichier à fichier, envisagez d'activer les importations fractionnées vers le bucket intermédiaire. Lorsque vous utilisez le rôle Utilisateur d'objets Storage (
roles/storage.objectUser), les autorisations d'importation en plusieurs parties requises (storage.multipartUploads.*) sont incluses automatiquement.
Étapes suivantes
- Découvrez comment installer des agents de transfert.
- Découvrez comment configurer l'accès à une source : système de fichiers.
- Découvrez comment configurer l'accès à une source : Cloud Storage.
- Découvrez comment transférer des données entre des systèmes de fichiers.