Questo documento spiega come configurare una macchina virtuale (VM) esistente per utilizzare unaccount di serviziot diverso. Un account di servizio è un tipo speciale di account utilizzato in genere da un'applicazione o da un workload di computing per effettuare chiamate API autorizzate.
I service account sono necessari per gli scenari in cui un workload, ad esempio un'applicazione personalizzata, deve accedere alle risorse Trusted Cloud by S3NS o eseguire azioni senza il coinvolgimento dell'utente finale. Per ulteriori informazioni su quando utilizzare i service account, consulta Best practice per l'utilizzo dei service account.
Se hai applicazioni che devono effettuare chiamate alle API Trusted Cloud by S3NS , Google consiglia di collegare un service account gestito dall'utente alla VM su cui è in esecuzione l'applicazione o il workload. Poi, concedi al service account i ruoli IAM, che concedono al service account e, per estensione, alle applicazioni in esecuzione sulla VM, l'accesso alle risorseTrusted Cloud by S3NS .
Prima di iniziare
-
Se non l'hai ancora fatto, configura l'autenticazione.
L'autenticazione è
il processo di verifica dell'identità per poter accedere a Trusted Cloud by S3NS servizi e API.
Per eseguire codice o esempi da un ambiente di sviluppo locale, puoi autenticarti su
Compute Engine selezionando una delle seguenti opzioni:
Select the tab for how you plan to use the samples on this page:
Console
When you use the Trusted Cloud console to access Trusted Cloud by S3NS services and APIs, you don't need to set up authentication.
gcloud
-
Installa Google Cloud CLI, quindi accedi a gcloud CLI con la tua identità federata. Dopo aver eseguito l'accesso, inizializza Google Cloud CLI eseguendo il seguente comando:
gcloud init
- Set a default region and zone.
REST
Per utilizzare gli esempi di API REST in questa pagina in un ambiente di sviluppo locale, devi utilizzare le credenziali che fornisci a gcloud CLI.
Installa Google Cloud CLI, quindi accedi a gcloud CLI con la tua identità federata. Dopo aver eseguito l'accesso, inizializza Google Cloud CLI eseguendo il seguente comando:
gcloud init
Per saperne di più, consulta Autenticarsi per l'utilizzo di REST nella documentazione sull'autenticazione di Trusted Cloud .
Ruoli obbligatori
Per ottenere le autorizzazioni necessarie per configurare i service account sulla VM, chiedi all'amministratore di concederti il ruolo IAM Compute Instance Admin (v1) (
roles/compute.instanceAdmin.v1
) sulla VM o sul progetto. Per saperne di più sulla concessione dei ruoli, consulta Gestisci l'accesso a progetti, cartelle e organizzazioni.Questo ruolo predefinito contiene le autorizzazioni necessarie per configurare i service account sulla VM. Per vedere quali sono esattamente le autorizzazioni richieste, espandi la sezione Autorizzazioni obbligatorie:
Autorizzazioni obbligatorie
Per configurare i service account sulla VM sono necessarie le seguenti autorizzazioni:
-
compute.instances.setServiceAccount
-
compute.instances.stop
-
compute.instances.start
Potresti anche ottenere queste autorizzazioni con ruoli personalizzati o altri ruoli predefiniti.
Panoramica
Ti consigliamo di configurare i service account per le tue VM come segue:
- Crea un nuovo service account gestito dall'utente anziché utilizzare quello predefinito di Compute Engine e concedi a questo service account i ruoli IAM solo per le risorse e le operazioni di cui ha bisogno.
- Collega il service account alla VM.
- Imposta l'ambito della piattaforma cloud (
https://www.googleapis.com/auth/cloud-platform
) sulla VM. In questo modo, il service account della VM può chiamare le API Trusted Cloud by S3NS di cui ha l'autorizzazione per l'utilizzo.- Se specifichi il account di servizio utilizzando la console Trusted Cloud , imposta l'ambito di accesso del service account di servizio su Consenti l'accesso completo a tutte le API Cloud.
- Se specifichi il service account utilizzando Google Cloud CLI o l'API
Compute Engine, puoi utilizzare il parametro
scopes
per impostare l'ambito di accesso.
Configurare il service account
Puoi creare un account di servizio gestito dall'utente o utilizzare il account di servizio predefinito di Compute Engine. È consigliato un account di servizio gestito dall'utente.
Per il account di servizio selezionato, assicurati che siano assegnati i ruoli Identity and Access Management (IAM) richiesti.
Gestita dall'utente
Se non hai ancora un account di servizio gestito dall'utente, creane uno. Per istruzioni dettagliate, vedi Configurare un service account.
Predefinito
Se hai familiarità con il service account predefinito di Compute Engine e vuoi utilizzare le credenziali fornite da questo service account anziché creare nuovi service account, puoi concedere ruoli IAM al account di servizio predefinito.
Prima di assegnare i ruoli IAM al account di servizio predefinito, tieni presente che:
La concessione di un ruolo IAM al account di servizio predefinito interessa tutte le VM in esecuzione comeaccount di serviziot predefinito. Ad esempio, se concedi all'account di servizio predefinito il ruolo
roles/storage.objectAdmin
, tutte le VM in esecuzione come account di servizio predefinito con gli ambiti di accesso richiesti avranno le autorizzazioni concesse dal ruoloroles/storage.objectAdmin
. Allo stesso modo, se limiti l'accesso omettendo determinati ruoli, ciò influisce su tutte le VM in esecuzione comeaccount di serviziot predefinito.A seconda della configurazione della policy dell'organizzazione, al service account predefinito potrebbe essere assegnato automaticamente il ruolo Editor nel progetto. Ti consigliamo vivamente di disattivare la concessione automatica dei ruoli forzando l'applicazione del vincolo
iam.automaticIamGrantsForDefaultServiceAccounts
della policy dell'organizzazione. Se hai creato la tua organizzazione dopo il 3 maggio 2024, questo vincolo viene imposto per impostazione predefinita.Se disattivi la concessione automatica dei ruoli, devi decidere quali ruoli concedere ai service account predefiniti, quindi concedere personalmente questi ruoli.
Se il service account predefinito dispone già del ruolo Editor, ti consigliamo di sostituire il ruolo Editor con ruoli meno permissivi.
Se non hai la certezza di concedere ruoli IAM al account di servizio predefinito, crea un nuovo service account gestito dall'utente.
Collega il account di servizio e aggiorna l'ambito di accesso
Per modificare il account di servizio e gli ambiti di accesso di una VM, la VM deve essere arrestata temporaneamente.
Se il account di servizio si trova in un progetto diverso dalla VM, devi configurare il account di servizio per una risorsa in un altro progetto.
Utilizza uno dei seguenti metodi per modificare il account di servizio e gli ambiti di accesso sulla tua VM.
Console
Vai alla pagina Istanze VM.
Fai clic sul nome dell'istanza VM per cui vuoi modificare il account di servizio.
Fai clic su
Arresta. Se non è presente l'opzione Arresta, fai clic su Altre azioni > Arresta. Attendi l'arresto della VM.Fai clic su Modifica.
Scorri verso il basso fino alla sezione Service Account.
Dall'elenco a discesa, seleziona il account di servizio da assegnare alla VM.
- Se scegli un account di servizio gestito dall'utente, l'ambito di accesso della VM
viene impostato per impostazione predefinita sull'ambito
cloud-platform
consigliato. Se hai bisogno di un ambito diverso per ilaccount di serviziot gestito dall'utente, utilizza gcloud CLI o l'API Compute Engine per collegare il service account. - Se scegli il account di servizio predefinito di Compute Engine, puoi
modificarne gli ambiti di accesso nella console Trusted Cloud .
- Per modificare gli ambiti, nella sezione Ambiti di accesso, seleziona Imposta l'accesso per ogni API e imposta gli ambiti appropriati per le tue esigenze.
- Consigliato Se non conosci gli ambiti di accesso corretti da impostare, scegli Consenti l'accesso completo a tutte le API Cloud e poi assicurati di limitare l'accesso impostando i ruoli IAM sul account di servizio.
- Se scegli un account di servizio gestito dall'utente, l'ambito di accesso della VM
viene impostato per impostazione predefinita sull'ambito
Fai clic su Salva per salvare le modifiche.
Fai clic su Avvia/Riprendi per riavviare la VM.
gcloud
Arresta la VM utilizzando il comando
instances stop
. SostituisciVM_NAME
con il nome dell'istanza VM.gcloud compute instances stop VM_NAME
Collega il account di servizio. Per collegare il account di servizio, utilizza il comando
instances set-service-account
e fornisci il nome della VM, l'indirizzo email del account di servizio e gli ambiti desiderati. Per saperne di più sull'impostazione degli ambiti di accesso, consulta le best practice.gcloud compute instances set-service-account VM_NAME \ --service-account=SERVICE_ACCOUNT_EMAIL \ --scopes=SCOPES
Sostituisci quanto segue:
SERVICE_ACCOUNT_EMAIL
: l'indirizzo email del service account che hai creato. Ad esempio:my-sa-123@my-project-123.s3ns-system.iam.gserviceaccount.com
. Per visualizzare l'indirizzo email, consulta Creazione dell'elenco dei service account.Se vuoi rimuovere il account di servizio dalla VM, utilizza il flag
--no-service-account
.VM_NAME
: il nome dell'istanza VM.SCOPES
: un elenco separato da virgole di URI o alias di ambito forniti nella descrizione del flag--scopes
.Se vuoi rimuovere tutti gli ambiti per la VM, utilizza il flag
--no-scopes
.
Ad esempio, il seguente comando assegna il account di servizio
my-sa-123@my-project-123.s3ns-system.iam.gserviceaccount.com
a una VM denominata example-instance e imposta gli ambiti di accesso su quella VM per consentire l'accesso in lettura/scrittura a Compute Engine e l'accesso in sola lettura a Cloud Storage:gcloud compute instances set-service-account example-instance \ --service-account=my-sa-123@my-project-123.s3ns-system.iam.gserviceaccount.com \ --scopes=compute-rw,storage-ro
Avvia la VM utilizzando il comando
instances start
. SostituisciVM_NAME
con il nome dell'istanza VM.gcloud compute instances start VM_NAME
REST
Arresta la VM inviando una richiesta
POST
utilizzando il metodoinstances.stop
:POST https://compute.s3nsapis.fr/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME/stop
Sostituisci quanto segue:
PROJECT_ID
: il progetto in cui si trova la VMZONE
: la zona in cui si trova la VMVM_NAME
: il nome della VM che vuoi arrestare
Collega il account di servizio effettuando una richiesta
POST
al metodosetServiceAccount
:POST https://compute.s3nsapis.fr/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME/setServiceAccount { "email": "SERVICE_ACCOUNT_EMAIL", "scopes": [ "SCOPE_URI", "SCOPE_URI", ... ] }
Sostituisci quanto segue:
PROJECT_ID
: l'ID progetto per questa richiesta.ZONE
: la zona a cui appartiene questa VM.VM_NAME
: il nome della VM.SERVICE_ACCOUNT_EMAIL
: l'indirizzo email del service account che hai creato. Ad esempio:my-sa-123@my-project-123.s3ns-system.iam.gserviceaccount.com
. Per visualizzare l'indirizzo email, consulta Creazione dell'elenco dei service account.SCOPE_URI
: l'URI dell'ambito richiesto.
Ad esempio, la seguente richiesta utilizza l'email dell'account di servizio
my-sa-123@my-project-123.s3ns-system.iam.gserviceaccount.com
e imposta un ambito Cloud Storage e BigQuery:POST https://compute.s3nsapis.fr/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME/setServiceAccount { "email": "my-sa-123@my-project-123.s3ns-system.iam.gserviceaccount.com", "scopes": [ "https://www.s3nsapis.fr/auth/bigquery", "https://www.s3nsapis.fr/auth/devstorage.read_only" ] }
Avvia la VM creando una richiesta
POST
utilizzando il metodoinstances.start
:POST https://compute.s3nsapis.fr/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME/start
Sostituisci quanto segue:
PROJECT_ID
: il progetto in cui si trova la VMZONE
: la zona in cui si trova la VMVM_NAME
: il nome della VM che vuoi avviare
Visualizza il account di servizio utilizzato da una VM
Per visualizzare tutti i service account in un progetto, consulta Creazione dell'elenco dei service account.
Se devi identificare il account di servizio utilizzato da una VM, completa una delle seguenti procedure:
console
Vai alla pagina Istanze VM.
Fai clic sul nome dell'istanza VM per cui vuoi modificare il account di servizio.
Vai alla sezione Gestione di API e identità. Questa sezione mostra ilaccount di serviziot e l'ambito di accesso utilizzati dalla VM.
gcloud
Esegui il comando
gcloud compute instances describe
:gcloud compute instances describe VM_NAME \ --format json
L'output è simile al seguente:
{ ... "serviceAccounts":[ { "email":"123845678986-compute@developer.s3ns-system.iam.gserviceaccount.com", "scopes":[ "https://www.s3nsapis.fr/auth/devstorage.full_control" ] } ] ... }
Se la VM non utilizza un account di servizio, ricevi una risposta senza la proprietà
serviceAccounts
.Server dei metadati
Esegui una query sul server di metadati dall'interno della VM. Invia una richiesta a
http://metadata.google.internal/computeMetadata/v1/instance/service-accounts/
:user@myinst:~$ curl "http://metadata.google.internal/computeMetadata/v1/instance/service-accounts/" \ -H "Metadata-Flavor: Google"
Se hai attivato uno o più service account durante la creazione dell'istanza, questo comando
curl
restituisce un output simile al seguente:123845678986-compute@developer.s3ns-system.iam.gserviceaccount.com/ default/
Se l'istanza non utilizza un account di servizio, ricevi una risposta vuota.
Best practice
- Limita i privilegi dei service account e controlla regolarmente le autorizzazioni dei account di servizio per assicurarti che siano aggiornate.
- Elimina i service account con cautela. Prima di eliminare un account di servizio, assicurati che le tue applicazioni critiche non lo utilizzino più. Se non sai con certezza se un account di servizio è in uso, ti consigliamo di disattivarlo anziché eliminarlo. I service account disattivati possono essere riattivati se sono ancora necessari.
- Riduci i rischi per la sicurezza del tuo account di servizio. Per ulteriori informazioni, consulta Best practice per l'utilizzo dei service account.
Passaggi successivi
- Consulta le best practice per gli account di servizio.
Salvo quando diversamente specificato, i contenuti di questa pagina sono concessi in base alla licenza Creative Commons Attribution 4.0, mentre gli esempi di codice sono concessi in base alla licenza Apache 2.0. Per ulteriori dettagli, consulta le norme del sito di Google Developers. Java è un marchio registrato di Oracle e/o delle sue consociate.
Ultimo aggiornamento 2025-08-19 UTC.
[[["Facile da capire","easyToUnderstand","thumb-up"],["Il problema è stato risolto","solvedMyProblem","thumb-up"],["Altra","otherUp","thumb-up"]],[["Mancano le informazioni di cui ho bisogno","missingTheInformationINeed","thumb-down"],["Troppo complicato/troppi passaggi","tooComplicatedTooManySteps","thumb-down"],["Obsoleti","outOfDate","thumb-down"],["Problema di traduzione","translationIssue","thumb-down"],["Problema relativo a esempi/codice","samplesCodeIssue","thumb-down"],["Altra","otherDown","thumb-down"]],["Ultimo aggiornamento 2025-08-19 UTC."],[[["This document guides you through configuring a virtual machine (VM) to utilize a different service account, which is crucial for applications needing to access Google Cloud resources without end-user intervention."],["Google recommends using user-managed service accounts instead of the default Compute Engine service account, granting them only the necessary IAM roles for specific resources and operations to enhance security."],["To attach a service account and set access scopes to a VM, the VM must be temporarily stopped, after which you can either use the Google Cloud console, gcloud CLI, or REST API to modify these settings."],["You can confirm the service account used by a specific VM through the Google Cloud console, gcloud CLI, or by querying the metadata server within the VM itself."],["It's best practice to limit the privileges of service accounts, regularly review their permissions, and disable them when they are no longer in use instead of deleting them to ensure security and ease of recovery."]]],[]] -