Mettre à jour les buckets pour un utilisateur SFTP

Ce document explique comment mettre à jour les buckets Cloud Storage d'un utilisateur Cloud FTP, y compris les buckets auxquels un utilisateur peut accéder et les autorisations dont il dispose.

Voici les étapes générales à suivre pour mettre à jour les buckets d'un utilisateur :

  1. Mettez à jour les rôles IAM du compte de service de l'utilisateur.
  2. Mappez les répertoires de l'utilisateur aux buckets mis à jour.

Avant de commencer

Rôles requis

Pour obtenir l'autorisation nécessaire pour mettre à jour les utilisateurs SFTP, demandez à votre administrateur de vous accorder le rôle IAM Administrateur FTP (roles/ftp.admin) sur votre projet. Pour en savoir plus sur l'attribution de rôles, consultez Gérer l'accès aux projets, aux dossiers et aux organisations.

Ce rôle prédéfini contient l' ftp.users.update autorisation, qui est nécessaire pour mettre à jour les utilisateurs SFTP.

Vous pouvez également obtenir cette autorisation avec des rôles personnalisés ou d'autres rôles prédéfinis.

Mettre à jour les rôles IAM du compte de service d'un utilisateur

Si vous modifiez les buckets auxquels un utilisateur peut accéder ou l'autorisation dont il dispose pour un mappage de répertoire existant, vous devez mettre à jour le compte de service de l'utilisateur avec les rôles IAM pertinents. Procédez comme suit :

  1. Obtenez l'adresse e-mail du compte de service de l'utilisateur. Pour connaître la procédure à suivre, consultez Obtenir des informations sur un utilisateur.

  2. Si vous ajoutez des buckets au mappage de répertoire ou si vous augmentez l'accès aux buckets existants, procédez comme suit :

    1. Accordez-vous le rôle Lecteur de buckets Storage (roles/storage.bucketViewer) sur le bucket, si vous ne l'avez pas déjà :

      gcloud storage buckets add-iam-policy-binding gs://BUCKET_NAME \
          --member="user:ADMINISTRATOR_EMAIL" \
          --role="roles/storage.bucketViewer"

      Remplacez les éléments suivants :

      • ADMINISTRATOR_EMAIL: adresse e-mail du compte principal qui crée l'utilisateur SFTP. Si vous créez l' utilisateur (par opposition à une application), cette valeur correspond à l'adresse e-mail que vous utilisez pour accéder à Google Cloud.

      • BUCKET_NAME : nom du bucket.

    2. Accordez-vous le rôle Lecteur d'objets Storage (roles/storage.objectViewer) sur le bucket, si vous ne l'avez pas déjà :

      gcloud storage buckets add-iam-policy-binding gs://BUCKET_NAME \
          --member="user:ADMINISTRATOR_EMAIL" \
          --role="roles/storage.objectViewer"
    3. Accordez au compte de service de l'utilisateur les rôles IAM nécessaires pour accéder aux buckets :

      gcloud storage buckets add-iam-policy-binding gs://BUCKET_NAME \
        --member="serviceAccount:SERVICE_ACCOUNT" \
        --role="ROLE_TO_GRANT"

      Remplacez les éléments suivants :

      • SERVICE_ACCOUNT: adresse e-mail du compte de service de l'utilisateur.
      • ROLE_TO_GRANT: rôle IAM à accorder. Spécifiez l'un des rôles suivants :

        • Pour un accès en lecture seule, utilisez le rôle roles/storage.objectViewer.
        • Pour un accès en lecture et en écriture, utilisez le rôle roles/storage.objectAdmin.
    4. Répétez les étapes précédentes pour chaque bucket auquel l'utilisateur doit accéder.

  3. Si vous supprimez des buckets du mappage de répertoire ou si vous réduisez l'accès aux buckets existants, révoquez l'accès du compte de service de l'utilisateur :

    gcloud storage buckets remove-iam-policy-binding gs://BUCKET_NAME \
      --member="serviceAccount:SERVICE_ACCOUNT" \
      --role="ROLE_TO_REVOKE"

    Remplacez ROLE_TO_REVOKE par le rôle IAM que vous souhaitez révoquer.

    Répétez cette étape pour chaque bucket et rôle IAM auxquels l'utilisateur ne doit plus avoir accès.

Mettre à jour les buckets d'un utilisateur

REST

Pour mettre à jour les buckets d'un utilisateur SFTP, utilisez la servers.users.patch méthode. Dans le paramètre de requête updateMask, indiquez le champ storageDirectoryMappings.

Avant d'utiliser les données de la requête, effectuez les remplacements suivants :

  • PROJECT_ID : ID du projet du serveur. Google Cloud
  • LOCATION_ID : emplacement du serveur, par exemple us-west1.
  • SERVER_ID : ID du serveur.
  • USERNAME : nom d'utilisateur SFTP.
  • BUCKET_NAME : nom d'un bucket auquel l'utilisateur SFTP a accès, par exemple example-bucket. Omettez gs://.
  • (Facultatif) BUCKET_PREFIX : chemin d'accès à un dossier du bucket à définir comme répertoire racine pour ce mappage de répertoire. Si vous omettez cette valeur, Cloud FTP utilise la racine du bucket.
  • DIRECTORY : chemin d'accès logique au répertoire de destination présenté à l'utilisateur SFTP. Par exemple, /home/uploads. Si vous omettez cette valeur, Cloud FTP définit le répertoire de destination sur /.

    Si vous mappez plusieurs buckets ou dossiers, fournissez un chemin d'accès unique pour chaque mappage.

    Les répertoires logiques imbriqués ne sont pas acceptés. Si vous fournissez plusieurs mappages pour un répertoire, fournissez les répertoires dans une structure plate plutôt qu'imbriquée. Par exemple, utilisez /dir1 et /dir2 au lieu de /dir1 et /dir1/dir2.

  • SFTP_PERMISSION : niveau d'accès au répertoire. Pour un accès en lecture seule, définissez cette valeur sur READ_ONLY. Pour un accès en lecture et en écriture, définissez cette valeur sur READ_WRITE.

Pour accorder à un utilisateur l'accès à plusieurs buckets, fournissez plusieurs mappages de buckets dans la storageDirectoryMappings liste.

Méthode HTTP et URL :

PATCH https://ftp.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/servers/SERVER_ID/users/USERNAME?updateMask=storageDirectoryMappings

Corps JSON de la requête :

{
  "storageDirectoryMappings": [
    {
      "bucket": "BUCKET_NAME",
      "bucketPrefix": "BUCKET_PREFIX",
      "directory": "DIRECTORY",
      "permission": "SFTP_PERMISSION"
    }
  ]
}

Pour envoyer votre requête, développez l'une des options suivantes :

La réponse identifie une opération de longue durée. La mise à jour de l'utilisateur prend quelques secondes.

Si un utilisateur dispose d'une connexion SFTP active, il devra peut-être se déconnecter, puis se reconnecter pour que les paramètres de bucket mis à jour prennent effet.