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:
- Configura un account di servizio con i ruoli IAM appropriati.
- 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
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
USERNAMEcon 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].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_EMAILcon 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: 1Concedi 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
ROLEcon 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.
- Per l'accesso di sola lettura, utilizza il ruolo
Autorizza il service agent Cloud FTP a generare token per il account di servizio dell'utente:
Ottieni l'indirizzo email del service agent del server SFTP. Per i passaggi, consulta Ottieni i dettagli di un server.
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_EMAILcon 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.