Ce document explique comment mettre à jour les buckets Cloud Storage pour un utilisateur Cloud FTP, y compris les buckets auxquels un utilisateur peut accéder et les autorisations dont il dispose.
Voici les étapes à suivre pour mettre à jour les buckets d'un utilisateur :
- Mettez à jour les rôles IAM du compte de service de l'utilisateur.
- Mappez les répertoires de l'utilisateur aux buckets mis à jour.
Avant de commencer
Créez un ou plusieurs buckets Cloud Storage pour stocker les données avec lesquelles l'utilisateur travaillera, s'ils n'existent pas déjà. Vous pouvez accorder à un utilisateur l'accès à un maximum de 10 buckets.
Rôles requis
Pour obtenir l'autorisation dont
vous avez besoin pour mettre à jour les utilisateurs SFTP,
demandez à votre administrateur de vous attribuer 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 requise 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 pour le 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 appropriés. Procédez comme suit :
Récupérez 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.
Si vous ajoutez des buckets au mappage de répertoire ou si vous augmentez l'accès aux buckets existants, procédez comme suit :
Attribuez-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.
Attribuez-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"
Attribuez 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 à attribuer. 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.
- Pour un accès en lecture seule, utilisez le rôle
Répétez les étapes précédentes pour chaque bucket auquel l'utilisateur doit accéder.
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_REVOKEpar 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
gcloud
Pour mettre à jour les buckets d'un utilisateur SFTP, exécutez la
gcloud alpha storage ftp users update commande.
Avant d'utiliser les données de la commande ci-dessous, effectuez les remplacements suivants :
- USERNAME : nom d'utilisateur SFTP.
- LOCATION_ID : emplacement du serveur, tel que
us-west1. - SERVER_ID : ID du serveur.
- BUCKET_NAME : nom d'un bucket auquel l'utilisateur SFTP a accès, tel que
example-bucket. Omettezgs://. - (Facultatif) BUCKET_PREFIX : chemin d'accès d'un dossier dans le bucket à définir comme le
répertoire racine pour ce mappage de répertoire.
Si vous omettez la propriété
bucket_prefix, Cloud FTP utilise la racine du bucket. -
DIRECTORY : chemin d'accès logique du répertoire de destination présenté à l'utilisateur SFTP. Par exemple,
/home/uploads.Si vous mappez plusieurs buckets ou dossiers, fournissez un chemin d'accès de répertoire unique pour chaque mappage.
Les répertoires logiques imbriqués ne sont pas compatibles. 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
/dir1et/dir2au lieu de/dir1et/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 surREAD_WRITE.
Pour accorder à un utilisateur l'accès à plusieurs buckets, fournissez l'option --storage-directory-mapping
plusieurs fois, avec un mappage de répertoire pour chaque bucket.
Exécutez la commande suivante :
Linux, macOS ou Cloud Shell
gcloud alpha storage ftp users update USERNAME --location=LOCATION_ID \ --server=SERVER_ID \ --storage-directory-mapping=bucket=BUCKET_NAME,bucket_prefix=BUCKET_PREFIX,directory=DIRECTORY,permission=SFTP_PERMISSION
Windows (PowerShell)
gcloud alpha storage ftp users update USERNAME --location=LOCATION_ID ` --server=SERVER_ID ` --storage-directory-mapping=bucket=BUCKET_NAME,bucket_prefix=BUCKET_PREFIX,directory=DIRECTORY,permission=SFTP_PERMISSION
Windows (cmd.exe)
gcloud alpha storage ftp users update USERNAME --location=LOCATION_ID ^ --server=SERVER_ID ^ --storage-directory-mapping=bucket=BUCKET_NAME,bucket_prefix=BUCKET_PREFIX,directory=DIRECTORY,permission=SFTP_PERMISSION
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.
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, fournissez le champ storageDirectoryMappings.
Avant d'utiliser les données de requête, effectuez les remplacements suivants :
- PROJECT_ID : ID du Google Cloud projet du serveur.
- LOCATION_ID : emplacement du serveur, tel que
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, tel que
example-bucket. Omettezgs://. - (Facultatif) BUCKET_PREFIX : chemin d'accès d'un dossier dans le bucket à définir comme le répertoire racine pour ce mappage de répertoire. Si vous omettez cette valeur, Cloud FTP utilise la racine du bucket root.
-
DIRECTORY : chemin d'accès logique du 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 de répertoire unique pour chaque mappage.
Les répertoires logiques imbriqués ne sont pas compatibles. 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
/dir1et/dir2au lieu de/dir1et/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 surREAD_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.
Bibliothèques clientes
C#
Pour savoir comment installer et utiliser la bibliothèque cliente pour Cloud FTP, consultez Bibliothèques clientes Cloud FTP. Pour en savoir plus, consultez la documentation de référence de l' API Cloud FTP C#.
Pour vous authentifier auprès de Cloud FTP, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Go
Pour savoir comment installer et utiliser la bibliothèque cliente pour Cloud FTP, consultez Bibliothèques clientes Cloud FTP. Pour en savoir plus, consultez la documentation de référence de l'API Cloud FTPGo.
Pour vous authentifier auprès de Cloud FTP, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Java
Pour savoir comment installer et utiliser la bibliothèque cliente pour Cloud FTP, consultez Bibliothèques clientes Cloud FTP. Pour en savoir plus, consultez la documentation de référence de l'API Java Cloud FTP.
Pour vous authentifier auprès de Cloud FTP, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Node.js
Pour savoir comment installer et utiliser la bibliothèque cliente pour Cloud FTP, consultez Bibliothèques clientes Cloud FTP. Pour en savoir plus, consultez la documentation de référence de l'API Cloud FTP Node.js.
Pour vous authentifier auprès de Cloud FTP, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
PHP
Pour savoir comment installer et utiliser la bibliothèque cliente pour Cloud FTP, consultez Bibliothèques clientes Cloud FTP. Pour en savoir plus, consultez la documentation de référence de l'API Cloud FTPPHP.
Pour vous authentifier auprès de Cloud FTP, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Python
Pour savoir comment installer et utiliser la bibliothèque cliente pour Cloud FTP, consultez Bibliothèques clientes Cloud FTP. Pour en savoir plus, consultez la documentation de référence de l'API Cloud FTP Python.
Pour vous authentifier auprès de Cloud FTP, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Ruby
Pour savoir comment installer et utiliser la bibliothèque cliente pour Cloud FTP, consultez Bibliothèques clientes Cloud FTP. Pour en savoir plus, consultez la documentation de référence de l'API Cloud FTP Ruby.
Pour vous authentifier auprès de Cloud FTP, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.