Questa pagina descrive come configurare i carichi di lavoro per accedere alle Cloud de Confiance by S3NS risorse utilizzando la federazione delle identità per i carichi di lavoro e l'accesso diretto alle risorse o la simulazione dell'identità dei service account.
Puoi trovare istruzioni end-to-end specifiche per i casi d'uso nelle guide alla configurazione per AWS e Azure, Active Directory, GitHub, GitLab e altre pipeline di deployment, e Kubernetes.
Consentire al carico di lavoro esterno di accedere alle Cloud de Confiance risorse
Per fornire al carico di lavoro l'accesso alle Cloud de Confiance risorse, ti consigliamo di concedere l'accesso diretto alle risorse all'entità. In questo caso, l'entità è l'utente federato. Alcuni Cloud de Confiance prodotti hanno limitazioni per le API Google Cloud. Se il carico di lavoro chiama un endpoint API con una limitazione, puoi invece utilizzare la simulazione dell'identità dei account di servizio. In questo caso, l'entità è il Cloud de Confiance service account, che funge da identità. Concedi l'accesso al account di servizio sulla risorsa.Accesso diretto alle risorse
Puoi concedere l'accesso a un'identità federata direttamente sulle risorse utilizzando la Cloud de Confiance console o gcloud CLI.
Console
Per utilizzare la Cloud de Confiance console per concedere i ruoli IAM
direttamente su una risorsa, devi andare alla pagina della risorsa e poi
concedere il ruolo. L'esempio seguente mostra come andare alla pagina Cloud Storage e concedere il ruolo Visualizzatore oggetti Storage (roles/storage.objectViewer) a un'identità federata direttamente su un bucket Cloud Storage.
- Nella Cloud de Confiance console, vai alla pagina Bucket in Cloud Storage.
Nell'elenco dei bucket, fai clic sul nome del bucket per il quale vuoi concedere il ruolo.
Seleziona la scheda Autorizzazioni nella parte superiore della pagina.
Fai clic sul pulsante add_box Concedi l'accesso.
Viene visualizzata la finestra di dialogo Aggiungi entità.
Nel campo Nuove entità, inserisci una o più identità che devono accedere al tuo bucket.
Per oggetto
principal://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/subject/SUBJECTSostituisci quanto segue:
PROJECT_NUMBER: il numero di progettoPOOL_ID: l'ID del pool di workloadSUBJECT: il soggetto individuale mappato dal tuo IdP, ad esempioadministrator@example.com
Per gruppo
principalSet://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/group/GROUPSostituisci quanto segue:
PROJECT_NUMBER: il numero di progettoWORKLOAD_POOL_ID: l'ID del pool di workloadGROUP: il gruppo mappato dal tuo IdP, ad esempioadministrator-group@example.com
Per attributo
principalSet://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/attribute.ATTRIBUTE_NAME/ATTRIBUTE_VALUESostituisci quanto segue:
PROJECT_NUMBER: il numero di progettoWORKLOAD_POOL_ID: l'ID del pool di workloadATTRIBUTE_NAME: uno degli attributi mappati dal tuo IdPATTRIBUTE_VALUE: il valore dell'attributo
Seleziona uno o più ruoli dal menu a discesa Seleziona un ruolo. I ruoli selezionati vengono visualizzati nel riquadro con una breve descrizione delle autorizzazioni che concedono.
Fai clic su Salva.
gcloud
Per utilizzare gcloud CLI per concedere i ruoli IAM su una risorsa in un progetto:
Ottieni il numero di progetto del progetto in cui è definita la risorsa.
gcloud projects describe $(gcloud config get-value core/project) --format=value\(projectNumber\)
Concedi l'accesso alla risorsa.
Per utilizzare gcloud CLI per concedere il ruolo Visualizzatore oggetti Storage (
roles/storage.objectViewer) a identità esterne che soddisfano determinati criteri, esegui il seguente comando.Per oggetto
gcloud storage buckets add-iam-policy-binding BUCKET_ID \ --role=roles/storage.objectViewer \ --member="principal://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/subject/SUBJECT"Per gruppo
gcloud storage buckets add-iam-policy-binding BUCKET_ID \ --role=roles/storage.objectViewer \ --member="principalSet://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/group/GROUP"Per attributo
gcloud storage buckets add-iam-policy-binding BUCKET_ID \ --role=roles/storage.objectViewer \ --member="principalSet://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/attribute.ATTRIBUTE_NAME/ATTRIBUTE_VALUE"Sostituisci quanto segue:
BUCKET_ID: il bucket su cui concedere l'accessoPROJECT_NUMBER: il numero di progetto. del progetto che contiene il pool di identità del workloadPOOL_ID: l'ID del pool di identità del workloadSUBJECT: il valore previsto per l'attributo che hai mappato sugoogle.subjectGROUP: il valore previsto per l'attributo che hai mappato sugoogle.groupsATTRIBUTE_NAME: il nome di un attributo personalizzato in nel mapping degli attributiATTRIBUTE_VALUE: il valore dell'attributo personalizzato in nel mapping degli attributi
Puoi concedere ruoli su qualsiasirisorsa che supporti i criteri di autorizzazione IAM. Cloud de Confiance
Simulazione dell'identità dei service account
Per creare un account di servizio per il carico di lavoro esterno:
Abilita le API IAM, Security Token Service e Credenziali dei service account.
Ruoli richiesti per abilitare le API
Per abilitare le API, devi disporre dell'autorizzazione
serviceusage.services.enable. Se hai creato il progetto, probabilmente hai già questa autorizzazione tramite il ruolo Proprietario (roles/owner). In caso contrario, puoi ottenere questa autorizzazione tramite il ruolo Amministratore utilizzo servizi (roles/serviceusage.serviceUsageAdmin). Scopri come concedere i ruoli.Crea un service account che rappresenti il carico di lavoro. Ti consigliamo di utilizzare un account di servizio dedicato per ogni carico di lavoro. Il account di servizio non deve necessariamente trovarsi nello stesso progetto del pool di identità del workload, ma devi fare riferimento al progetto che contiene il account di servizio.
Concedi al account di servizio l'accesso alle risorse a cui vuoi che le identità esterne accedano.
Per consentire all'identità federata di simulare l'identità account di servizio:
Console
Per utilizzare la Cloud de Confiance console per concedere i ruoli IAM a un'identità federata con un account di servizio:
Service account nello stesso progetto
Per concedere l'accesso utilizzando la simulazione dell'identità dei account di servizio per un account di servizio nello stesso progetto:
Vai alla pagina Pool di identità del workload.
Seleziona Concedi l'accesso.
Nella finestra di dialogo Concedi l'accesso al service account, seleziona Concedi l'accesso utilizzando la simulazione dell'identità dei service account.
Nell'elenco Service account , seleziona il account di servizio per le identità esterne di cui simulare l'identità e procedi nel seguente modo:
Per scegliere quali identità nel pool possono simulare l'identità del account di servizio, esegui una delle seguenti azioni:
Per consentire solo a identità specifiche del pool di identità del workload di simulare l'identità del account di servizio, seleziona Solo le identità che corrispondono al filtro.
Nell'elenco Nome attributo, seleziona l'attributo su cui vuoi filtrare.
Nel campo Valore attributo, inserisci il valore previsto dell'attributo. Ad esempio, se utilizzi un mapping degli attributi
google.subject=assertion.sub, imposta Nome attributo susubjecte Valore attributo sul valore dell'attestazionesubnei token emessi dal tuo provider di identità esterno.
Per salvare la configurazione, fai clic su Salva e poi su Ignora.
Service account in un progetto diverso
Per concedere l'accesso utilizzando la simulazione dell'identità dei account di servizio per un account di servizio in un progetto diverso:
Vai alla pagina Service Accounts.
Seleziona il account di servizio di cui vuoi simulare l'identità.
Fai clic su Gestisci accesso.
Fai clic su Aggiungi entità.
Nel campo Nuova entità, inserisci uno dei seguenti identificatori dell'entità per le identità nel pool che simuleranno l'identità del account di servizio.
Per oggetto
principal://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/subject/SUBJECTSostituisci quanto segue:
PROJECT_NUMBER: il numero di progettoPOOL_ID: l'ID del pool di workloadSUBJECT: il soggetto individuale mappato dal tuo IdP, ad esempioadministrator@example.com
Per gruppo
principalSet://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/group/GROUPSostituisci quanto segue:
PROJECT_NUMBER: il numero di progettoWORKLOAD_POOL_ID: l'ID del pool di workloadGROUP: il gruppo mappato dal tuo IdP, ad esempioadministrator-group@example.com
Per attributo
principalSet://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/attribute.ATTRIBUTE_NAME/ATTRIBUTE_VALUESostituisci quanto segue:
PROJECT_NUMBER: il numero di progettoWORKLOAD_POOL_ID: l'ID del pool di workloadATTRIBUTE_NAME: uno degli attributi mappati dal tuo IdPATTRIBUTE_VALUE: il valore dell'attributo
Per pool
principalSet://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/*Sostituisci quanto segue:
PROJECT_NUMBER: il numero di progettoWORKLOAD_POOL_ID: l'ID del pool di workload
In Seleziona un ruolo, seleziona il ruolo Utente Workload Identity (
roles/iam.workloadIdentityUser).Per salvare la configurazione, fai clic su Salva.
gcloud
Per concedere il ruolo Utente identità del workload (roles/iam.workloadIdentityUser)
a un'entità federata o a un insieme di entità, esegui il seguente
comando. Per scoprire di più sugli identificatori delle entità della federazione delle identità per i workload, consulta Tipi di entità.
Per oggetto
gcloud iam service-accounts add-iam-policy-binding SERVICE_ACCOUNT_EMAIL \
--role=roles/iam.workloadIdentityUser \
--member="principal://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/subject/SUBJECT"Per gruppo
gcloud iam service-accounts add-iam-policy-binding SERVICE_ACCOUNT_EMAIL \
--role=roles/iam.workloadIdentityUser \
--member="principalSet://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/group/GROUP"Per attributo
gcloud iam service-accounts add-iam-policy-binding SERVICE_ACCOUNT_EMAIL \
--role=roles/iam.workloadIdentityUser \
--member="principalSet://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/attribute.ATTRIBUTE_NAME/ATTRIBUTE_VALUE"Sostituisci quanto segue:
SERVICE_ACCOUNT_EMAIL: l'indirizzo email del account di servizioPROJECT_NUMBER: il numero di progetto. del progetto che contiene il pool di identità del workloadPOOL_ID: l'ID del pool di identità del workloadSUBJECT: il valore previsto per l'attributo che hai mappato sugoogle.subjectGROUP: il valore previsto per l'attributo che hai mappato sugoogle.groupsATTRIBUTE_NAME: il nome di un attributo personalizzato in nel mapping degli attributiATTRIBUTE_VALUE: il valore dell'attributo personalizzato in nel mapping degli attributi
Scarica la configurazione
Per consentire al carico di lavoro di accedere alle librerie client, devi prima scaricare e configurare le credenziali predefinite dell'applicazione (ADC) procedendo nel seguente modo:
-
Nella Cloud de Confiance console, vai alla pagina Pool di identità del workload.
Vai a Pool di identità del workload -
Nella tabella, seleziona il pool per andare alla pagina dei dettagli.
-
Fai clic su Concedi l'accesso.
-
Seleziona Concedi l'accesso usando identità federate (consigliato).
-
Per scaricare le credenziali predefinite dell'applicazione (ADC) in modo che il carico di lavoro possa accedere alle librerie client:
-
Fai clic su Scarica configurazione.
-
Nella finestra di dialogo Configura l'applicazione, procedi nel seguente modo:
-
Nell'elenco a discesa Provider, seleziona il tuo provider.
-
In Percorso token OIDC o Percorso asserzione SAML percorso, inserisci il percorso in cui si trova il token o l'asserzione si trova.
Nell'elenco a discesa Tipo di formato, seleziona il formato.
-
-
Fai clic su Scarica configurazione e prendi nota del percorso dove hai salvato il file.
-