Questa pagina descrive come configurare i carichi di lavoro per accedere alle risorse utilizzando la federazione delle identità per i carichi di lavoro e l'accesso diretto alle risorse o la simulazione dell'identità del service account. Trusted Cloud by S3NS
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.
Consenti al carico di lavoro esterno di accedere alle risorse Trusted Cloud
Per fornire al tuo workload l'accesso alle risorse Trusted Cloud , ti consigliamo di concedere l'accesso diretto alle risorse all'entità. In questo caso, il principal è l'utente federato. Alcuni prodotti Trusted Cloud hanno limitazioni dell'API Google Cloud. Se il tuo carico di lavoro chiama un endpoint API che presenta una limitazione, puoi invece utilizzare la rappresentazione dell'identità delaccount di serviziot. In questo caso, l'entità è il service accountTrusted Cloud , che funge da identità. Concedi l'accesso alaccount di serviziot sulla risorsa.
Accesso diretto alle risorse
Puoi concedere l'accesso a un'identità federata direttamente alle risorse utilizzando la console Trusted Cloud o gcloud CLI.
Console
Per utilizzare la console Trusted Cloud 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 accedere alla pagina Cloud Storage e concedere il ruolo Visualizzatore oggetti Storage (roles/storage.objectViewer
) a un'identità federata direttamente in un bucket Cloud Storage.
- Nella console Trusted Cloud , vai alla pagina Bucket in Cloud Storage.
Nell'elenco dei bucket, fai clic sul nome del bucket per cui 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 argomento
principal://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/subject/SUBJECT
Sostituisci quanto segue:
PROJECT_NUMBER
: il numero del progettoPOOL_ID
: l'ID 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/GROUP
Sostituisci quanto segue:
PROJECT_NUMBER
: il numero del progettoWORKLOAD_POOL_ID
: l'ID pool di workloadGROUP
: il gruppo mappato dal tuo IdP, ad esempio:administrator-group@example.com
Per attributo
principalSet://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/attribute.ATTRIBUTE_NAME/ATTRIBUTE_VALUE
Sostituisci quanto segue:
PROJECT_NUMBER
: il numero del progettoWORKLOAD_POOL_ID
: l'ID pool di workloadATTRIBUTE_NAME
: uno degli attributi mappati dal tuo IdPATTRIBUTE_VALUE
: il valore dell'attributo
Seleziona un ruolo (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 ruoli IAM a una risorsa in un progetto, procedi nel seguente modo:
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
) alle identità esterne che soddisfano determinati criteri, esegui questo comando.Per argomento
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 workload.POOL_ID
: l'ID pool del pool di identità del workloadSUBJECT
: il valore previsto per l'attributo che hai mappato sugoogle.subject
GROUP
: il valore previsto per l'attributo che hai mappato sugoogle.groups
ATTRIBUTE_NAME
: il nome di un attributo personalizzato nella mappatura degli attributiATTRIBUTE_VALUE
: il valore dell'attributo personalizzato nella mappatura degli attributi
Puoi concedere ruoli su qualsiasi risorsa Trusted Cloud che supporta i criteri di autorizzazione IAM.
Simulazione dell'identità dei service account
Per creare un account di servizio per il workload esterno:
Enable the IAM, Security Token Service, and Service Account Credentials APIs.
Crea un service account che rappresenti il workload. Ti consigliamo di utilizzare un account di servizio dedicato per ogni workload. Il account di servizio non deve trovarsi nello stesso progetto del pool di identità del carico di lavoro, 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 accedano le identità esterne.
Per consentire all'identità federata di rappresentare il account di servizio, procedi nel seguente modo:
Console
Per utilizzare la console Trusted Cloud per concedere ruoli IAM a un'identità federata con account di servizio, procedi nel seguente modo:
Service Account nello stesso progetto
Per concedere l'accesso utilizzando la simulazione dell'identità del 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 da rappresentare e procedi nel seguente modo:
Per scegliere quali identità nel pool possono rappresentare l'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à corrispondenti al filtro.
Nell'elenco Nome attributo, seleziona l'attributo in base al quale vuoi filtrare.
Nel campo Valore attributo, inserisci il valore previsto dell'attributo. Ad esempio, se utilizzi una mappatura degli attributi
google.subject=assertion.sub
, imposta il nome dell'attributo susubject
e il valore dell'attributo sul valore dell'attestazionesub
nei token emessi dal tuo IdP esterno.
Per salvare la configurazione, fai clic su Salva e poi su Ignora.
Service account in un altro progetto
Per concedere l'accesso utilizzando la rappresentazione del account di servizio per un account di servizio in un altro progetto:
Vai alla pagina Service Accounts.
Seleziona l'account di servizio che vuoi rappresentare.
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 tuo pool che rappresenteranno l'account di servizio.
Per argomento
principal://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/subject/SUBJECT
Sostituisci quanto segue:
PROJECT_NUMBER
: il numero del progettoPOOL_ID
: l'ID 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/GROUP
Sostituisci quanto segue:
PROJECT_NUMBER
: il numero del progettoWORKLOAD_POOL_ID
: l'ID pool di workloadGROUP
: il gruppo mappato dal tuo IdP, ad esempio:administrator-group@example.com
Per attributo
principalSet://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/attribute.ATTRIBUTE_NAME/ATTRIBUTE_VALUE
Sostituisci quanto segue:
PROJECT_NUMBER
: il numero del progettoWORKLOAD_POOL_ID
: l'ID pool di workloadATTRIBUTE_NAME
: uno degli attributi mappati dal tuo IdPATTRIBUTE_VALUE
: il valore dell'attributo
Per piscina
principalSet://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/*
Sostituisci quanto segue:
PROJECT_NUMBER
: il numero del progettoWORKLOAD_POOL_ID
: l'ID 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 Workload Identity (roles/iam.workloadIdentityUser
)
a un'entità federata o a un insieme di entità, esegui questo
comando. Per scoprire di più sugli identificatori delle entità della federazione delle identità per i workload, consulta Tipi di entità.
Per argomento
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 workload.POOL_ID
: l'ID pool del pool di identità del workloadSUBJECT
: il valore previsto per l'attributo che hai mappato sugoogle.subject
GROUP
: il valore previsto per l'attributo che hai mappato sugoogle.groups
ATTRIBUTE_NAME
: il nome di un attributo personalizzato nella mappatura degli attributiATTRIBUTE_VALUE
: il valore dell'attributo personalizzato nella mappatura degli attributi
Scarica la configurazione
Per consentire al tuo workload di accedere alle librerie client, devi prima scaricare e configurare le credenziali predefinite dell'applicazione (ADC) nel seguente modo:
-
Nella console Trusted Cloud , vai alla pagina Pool di identità per i carichi di lavoro.
Vai a Pool di identità del workload -
Nella tabella, seleziona il tuo pool per andare alla pagina dei dettagli.
-
Fai clic su Concedi accesso.
-
Seleziona Concedi l'accesso usando identità federate (consigliato).
-
Per scaricare le credenziali predefinite dell'applicazione (ADC) in modo che il tuo workload 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, inserisci il percorso in cui si trova il token o l'asserzione.
Nell'elenco a discesa Tipo di formato, seleziona il formato.
-
-
Fai clic su Scarica configurazione e annota il percorso in cui hai salvato il file.
-