Aggiornare il account di servizio per un utente SFTP

Questo documento mostra come aggiornare il account di servizio di un utente Cloud FTP. Il account di servizio accede alle risorse Cloud Storage per conto dell'utente.

A livello generale, ecco i passaggi per aggiornare il account di servizio di un utente:

  1. Configura un account di servizio con i ruoli IAM appropriati.
  2. Aggiorna il account di servizio collegato all'utente.

Ti consigliamo di utilizzare un account di servizio dedicato per ogni utente, in modo da poter gestire l'accesso SFTP separatamente per ciascun utente.

Ruoli obbligatori

Per ottenere l'autorizzazione necessaria per aggiornare gli utenti SFTP, chiedi all'amministratore di concederti il ruolo IAM FTP Admin (roles/ftp.admin) nel progetto. Per saperne di più sulla concessione dei ruoli, consulta Gestisci l'accesso a progetti, cartelle e organizzazioni.

Questo ruolo predefinito contiene l'autorizzazione ftp.users.update , necessaria per aggiornare gli utenti SFTP.

Potresti anche ottenere questa autorizzazione con ruoli personalizzati o altri ruoli predefiniti.

Configura un account di servizio

  1. Crea un account di servizio per l'utente, se non ne esiste già uno.

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

    Sostituisci USERNAME con un nome utente univoco per l'utente SFTP. Il nome utente deve iniziare con una lettera minuscola e può includere lettere minuscole, numeri o trattini.

    Se l'operazione va a buon fine, viene visualizzato un messaggio simile a Created service account [example-userid-sa].

  2. Concediti il ruolo Utente account di servizio (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"

    Sostituisci ADMINISTRATOR_EMAIL con l'indirizzo email della principale che sta aggiornando l'utente SFTP. Se stai aggiornando l'utente (anziché un'applicazione), questo valore è l'indirizzo email che utilizzi per accedere Google Cloud.

    Se l'operazione va a buon fine, viene visualizzato un messaggio simile al seguente:

    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. Concedi al account di servizio dell'utente il ruolo IAM necessario per accedere al bucket:

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

    Sostituisci ROLE con uno dei seguenti ruoli IAM:

    • Per l'accesso di sola lettura, utilizza il ruolo roles/storage.objectViewer.
    • Per l'accesso in lettura e scrittura, utilizza il ruolo roles/storage.objectAdmin.

    Ripeti questo passaggio per ogni bucket a cui l'utente deve accedere.

  4. Autorizza il service agent Cloud FTP a generare token per il account di servizio dell'utente:

    1. Ottieni l'indirizzo email del service agent del server SFTP. Per i passaggi, consulta Ottieni i dettagli di un server.

    2. Autorizza il service agent 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"

      Sostituisci SERVICE_AGENT_EMAIL con l'indirizzo email del service agent.

Poi, aggiorna il account di servizio dell'utente.

Aggiorna il account di servizio di un utente

REST

Per aggiornare il account di servizio collegato a un utente SFTP, utilizza il servers.users.patch metodo. Nel parametro di query updateMask, fornisci il campo customerServiceAccount.

Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:

  • PROJECT_ID: l' Google Cloud ID progetto del server.
  • LOCATION_ID: la località del server, ad esempio us-west1.
  • SERVER_ID: l'ID server.
  • USERNAME: il nome utente dell'utente SFTP.

Metodo HTTP e URL:

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

Corpo JSON della richiesta:

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

Per inviare la richiesta, espandi una di queste opzioni:

La risposta identifica un'operazione a lunga esecuzione. L'aggiornamento dell'utente richiede alcuni secondi.

Passaggi successivi