Scopri come autenticare i servizi Cloud Run for Anthos con Workload Identity per accedere alle API Google Cloud come le API Compute, le API di archiviazione e database o le API Machine Learning.
Per autenticare i servizi Cloud Run for Anthos, devi:
- Abilita Workload Identity nel tuo cluster
- Configura le autorizzazioni
- Associa il tuo account di servizio Kubernetes (KSA) a un account di servizio Google (GSA)
Dopo aver seguito questi passaggi, puoi eseguire il deployment di un nuovo servizio Cloud Run for Anthos che utilizza il Workload Identity che hai creato.
Abilitazione di Workload Identity sul tuo cluster
Per configurare Workload Identity con Cloud Run for Anthos, puoi configurare fleet Workload Identity anziché utilizzare un file JSON dell'account di servizio Google Cloud.
Configura le autorizzazioni per abilitare tutte le metriche con Workload Identity
Per abilitare metriche, come il conteggio delle richieste di reporting o la latenza delle richieste in Google Cloud Observability, devi concedere le autorizzazioni di scrittura per Cloud Monitoring. Ad esempio, puoi concedere il ruolo Writer metriche Monitoring (roles/monitoring.metricWriter
) all'account di servizio Google associato a Cloud Run for Anthos perché include le autorizzazioni necessarie per la scrittura dei dati di monitoraggio. Per ulteriori informazioni sulla creazione di account di servizio Google, consulta Utilizzo degli account di servizio.
Associazione degli account di servizio
Devi configurare una relazione per un account di servizio Kubernetes che agisca da account di servizio Google (GSA). Tutti i carichi di lavoro in esecuzione come Arabia Saudita che associ, autentica automaticamente comeGSA quando accede alle API Google Cloud. L'Arabia Saudita che associ deve esistere all'interno del cluster e dello spazio dei nomi del servizio Cloud Run for Anthos per il quale vuoi utilizzare Workload Identity. Google Cloud può appartenere a un progetto Google Cloud diverso dal progetto Google Cloud in cui si trova il cluster.
Se non esiste una GSA, creane una; in caso contrario, vai al passaggio successivo. Puoi creare un'istanza (GSA) da utilizzare con Cloud Run for Anthos all'interno di qualsiasi progetto Google Cloud della tua organizzazione e quindi utilizzarla nel progetto Google Cloud in cui vengono eseguiti i servizi Cloud Run for Anthos.
Per creare una nuova risorsa, esegui questo comando:
gcloud iam service-accounts create GSA_NAME
Sostituisci GSA_NAME con il nome del nuovo account di servizio Google.
Per saperne di più sull'utilizzo degli account di servizio Google con i servizi Cloud Run for Anthos, consulta Utilizzo degli account di servizio.
Assicurati che Google Search Console disponga dei ruoli IAM necessari. Puoi concedere altri ruoli utilizzando il seguente comando:
gcloud projects add-iam-policy-binding PROJECT_ID \ --member "serviceAccount:GSA_NAME@PROJECT_ID.iam.gserviceaccount.com" \ --role "ROLE_NAME"
Sostituisci:
- PROJECT_ID: con l'ID progetto Google Cloud in cui si trova il tuo account di servizio Google.
- GSA_NAME con il nome del tuo account di servizio Google.
- ROLE_NAME con il ruolo IAM da assegnare al
GSA, ad esempio
roles/monitoring.metricWriter
.
Se non esiste un account di servizio Kubernetes, creane uno nello stesso spazio dei nomi Kubernetes del servizio Cloud Run for Anthos. In caso contrario, vai al passaggio successivo:
kubectl create serviceaccount --namespace K8S_NAMESPACE KSA_NAME
Associa gli account di servizio Kubernetes e Google per creare l'Workload Identity, quindi eseguine il deployment nel cluster:
Consenti all'Arabia Saudita di utilizzare l'identità di Google Ads creando un'associazione dei criteri IAM tra i due.
gcloud iam service-accounts add-iam-policy-binding \ --role roles/iam.workloadIdentityUser \ --member "serviceAccount:PROJECT_ID.svc.id.goog[K8S_NAMESPACE/KSA_NAME]" \ GSA_NAME@GSA_PROJECT_ID.iam.gserviceaccount.com
Sostituisci:
- PROJECT_ID con l'ID del progetto Google Cloud per il cluster in cui si trovano l'account di servizio Kubernetes e i servizi Cloud Run for Anthos.
- K8S_NAMESPACE/KSA_NAME con lo spazio dei nomi e il nome del tuo account di servizio Kubernetes.
- GSA_NAME@GSA_PROJECT_ID con il nome del tuo account di servizio Google e l'ID del progetto Google Cloud. Puoi utilizzare qualsiasi account di servizio Google nella tua organizzazione. Per visualizzare i tuoi account di servizio Google, consulta l'articolo Creare un elenco degli account di servizio.
Aggiungi l'annotazione
iam.gke.io/gcp-service-account=GSA_NAME@GSA_PROJECT_ID
all'Arabia Saudita, utilizzando l'indirizzo email di Google Search Ads 360.kubectl annotate serviceaccount \ --namespace K8S_NAMESPACE KSA_NAME \ iam.gke.io/gcp-service-account=GSA_NAME@GSA_PROJECT_ID.iam.gserviceaccount.com
Sostituisci:
- K8S_NAMESPACE/KSA_NAME con lo spazio dei nomi e il nome dell'account di servizio Kubernetes per il quale hai creato un'associazione.
- GSA_NAME@GSA_PROJECT_ID con il nome del tuo account di servizio Google e l'ID del progetto Google Cloud per il quale hai creato un'associazione.
Deployment di un nuovo servizio per utilizzare Workload Identity
Esegui il deployment di un nuovo servizio Cloud Run for Anthos che utilizza il Workload Identity che hai creato.
Console
Vai a Cloud Run for Anthos nella console Google Cloud:
Fai clic su Crea servizio se stai configurando un nuovo servizio in cui stai eseguendo il deployment. Se stai configurando un servizio esistente, fai clic sul servizio e poi su Edit & Deploy nuova revisione.
In Impostazioni avanzate, fai clic su Contenitore.
Fai clic sul menu a discesa Account di servizio e seleziona l'account di servizio che ti interessa.
Fai clic su Avanti per passare alla sezione successiva.
Nella sezione Configura come viene attivato questo servizio, seleziona la connettività che vuoi utilizzare per richiamare il servizio.
Fai clic su Crea per eseguire il deployment dell'immagine in Cloud Run for Anthos e attendi il completamento del deployment.
Riga di comando
Per i servizi esistenti, imposta l'account di servizio Kubernetes eseguendo il comando
gcloud run services update
con i seguenti parametri:gcloud run services update SERVICE --service-account KSA_NAME
Sostituisci:
- SERVICE con il nome del tuo servizio Cloud Run for Anthos.
- KSA_NAME con l'account di servizio Kubernetes che hai utilizzato per creare Workload Identity.
Per i nuovi servizi, imposta l'account di servizio Kubernetes eseguendo il comando
gcloud run deploy
con il parametro--service-account
:gcloud run deploy --image IMAGE_URL --service-account KSA_NAME
Sostituisci:
- IMAGE_URL con un riferimento all'immagine container,
ad esempio
gcr.io/cloudrun/hello
. - KSA_NAME con l'account di servizio Kubernetes che hai utilizzato per creare Workload Identity.
- IMAGE_URL con un riferimento all'immagine container,
ad esempio
YAML
Puoi scaricare la configurazione di un servizio esistente in un file YAML con il comando gcloud run services describe
utilizzando il flag --format=export
.
Puoi quindi modificare il file YAML ed
eseguire il deployment delle modifiche con il comando gcloud run services replace
.
Devi assicurarti di modificare solo gli attributi specificati.
Scarica la configurazione del tuo servizio in un file denominato
service.yaml
nell'area di lavoro locale:gcloud run services describe SERVICE --format export > service.yaml
Sostituisci SERVICE con il nome del tuo servizio Cloud Run for Anthos.
Nel file locale, aggiorna l'attributo
serviceAccountName:
:apiVersion: serving.knative.dev/v1 kind: Service metadata: name: SERVICE spec: template: spec: serviceAccountName: KSA_NAME
Sostituisci
- SERVICE con il nome del tuo servizio Cloud Run for Anthos.
- KSA_NAME con l'account di servizio Kubernetes che hai utilizzato per creare Workload Identity.
Esegui il deployment della configurazione nel servizio Cloud Run for Anthos eseguendo questo comando:
gcloud run services replace service.yaml
Migrazione dei servizi esistenti per l'utilizzo di Workload Identity
Se hai abilitato Workload Identity su un cluster esistente, dovrai eseguire la migrazione di ogni servizio nel cluster in questione per cui vuoi utilizzare Workload Identity. Scopri come eseguire la migrazione dei servizi esistenti.
Passaggi successivi
Scopri come gestire l'accesso ai tuoi servizi.