Configurer l'accès à un récepteur : système de fichiers

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 :

  1. 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.

  2. 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

  1. Dans la console Google Cloud , accédez à la page Buckets de Cloud Storage.

    Accéder à la page "Buckets"

  2. Cliquez sur le menu déroulant Bucket () associé au bucket intermédiaire, puis sélectionnez Modifier l'accès.
  3. Cliquez sur + Ajouter un compte principal.
  4. Dans Nouveaux comptes principaux, saisissez l'adresse e-mail de votre agent de service.
  5. Sélectionnez Storage Object Creator, Storage Object Viewer et Storage Legacy Bucket Reader dans les menus déroulants Sélectionner un rôle.
  6. Cliquez à nouveau sur + Ajouter un compte principal.
  7. Saisissez l'adresse e-mail du ou des comptes d'agent de transfert utilisés pour vos pools d'agents source et de destination.
  8. Sélectionnez Storage Object User dans le menu déroulant Sélectionner un rôle.
  9. Cliquez sur Enregistrer.

gcloud

  1. 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.objectCreator
    gcloud storage buckets add-iam-policy-binding gs://INTERMEDIATE_BUCKET_NAME \
        --member=serviceAccount:SERVICE_AGENT_EMAIL --role=roles/storage.objectViewer
    gcloud storage buckets add-iam-policy-binding gs://INTERMEDIATE_BUCKET_NAME \
        --member=serviceAccount:SERVICE_AGENT_EMAIL --role=roles/storage.legacyBucketReader
  2. Attribuez 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.objectUser

    Remplacez :

    • 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 serviceAccount si votre compte d'agent de transfert est un compte de service, ou user si 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

  1. 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
  2. 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 tableau bindings et enregistrez la stratégie fusionnée sous le nom intermediate_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 serviceAccount si votre compte d'agent de transfert est un compte de service, ou user si 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 members pour roles/storage.objectUser.
  3. 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