Configurer l'accès aux sources et aux récepteurs de données

Restez organisé à l'aide des collections Enregistrez et classez les contenus selon vos préférences.

Cette page explique comment configurer l'accès à la source et au récepteur de données afin de transférer des données à l'aide du service de transfert de stockage.

Le service de transfert de stockage utilise un compte de service géré par Google pour déplacer vos données. Si vous créez un transfert à partir de Google Cloud Console et que vous êtes autorisé à mettre à jour les stratégies IAM pour les ressources Cloud Storage, les transferts créés à partir de Google Cloud Console accordent automatiquement au compte de service géré par Google utilisé par le service de transfert de stockage les autorisations requises pour le transfert.

L'accès à des sources de données et des transferts autres que Google Cloud créés à l'aide de l'API du service de transfert de stockage nécessite une configuration supplémentaire.

Prérequis

Les autorisations de compte de service sont accordées au niveau du bucket. Vous devez être en mesure d'accorder ces autorisations, par exemple en disposant du rôle d'administrateur de l'espace de stockage. Pour en savoir plus, consultez la section Gestion de l'authentification et des accès.

Si vous prévoyez d'utiliser Pub/Sub pour les transferts, assurez-vous d'attribuer au compte de service le rôle IAM Éditeur Pub/Sub (roles/pubsub.publisher) pour le sujet Pub/Sub souhaité. Plusieurs secondes peuvent s'écouler entre l'attribution du rôle et son application à votre compte de service. Si vous accordez cette autorisation de manière automatisée, attendez 30 secondes avant de configurer le service de transfert de stockage.

Si Cloud Key Management Service est activé sur vos buckets Cloud Storage sources ou de destination, vérifiez que les quotas indiqués pour Cloud KMS sur la page "Quotas" de votre projet sont compatibles avec les quotas de lecture et les quotas d'écriture du service de transfert de stockage. Si ce n'est pas le cas, demandez une augmentation du quota depuis la page "Quotas" de votre projet.

Pour en savoir plus, consultez les ressources suivantes :

Configurer l'accès à la source de données

Cloud Storage

Le service de transfert de stockage utilise un compte de service géré par Google pour déplacer vos données depuis un bucket source Cloud Storage, créé la première fois que vous appelez googleServiceAccounts.get.

Le format du compte de service est le suivant : project-PROJECT_NUMBER@storage-transfer-service.iam.gserviceaccount.com. Pour rechercher le format de votre compte de service, utilisez l'appel d'API googleServiceAccounts.get.

Pour configurer le service de transfert de stockage afin d'utiliser Cloud Storage en tant que source de données, attribuez les rôles suivants ou accordez des autorisations équivalentes au compte de service géré par Google et renvoyé par l'appel d'API googleServiceAccounts.get :

Rôle Utilisation Remarques
Lecteur des objets Storage (roles/storage.objectViewer) Permet au compte de service de lire le contenu du bucket, ainsi que de lire les métadonnées et données des objets.
Lecteur des anciens buckets Storage (roles/storage.legacyBucketReader) Permet au compte de service de lire le contenu et les métadonnées d'un bucket, ainsi que de lire les métadonnées des objets. Si vous n'avez pas l'intention de supprimer les objets sources de Cloud Storage, attribuez le rôle Lecteur des anciens buckets Storage (roles/storage.legacyBucketReader) au compte de service.
Rédacteur des anciens buckets Storage (roles/storage.legacyBucketWriter) Permet au compte de service de créer, d'écraser et de supprimer des objets, de répertorier les objets d'un bucket et de lire les métadonnées des objets lors de cette opération, ainsi que de lire les métadonnées d'un bucket, à l'exclusion des stratégies IAM. Si vous avez l'intention de supprimer les objets sources de Cloud Storage, attribuez le rôle Rédacteur des anciens buckets Storage (roles/storage.legacyBucketWriter) au compte de service.

Pour les tâches de transfert avancées, consultez la page Autorisations IAM pour le service de transfert de stockage.

Amazon S3

Pour configurer l'accès à un bucket Amazon S3, suivez les étapes ci-dessous :

  1. Configurez l'accès au bucket Amazon S3 en utilisant l'une des méthodes suivantes :

    Identifiants d'accès

    1. Créez un utilisateur AWS IAM (AWS Identity and Access Management) avec un nom facile à identifier, tel que transfer-user. Vérifiez que le nom respecte bien les consignes relatives aux noms d'utilisateurs AWS IAM (consultez la page Quotas IAM et STS).
    2. Accordez à l'utilisateur AWS IAM le droit d'effectuer les opérations suivantes :
      • Afficher le bucket Amazon S3
      • Obtenir l'emplacement du bucket
      • Lire les objets du bucket
      • Si vous envisagez de supprimer les objets de la source après leur transfert, accordez à l'utilisateur les autorisations "Supprimer des objets".
    3. Créez au moins une paire de clés d'accès/secrètes pour la tâche de transfert que vous souhaitez configurer. Vous pouvez également créer une paire de clés d'accès/secrètes distincte pour chaque tâche de transfert.

    Identité fédérée

    1. Le service de transfert de stockage utilise un compte de service géré par Google pour déplacer les données d'un bucket source Amazon S3. En général, le compte de service est au format suivant : project-PROJECT_NUMBER@storage-transfer-service.iam.gserviceaccount.com. Pour rechercher le format de votre compte de service et le créer s'il n'existe pas déjà, utilisez l'appel d'API googleServiceAccounts.get. Notez le compte de service pour les étapes suivantes.
    2. Pour permettre au service d'authentifier les requêtes sortantes avec le compte de service, ajoutez le rôle Créateur de jetons du compte de service au compte de service que vous avez noté précédemment.
    3. Créez le rôle IAM Nom de ressource Amazon (ARN) suivant avec les autorisations AssumeRoleWithWebIdentity :
      {
        "Version": "2012-10-17",
        "Statement": [
          {
            "Effect": "Allow",
            "Principal": {
              "Federated": "accounts.google.com"
            },
            "Action": "sts:AssumeRoleWithWebIdentity",
            "Condition": {
              "StringEquals": {
                "accounts.google.com:sub": "Service_account_subject_identifier"
              }
            }
          }
        ]
      }
                        
      Pour en savoir plus sur les ARN, consultez la page ARN d'IAM.
    4. Ajoutez des autorisations qui permettent au service de transfert de stockage d'accéder aux ressources Amazon S3. Pour ce faire, associez la stratégie suivante au rôle IAM ARN, ce qui peut être effectué via la console IAM AWS :
      {
        "Version": "2012-10-17",
        "Statement": [
          {
            "Effect": "Allow",
            "Action": [
                "s3:Get*",
                "s3:List*",
                "s3:Delete*"
             ],
            "Resource": "*"
          }
        ]
      }
                        
  2. Restaurez tous les objets archivés dans Amazon Glacier. Les objets Amazon S3 archivés dans Amazon Glacier ne seront pas accessibles tant qu'ils n'auront pas été restaurés. Pour en savoir plus, consultez le livre blanc Migration d'Amazon Glacier vers Google Cloud Storage Nearline (en anglais).

Microsoft Azure Blob Storage

Pour configurer l'accès à un conteneur de stockage Microsoft Azure, procédez comme suit :

  1. Créez un utilisateur de stockage Microsoft Azure ou utilisez-en un existant pour accéder au compte de stockage de votre conteneur dans le stockage Blob Azure Microsoft.
  2. Créez un jeton SAP au niveau du conteneur. Consultez la page Accorder un accès limité aux ressources de stockage Azure à l’aide des signatures d’accès partagé (SAP).

    Le délai d'expiration par défaut pour les jetons SAP est de 8 heures. Lorsque vous créez votre jeton SAP, veillez à définir un délai d'expiration raisonnable vous permettant de finaliser votre transfert.

Liste d'URL

Si votre source de données est constituée d'une liste d'URL, vérifiez que chaque objet de la liste est accessible au public.

Configurer l'accès au récepteur de données

Le service de transfert de stockage utilise un compte de service géré par Google pour déplacer vos données depuis un bucket source Cloud Storage, créé la première fois que vous appelez googleServiceAccounts.get.

En général, le compte de service est au format suivant : project-PROJECT_NUMBER@storage-transfer-service.iam.gserviceaccount.com. Pour rechercher le format de votre compte de service, utilisez l'appel d'API googleServiceAccounts.get.

Le récepteur des données pour le transfert est toujours un bucket Cloud Storage.

Pour configurer le service de transfert de stockage afin d'utiliser Cloud Storage en tant que récepteur de données, attribuez les rôles suivants ou accordez des autorisations équivalentes au compte de service géré par Google et renvoyé par l'appel d'API googleServiceAccounts.get :

Rôle Effet
Rédacteur des anciens buckets Storage (roles/storage.legacyBucketWriter) Permet au compte de service géré par Google de créer, d'écraser et de supprimer des objets, de répertorier les objets du bucket de destination et de lire les métadonnées du bucket.
Lecteur des objets Storage (roles/storage.objectViewer) Permet au compte de service géré par Google de répertorier et d'obtenir les objets du bucket de destination.

Pour en savoir plus sur les autorisations requises, consultez la page Autorisations IAM pour le service de transfert de stockage.

Étape suivante