Mettre à jour le compte de service d'un utilisateur SFTP

Ce document explique comment modifier le compte de service d'un utilisateur Cloud FTP. Le compte de service accède aux ressources Cloud Storage au nom de l'utilisateur.

Voici les étapes à suivre pour modifier le compte de service d'un utilisateur :

  1. Configurez un compte de service avec les rôles IAM appropriés.
  2. Modifiez le compte de service associé à l'utilisateur.

Nous vous recommandons d'utiliser un compte de service dédié pour chaque utilisateur afin de pouvoir gérer l'accès SFTP séparément pour chacun d'eux.

Rôles requis

Pour obtenir l'autorisation nécessaire pour modifier 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 modifier les utilisateurs SFTP.

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

Configurer un compte de service

  1. Créez un compte de service pour l'utilisateur, s'il n'en existe pas déjà un.

    gcloud iam service-accounts create USERNAME-sa \
        --description="USERNAME SFTP Service Account" \
        --display-name="USERNAME SFTP Service Account"

    Remplacez USERNAME par un nom d'utilisateur unique pour l'utilisateur SFTP. Le nom d'utilisateur doit commencer par une lettre minuscule et peut inclure des lettres minuscules, des chiffres ou des traits d'union.

    En cas de réussite, un message semblable à Created service account [example-userid-sa] s'affiche.

  2. Accordez-vous le rôle Utilisateur du compte de service (roles/iam.serviceAccountUser) :

    gcloud iam service-accounts add-iam-policy-binding USERNAME-sa@PROJECT_ID.iam.gserviceaccount.com \
        --member="user:ADMINISTRATOR_EMAIL" \
        --role="roles/iam.serviceAccountUser"

    Remplacez ADMINISTRATOR_EMAIL par l'adresse e-mail du responsable qui modifie l'utilisateur SFTP. Si vous modifiez l'utilisateur (et non une application), cette valeur correspond à l'adresse e-mail que vous utilisez pour accéder à Google Cloud.

    En cas de réussite, un message semblable à celui-ci s'affiche :

    Updated IAM policy for serviceAccount [example-userid-sa@example-project.iam.gserviceaccount.com].
    bindings:
    - members:
    - user:admin@example.com
    role: roles/iam.serviceAccountUser
    etag: BwZJk7OiSzw=
    version: 1
    
  3. Accordez au compte de service de l'utilisateur le rôle IAM nécessaire pour accéder au bucket :

    gcloud storage buckets add-iam-policy-binding gs://BUCKET_NAME \
        --member="serviceAccount:USERNAME-sa@PROJECT_ID.iam.gserviceaccount.com" \
        --role="ROLE"

    Remplacez ROLE par l'un des rôles IAM 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.

    Répétez cette étape pour chaque bucket auquel l'utilisateur doit accéder.

  4. Autorisez l'agent de service Cloud FTP à générer des jetons pour le compte de service de l'utilisateur :

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

    2. Autorisez l'agent de service Cloud FTP :

      gcloud iam service-accounts add-iam-policy-binding USERNAME-sa@PROJECT_ID.iam.gserviceaccount.com \
          --member="serviceAccount:SERVICE_AGENT_EMAIL" \
          --role="roles/iam.serviceAccountTokenCreator"

      Remplacez SERVICE_AGENT_EMAIL par l'adresse e-mail de l'agent de service.

Ensuite, modifiez le compte de service de l'utilisateur.

Modifier le compte de service d'un utilisateur

REST

Pour modifier le compte de service associé à un utilisateur SFTP, utilisez la servers.users.patch méthode. Dans le paramètre de requête updateMask, indiquez le champ customerServiceAccount.

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

Méthode HTTP et URL :

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

Corps JSON de la requête :

{
  "customerServiceAccount": "USERNAME-sa@PROJECT_ID.iam.gserviceaccount.com"
}

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

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

Étape suivante