Autenticarsi con le identità di servizio

Un'identità di servizio in Google Distributed Cloud (GDC) air-gapped fornisce un'identità dedicata per consentire a workload o servizi di accedere in modo programmatico a risorse e microservizi in modo sicuro. Si tratta di identità speciali utilizzate da applicazioni o carichi di lavoro, anziché da una persona, e non possono essere utilizzate per l'accesso umano. Analogamente agli account utente, concedi autorizzazioni e ruoli a un'identità di servizio per definire a cosa è autorizzata ad accedere.

Potresti notare due termini utilizzati per questo concetto. La console GDC utilizza principalmente il termine identità del servizio, mentre i comandi gdcloud e le interazioni API spesso utilizzano account di servizio. Il secondo riflette il nome della risorsa personalizzata Kubernetes sottostante, ProjectServiceAccount. Entrambi i termini si riferiscono alla stessa cosa: l'identità non umana per i tuoi carichi di lavoro. Questo documento utilizza l'identità di servizio come termine principale.

Le identità di servizio sono utili per gestire l'infrastruttura GDC, ad esempio:

  • Servizi e workload Distributed Cloud interni per accedere in modo sicuro all'interfaccia di programmazione delle applicazioni (API) del control plane Distributed Cloud. Ad esempio, i servizi di database interagiscono con le API Kubernetes per creare ed eliminare database.
  • Carichi di lavoro dei clienti in Distributed Cloud per accedere ai servizi Distributed Cloud ed effettuare chiamate API autorizzate. Ad esempio, le identità di servizio possono gestire un cliente utilizzando un notebook Vertex AI Workbench per trascrivere file audio utilizzando l'API Speech-to-Text.
  • Workload esterni da federare con Distributed Cloud. Ad esempio, le identità di servizio possono gestire un'applicazione esterna a Distributed Cloud che digitalizza i documenti, ma vuole utilizzare l'API Optical Character Recognition (OCR) per sostituire il motore OCR attuale.
  • Servizi Distributed Cloud o controller di sistema per accedere in modo sicuro alle risorse dei clienti o ai cluster utente. Ad esempio, le identità di servizio possono gestire i flussi di lavoro di autenticazione e autorizzazione in cui i controller di servizio in esecuzione nei cluster di amministrazione devono eseguire i carichi di lavoro all'interno dei cluster utente gestiti dai clienti.

La gestione delle identità di servizio coinvolge sia l'identità di servizio (rappresentata da una risorsa ProjectServiceAccount) sia le relative credenziali (coppie di chiavi pubblica e privata). Puoi gestire gli account per le identità di servizio utilizzando la console GDC, la CLI gdcloud o l'API. Con la CLI gdcloud, la funzionalità di identità del servizio si basa sull'API ProjectServiceAccount globale. Poiché le risorse ProjectServiceAccount sono configurate a livello globale, operano in tutte le zone del tuo universo gdcloud.

Prima di iniziare

Per completare le attività descritte in questo documento, devi disporre di un progetto. Per scoprire come creare un progetto, consulta Creare un progetto.

Devi anche disporre delle autorizzazioni necessarie e preparare l'ambiente.

Richiedi ruoli IAM

Per creare, aggiornare ed eliminare le identità di servizio all'interno di un progetto, contatta l'amministratore IAM dell'organizzazione o l'amministratore IAM del progetto per richiedere il ruolo Amministratore IAM del progetto (project-iam-admin).

L'amministratore IAM dell'organizzazione può concedere questo ruolo per qualsiasi progetto all'interno dell'organizzazione. L'amministratore IAM progetto può concedere questo ruolo nell'ambito del suo progetto specifico.

prepara l'ambiente

Per utilizzare gli strumenti a riga di comando per gestire le identità di servizio, completa la seguente configurazione:

Crea un'identità di servizio

La creazione di un'identità di servizio include la creazione di un account e delle relative credenziali.

Crea un account

Per creare un account per un'identità di servizio, utilizza la console GDC, la CLI gdcloud o l'API per creare una risorsa ProjectServiceAccount in un progetto.

Console

  1. Accedi alla console GDC.
  2. Nel menu di navigazione, seleziona Identità e accesso > Identità di servizio.
  3. Fai clic su Crea identità di servizio. Viene visualizzata la pagina Dettagli identità di servizio.
  4. Nel campo Nome identità di servizio, inserisci un nome per l'identità di servizio. Ad esempio: testserviceidentity.
  5. Fai clic su Crea.

gdcloud

Crea un account:

gdcloud iam service-accounts create NAME \
    --project=PROJECT

Sostituisci i seguenti valori:

  • NAME: il nome del ProjectServiceAccount. Il nome deve essere univoco all'interno dello spazio dei nomi del progetto.
  • PROJECT: il progetto in cui creare l'identità del servizio. Se gdcloud init è già impostato, ometti il flag --project.

Questo comando crea un ProjectServiceAccount nello spazio dei nomi del progetto sul server dell'API di gestione.

API

  1. Crea un file YAML della risorsa personalizzata ProjectServiceAccount, ad esempio my-project-sa.yaml:

    apiVersion: resourcemanager.global.gdc.goog/v1
    kind: ProjectServiceAccount
    metadata:
      name: NAME
      namespace: PROJECT
    spec:
      keys:
      - algorithm: ALGORITHM
        id: KEY_ID
        key: BASE64_ENCODED_KEY
        validAfter: "START_TIME"
        validBefore: "EXPIRATION_TIME"
    

    Sostituisci le seguenti variabili:

    • NAME: il nome della risorsa ProjectServiceAccount. Il nome deve essere univoco all'interno dello spazio dei nomi del progetto.
    • PROJECT: il progetto in cui creare l'identità del servizio.
    • ALGORITHM: l'algoritmo della chiave. Sono supportate solo le chiavi ES256.
    • KEY_ID: l'identificatore univoco della chiave. L'ID viene utilizzato per determinare la chiave da verificare.
    • BASE64_ENCODED_KEY: la chiave pubblica con codifica Base64 in formato PEM da verificare. La chiave privata utilizzata per generare questa chiave pubblica è prevista nel formato PEM ECDSA P256.
    • START_TIME: l'ora di inizio in cui la chiave diventa valida, ad esempio 2025-02-07T00:59:34Z.
    • EXPIRATION_TIME: la data di scadenza della chiave, ad esempio 2026-02-07T00:59:34Z.
  2. Applica la risorsa personalizzata ProjectServiceAccount al server API globale:

    kubectl --kubeconfig GLOBAL_API_SERVER_KUBECONFIG apply -f my-project-sa.yaml
    

    Sostituisci la variabile GLOBAL_API_SERVER_KUBECONFIG con il percorso del file kubeconfig per il server API globale.

Crea credenziali

Per consentire a un carico di lavoro o a un'applicazione di autenticarsi come identità di servizio (rappresentata dall'account che hai creato), devi generare le credenziali. La creazione delle credenziali comporta la generazione di una coppia di chiavi crittografiche privata e pubblica e l'associazione della chiave pubblica all'identità del servizio.

Per creare le credenziali per un'identità di servizio, utilizza la console GDC, la CLI gdcloud o l'API.

Console

  1. Accedi alla console GDC.
  2. Nel menu di navigazione, seleziona Identity & Access > Service Identities.
  3. Fai clic sul nome dell'identità di servizio che vuoi aggiungere alla chiave.
  4. Fai clic su Crea nuova chiave.
  5. La nuova chiave viene visualizzata nell'elenco Chiavi e una finestra di dialogo conferma che la chiave è stata creata correttamente.

gdcloud

Il comando gdcloud crea un file JSON delle credenziali predefinite dell'applicazione e una coppia di chiavi pubblica e privata:

gdcloud iam service-accounts keys create APPLICATION_DEFAULT_CREDENTIALS_FILENAME \
    --project=PROJECT \
    --iam-account=NAME \
    --ca-cert-path=CA_CERTIFICATE_PATH

Sostituisci i seguenti valori:

  • APPLICATION_DEFAULT_CREDENTIALS_FILENAME: il nome del file JSON.
  • PROJECT : seleziona il progetto per cui creare la chiave. Se gdcloud init è già impostato, puoi omettere il flag --project.
  • NAME: il nome dell'identità del servizio a cui aggiungere la chiave.
  • CA_CERTIFICATE_PATH: (facoltativo) il percorso del certificato dell'autorità di certificazione (CA) per verificare l'endpoint di autenticazione. Se non specifichi questo percorso, vengono utilizzati i certificati CA di sistema. Devi installare la CA nei certificati CA di sistema.

Distributed Cloud aggiunge la chiave pubblica alle chiavi ProjectServiceAccount che utilizzi per verificare i token web JSON (JWT) firmati dalla chiave privata. La chiave privata viene scritta nel file JSON delle credenziali predefinite dell'applicazione.

L'esempio seguente mostra il file JSON delle credenziali predefinite dell'applicazione:

{
"type": "gdch_service_account",
"format_version": "1",
"project": "project_name",
"private_key_id": "abcdef1234567890",
"private_key": "-----BEGIN PRIVATE KEY-----\nETC\n-----END PRIVATE KEY-----\n",
"name": "service_identity_name",
"ca_cert_path": "/path/to/ca.crt",
"token_uri": "https://service-identity.<Domain>/authenticate"
}

Questo esempio utilizza i seguenti valori:

  • project: lo spazio dei nomi del progetto nell'organizzazione.
  • private_key_id: l'ID assegnato alla chiave.
  • private_key: la chiave privata ECDSA P256 in formato PEM generata dalla CLI.
  • name: il nome dell'identità di servizio.
  • ca_cert_path: il percorso del certificato dell'autorità di certificazione (CA) utilizzato per verificare l'endpoint di autenticazione.
  • token_uri: l'indirizzo dell'endpoint di autenticazione.

API

  1. Genera la coppia di chiavi pubblica e privata. I seguenti comandi utilizzano openssl come esempio, uno strumento comune per questo scopo.

    openssl ecparam -name prime256v1 -genkey -noout -out "key.pem"
    openssl ec -in "key.pem" -pubout > "pub.pem"
    
  2. Codifica in base64 la chiave pubblica e recupera il relativo ID chiave:

    KEY_ID=$(openssl pkey -in key.pem -pubout -outform der | openssl dgst -sha256 | sed 's/^.* //')
    BASE64_ENCODED_KEY=$(cat pub.pem | base64)
    
  3. Crea o aggiorna il file YAML della risorsa personalizzata ProjectServiceAccount, inclusi i dati della chiave generati nel passaggio precedente:

    apiVersion: resourcemanager.global.gdc.goog/v1
    kind: ProjectServiceAccount
    metadata:
      name: NAME
      namespace: PROJECT
    spec:
      keys:
      - algorithm: ALGORITHM
        id: KEY_ID
        key: BASE64_ENCODED_KEY
        validAfter: "START_TIME"
        validBefore: "EXPIRATION_TIME"
    

    Sostituisci le seguenti variabili:

    • NAME: il nome della risorsa ProjectServiceAccount. Il nome deve essere univoco all'interno dello spazio dei nomi del progetto.
    • PROJECT: il progetto in cui stai creando la chiave.
    • ALGORITHM: l'algoritmo della chiave. Sono supportate solo le chiavi ES256.
    • KEY_ID: l'identificatore univoco della chiave. L'ID viene utilizzato per determinare la chiave da verificare.
    • BASE64_ENCODED_KEY: la chiave pubblica con codifica Base64 in formato PEM da verificare. La chiave privata utilizzata per generare questa chiave pubblica è prevista nel formato PEM ECDSA P256.
    • START_TIME: l'ora di inizio in cui la chiave diventa valida, ad esempio 2025-02-07T00:59:34Z.
    • EXPIRATION_TIME: la data di scadenza della chiave, ad esempio 2026-02-07T00:59:34Z.
  4. Applica la risorsa personalizzata ProjectServiceAccount al server API globale:

    kubectl --kubeconfig GLOBAL_API_SERVER_KUBECONFIG apply -f my-project-sa.yaml
    

    Sostituisci la variabile GLOBAL_API_SERVER_KUBECONFIG con il percorso del file kubeconfig per il server API globale.

  5. Crea il file JSON delle credenziali predefinite dell'applicazione contenente la chiave privata. Assicurati che la variabile KEY_ID nel file JSON sia impostata sullo stesso valore della variabile KEY_ID che hai utilizzato nella specifica ProjectServiceAccount.

    cat <<EOF > "key_file.json"
    {
      "format_version": "1",
      "name": "NAME",
      "private_key": "$(tr '\n' '\t' < "key.pem" | sed 's/\t/\\n/g')",
      "private_key_id": "KEY_ID",
      "project": "PROJECT",
      "token_uri": "AUTH_URL",
      "type": "gdch_service_account"
    }
    EOF
    

    Sostituisci le seguenti variabili:

    • NAME: il nome dell'identità di servizio.
    • KEY_ID: l'identificatore univoco della chiave. L'ID viene utilizzato per determinare la chiave da verificare e deve corrispondere al valore KEY_ID utilizzato nella specifica ProjectServiceAccount.
    • PROJECT: lo spazio dei nomi del progetto nell'organizzazione.
    • AUTH_URL: l'indirizzo dell'endpoint di autenticazione.

Per informazioni dettagliate su come utilizzare il file delle chiavi generato per l'autenticazione come questa identità di servizio, vedi Autenticare e utilizzare un'identità di servizio. Questa sezione illustra l'utilizzo della chiave con la CLI gdcloud e in modo programmatico con le librerie client.

Visualizza identità di servizio

Questa sezione descrive come visualizzare le identità di servizio e le relative chiavi pubbliche.

Visualizzare un elenco di identità di servizio

Per visualizzare un elenco delle identità di servizio all'interno di un progetto, utilizza la console GDC o la CLI gdcloud.

Console

  1. Accedi alla console GDC.
  2. Seleziona un progetto.
  3. Nel menu di navigazione, fai clic su Identità e accesso > Identità di servizio per visualizzare l'elenco delle identità di servizio per il progetto.

gdcloud

Elenca gli account di identità del servizio in un progetto:

gdcloud iam service-accounts list \
    --project=PROJECT

Sostituisci PROJECT con l'ID progetto.

Visualizza un elenco di chiavi pubbliche per un'identità di servizio

Elenca le chiavi pubbliche registrate con un account di identità del servizio nel progetto:

gdcloud iam service-accounts keys list \
    --project=PROJECT \
    --iam-account=NAME

Sostituisci quanto segue:

  • PROJECT: l'ID progetto
  • NAME: il nome dell'account dell'identità del servizio da utilizzare.

Concedi le autorizzazioni per le identità di servizio

Per concedere le autorizzazioni a un'identità di servizio, assegnale uno o più ruoli creando associazioni di ruoli utilizzando la console GDC o la CLI gdcloud.

Console

  1. Accedi alla console GDC.
  2. Seleziona un progetto.
  3. Nel menu di navigazione, seleziona Identity & Access Management > Accesso.
  4. Nell'elenco Membro, fai clic su Aggiungi membro. Viene visualizzata la pagina Utenti e ruoli.
  5. Seleziona Identità del servizio nell'elenco Tipo di membro.
  6. Nell'elenco Identità del servizio, seleziona l'identità del servizio a cui vuoi assegnare un binding del ruolo.
  7. Nell'elenco Ruolo, seleziona il ruolo che vuoi assegnare all'identità del servizio, ad esempio Backup Creator.
  8. (Facoltativo) Per aggiungere un altro ruolo, fai clic su Aggiungi un altro ruolo. Seleziona il ruolo aggiuntivo.
  9. Fai clic su Aggiungi.

gdcloud

Puoi associare l'account dell'identità di servizio ai ruoli all'interno dello spazio dei nomi del progetto o ai ruoli in uno spazio dei nomi diverso.

  • Associa l'account a un ruolo all'interno dello spazio dei nomi del progetto:

    gdcloud iam service-accounts add-iam-policy-binding \
        --project=PROJECT \
        --role=ROLE \
        --iam-account=NAME
    

    Sostituisci quanto segue:

    • PROJECT: il progetto in cui creare l'associazione del ruolo. Se gdcloud init è già impostato, puoi omettere il flag --project.
    • ROLE: il ruolo predefinito da assegnare all'account. Specifica i ruoli nel formato Role/name, dove Role è il tipo di Kubernetes IAMRole e name è il nome del ruolo predefinito. Ad esempio, per assegnare il ruolo Visualizzatore progetto, imposta il ruolo su IAMRole/project-viewer.
    • NAME: il nome dell'account dell'identità di servizio da utilizzare.
  • Associa l'account a un ruolo all'interno di uno spazio dei nomi diverso:

    gdcloud iam service-accounts add-iam-policy-binding \
        --role=ROLE \
        --role-namespace=ROLE_NAMESPACE \
        --iam-account=NAME
    

    Sostituisci quanto segue:

    • ROLE: il ruolo predefinito da assegnare all'account. Specifica i ruoli nel formato Role/name, dove Role è il tipo di Kubernetes IAMRole e name è il nome del ruolo predefinito. Ad esempio, per assegnare il ruolo Visualizzatore progetto, imposta il ruolo su IAMRole/project-viewer.
    • ROLE_NAMESPACE: lo spazio dei nomi del ruolo da associare all'account diverso dallo spazio dei nomi del progetto.
    • NAME: il nome dell'account dell'identità di servizio da utilizzare.

Autenticare e utilizzare un'identità di servizio

Dopo aver creato un'identità di servizio e generato il relativo file della chiave, puoi utilizzare il file della chiave per l'autenticazione ai servizi e ai cluster GDC. L'autenticazione ti consente di ottenere token di accesso di breve durata per le chiamate API o di configurare l'accesso al cluster.

Esistono due modi per autenticarsi con un'identità di servizio:

Esegui l'autenticazione con la CLI gdcloud

Per eseguire azioni con l'identità del servizio, devi prima attivare il file delle chiavi. Dopo l'attivazione, puoi utilizzare CLI gdcloud per ottenere token o generare file kubeconfig.

Autorizza un'identità di servizio utilizzando una chiave

Il comando gdcloud auth activate-service-account autentica la CLI gdcloud con un'identità di servizio. In questo modo puoi eseguire azioni sulle risorse Distributed Cloud utilizzando le autorizzazioni dell'account dell'identità del servizio anziché un account utente.

Autorizza un'identità di servizio utilizzando una chiave:

  1. Crea un file di chiavi delle credenziali, se non ne hai già uno.

  2. Attiva l'identità del servizio eseguendo questo comando:

    gdcloud auth activate-service-account --key-file=KEY_FILE
    

    Sostituisci KEY_FILE con il percorso del file della chiave delle credenziali, in genere in formato JSON.

    Una volta attivata, gdcloud utilizza le credenziali dell'identità del servizio anziché le tue credenziali utente.

Dopo aver autorizzato un'identità di servizio, puoi utilizzare gdcloud per stampare un token di accesso. Puoi utilizzare questo token come token di autenticazione per autenticare le richieste HTTP. Il token concede l'accesso ai servizi come definito nel parametro AUDIENCES.

Stampa un token ID per l'account identità del servizio specificato:

gdcloud auth print-identity-token --audiences=AUDIENCES

Sostituisci AUDIENCES con il destinatario o il servizio a cui è destinato il token. È possibile specificare un solo segmento di pubblico.

Genera il file kubeconfig

Dopo aver autorizzato un'identità di servizio, puoi generare un file kubeconfig per autenticarti nei cluster Kubernetes.

  1. Imposta la proprietà gdcloud core/organization_console_url:

    gdcloud config set core/organization_console_url
    https://GDC_URL
    

    Sostituisci GDC_URL con l'URL della tua organizzazione.

  2. Genera il file kubeconfig per accedere a un cluster utilizzando l'identità del servizio attivo:

    • Per un cluster zonale:

      export KUBECONFIG=KUBECONFIG_PATH
      gdcloud clusters get-credentials CLUSTER_NAME --zone ZONE
      

      Sostituisci quanto segue:

      • KUBECONFIG_PATH: il percorso in cui vuoi salvare il file kubeconfig generato.
      • CLUSTER_NAME: il nome del cluster zonale.

      • ZONE: il nome della zona in cui si trova il cluster.

    • Per il server API globale:

      export KUBECONFIG=KUBECONFIG_PATH
      gdcloud clusters get-credentials global-api
      

      Sostituisci KUBECONFIG_PATH con il percorso in cui vuoi salvare il file kubeconfig generato.

Viene generato un file kubeconfig, configurato per l'autenticazione come identità del servizio. Di seguito è riportato un esempio di file YAML:

apiVersion: v1
clusters:
- cluster:
    certificate-authority-data: <REDACTED>
    server: <REDACTED>
  name: cluster-name
contexts:
- context:
    cluster: cluster-name
    user: gdch_console-<REDACTED>_cluster-name
  name: cluster-name-gdch_console-<REDACTED>_cluster-name
current-context: cluster-name-gdch_console-gdc1-staging-gpcdemolabs-com_cluster-name
kind: Config
preferences: {}
users:
- name: gdch_console-<REDACTED>_cluster-name
  user:
    exec:
      apiVersion: client.authentication.k8s.io/v1
      args:
      - --audience=<REDACTED>
      command: gdcloud-k8s-auth-plugin
      env: null
      installHint: Run 'gdcloud components install gdcloud-k8s-auth-plugin' to use
        plugin
      interactiveMode: Never
      provideClusterInfo: false

Eseguire l'autenticazione in modo programmatico con le librerie client

Gli esempi seguenti mostrano come eseguire l'autenticazione a livello di programmazione alle API GDC utilizzando le librerie client di Google Cloud standard. Queste librerie utilizzano il file della chiave del account di servizio generato per generare un token di accesso del servizio token di sicurezza (STS) o configurare un client di servizio con le credenziali dell'identità del servizio. Questo metodo non richiede alcuna autorizzazione gdcloud precedente.

Python

import google.auth
from google.auth.transport import requests
import requests as reqs

api_endpoint = "https://console.org-1.zone1.google.gdch.test"

# Load the GDC credentials (via GOOGLE_APPLICATION_CREDENTIALS or default path)
creds, project_id = google.auth.default()

# Apply the required audience for the GDC Management API
creds = creds.with_gdch_audience(api_endpoint)

def fetch_gdch_token():
    sesh = reqs.Session()
    # Note: Set verify to False only if bypassing self-signed cert verification.
    # Otherwise, rely on the "ca_cert_path" present in your gdch_credentials.json
    sesh.verify = False
    req = requests.Request(session=sesh)

    # Refresh the credentials to fetch the STS access token
    creds.refresh(req)

    print("Access Token:", creds.token)

fetch_gdch_token()

Java

import com.google.auth.oauth2.GdchCredentials;
import com.google.auth.oauth2.GoogleCredentials;

import java.io.FileInputStream;
import java.io.InputStream;

public class GdchAuthExample {
    public static void main(String[] args) throws Exception {
        // Path to your service account JSON file
        String credentialsPath = "/path/to/gdch/credentials.json";
        String apiAudience = "https://console.org-1.zone1.google.gdch.test";

        try (InputStream credentialsStream = new FileInputStream(credentialsPath)) {
            // Load the generic Google credentials from the stream
            GoogleCredentials credentials = GoogleCredentials.fromStream(credentialsStream);

            // Verify it loaded as GdchCredentials
            if (credentials instanceof GdchCredentials) {
                // Cast and attach the targeted GDC audience
                GdchCredentials gdch = ((GdchCredentials) credentials).createWithGdchAudience(apiAudience);

                // Force negotiation with the GDC Auth Server to fetch the token
                gdch.refreshIfExpired();

                System.out.println("Access Token: " + gdch.getAccessToken().getTokenValue());
            } else {
                System.err.println("The provided file is not a valid GdchCredentials format.");
            }
        }
    }
}

Vai

package main

import (
  "context"
  "fmt"
  "log"

  "cloud.google.com/go/auth/credentials"
)

func main() {
  ctx := context.Background()
  apiEndpoint := "https://console.org-1.zone1.google.gdch.test"

  // Load default credentials. The STSAudience parameter is specifically
  // required for the GDC auth flow to correctly negotiate the token.
  creds, err := credentials.DetectDefault(&credentials.DetectOptions{
    STSAudience: apiEndpoint,
  })
  if err != nil {
    log.Fatalf("Failed to detect credentials: %v", err)
  }

  // Fetch an access token
  token, err := creds.Token(ctx)
  if err != nil {
    log.Fatalf("Failed to retrieve token: %v", err)
  }

  fmt.Printf("Access Token: %s\n", token.Value)
}

C++

[](std::string const& keyfile, std::string const& audience) {
  auto is = std::ifstream(keyfile);
  is.exceptions(std::ios::badbit);  // Minimal error handling in examples
  auto contents = std::string(std::istreambuf_iterator<char>(is.rdbuf()), {});
  auto options =
      google::cloud::Options{}.set<google::cloud::UnifiedCredentialsOption>(
          google::cloud::MakeGDCHServiceAccountCredentials(contents, audience));
  return google::cloud::speech_v1::AdaptationClient(
      google::cloud::speech_v1::MakeAdaptationConnection(options));
}

Elimina un'identità di servizio

Dopo aver eliminato un'identità di servizio, vengono eliminati ProjectServiceAccount e le relative chiavi pubbliche, le chiavi private esistenti diventano non valide e le applicazioni non hanno più accesso alle risorse del progetto tramite l'identità di servizio.

Per eliminare un'identità di servizio, utilizza la console GDC o la CLI gdcloud.

Console

  1. Accedi alla console GDC.
  2. Nel menu di navigazione, seleziona Identity & Access > Service Identities.
  3. Seleziona la casella di controllo dell'identità del servizio che vuoi eliminare.
  4. Fai clic su Elimina.
  5. Viene visualizzata la finestra di dialogo di conferma. Nel campo Conferma digitando quanto segue di seguito, inserisci remove.
  6. Fai clic su Elimina.

gdcloud

Esegui questo comando per eliminare un account di identità del servizio:

gdcloud iam service-accounts delete NAME \
    --project=PROJECT

Sostituisci quanto segue:

  • NAME: il nome dell'account dell'identità di servizio da eliminare.
  • PROJECT: l'ID progetto

Elimina credenziali

Se vuoi disattivare una coppia di chiavi specifica senza eliminare l'intero account dell'identità di servizio, puoi eliminare la relativa chiave pubblica dall'account dell'identità di servizio. Questa azione invalida la chiave privata corrispondente.

Per eliminare la chiave pubblica, utilizza la console GDC o gcloud CLI.

Console

  1. Accedi alla console GDC.
  2. Nel menu di navigazione, seleziona Identity & Access > Service Identities.
  3. Fai clic sul nome dell'identità del servizio che contiene la chiave che vuoi eliminare.
  4. Fai clic su Elimina.
  5. Nella finestra di dialogo di conferma, fai clic su Elimina.

gdcloud

Rimuovi la chiave pubblica con l'ID chiave da un account di identità del servizio nel progetto:

gdcloud iam service-accounts keys delete KEY_ID \
    --project=PROJECT \
    --iam-account=NAME

Sostituisci quanto segue:

  • KEY_ID: l'identificatore univoco della chiave.
  • PROJECT: l'ID progetto
  • NAME: il nome dell'account dell'identità di servizio.