Questa pagina mostra come concedere l'accesso all'autorizzazione binaria a criteri e immagini container che esistono in progetti Google Cloud diversi da quello attuale. Ad esempio, se esegui il deployment di immagini nel cluster Google Kubernetes Engine (GKE) da un repository Artifact Registry o Container Registry (ritirato) di proprietà di un altro progetto, devi concedere al servizio Autorizzazione binaria nel tuo progetto l'accesso ai metadati delle immagini nel repository di origine.
Terminologia
Questo documento utilizza i seguenti termini:
- Service agent: un account di servizio gestito da Google Cloud. Autorizzazione binaria utilizza un service agent per interagire con le tue risorse Google Cloud, come i cluster GKE.
- Progetto policy: il progetto Google Cloud che contiene la tua policy di Autorizzazione binaria.
- Progetto cluster: il progetto Google Cloud che contiene il tuo cluster GKE.
- Progetto artefatto: il progetto Google Cloud che contiene il tuo repository Artifact Registry o Container Registry (deprecato).
Scenari che richiedono l'accesso tra progetti
Devi concedere autorizzazioni tra progetti in situazioni come le seguenti:
- Il progetto delle norme è diverso dal progetto del cluster.
- Il progetto del cluster è diverso dal progetto degli artefatti.
Prima di iniziare
- Accedi al tuo account Google Cloud . Se non conosci Google Cloud, crea un account per valutare le prestazioni dei nostri prodotti in scenari reali. I nuovi clienti ricevono anche 300 $di crediti senza costi per l'esecuzione, il test e il deployment dei carichi di lavoro.
-
Installa Google Cloud CLI.
-
Se utilizzi un provider di identità (IdP) esterno, devi prima accedere a gcloud CLI con la tua identità federata.
-
Per inizializzare gcloud CLI, esegui questo comando:
gcloud init -
Crea o seleziona un Google Cloud progetto.
Ruoli richiesti per selezionare o creare un progetto
- Seleziona un progetto: la selezione di un progetto non richiede un ruolo IAM specifico. Puoi selezionare qualsiasi progetto per il quale ti è stato concesso un ruolo.
-
Crea un progetto: per creare un progetto, devi disporre del ruolo Autore progetto
(
roles/resourcemanager.projectCreator), che contiene l'autorizzazioneresourcemanager.projects.create. Scopri come concedere ruoli.
-
Crea un progetto Google Cloud :
gcloud projects create PROJECT_ID
Sostituisci
PROJECT_IDcon un nome per il progetto Google Cloud che stai creando. -
Seleziona il progetto Google Cloud che hai creato:
gcloud config set project PROJECT_ID
Sostituisci
PROJECT_IDcon il nome del progetto Google Cloud .
-
Verifica che la fatturazione sia attivata per il tuo progetto Google Cloud .
Abilita l'API Autorizzazione binaria, se non è già abilitata:
Ruoli richiesti per abilitare le API
Per abilitare le API, devi disporre dell'autorizzazione
serviceusage.services.enable. Se hai creato il progetto, probabilmente disponi già di questa autorizzazione tramite il ruolo Proprietario (roles/owner). In caso contrario, puoi ottenere questa autorizzazione tramite il ruolo Amministratore Service Usage (roles/serviceusage.serviceUsageAdmin). Scopri come concedere i ruoli.gcloud services enable binaryauthorization.googleapis.com
-
Installa Google Cloud CLI.
-
Se utilizzi un provider di identità (IdP) esterno, devi prima accedere a gcloud CLI con la tua identità federata.
-
Per inizializzare gcloud CLI, esegui questo comando:
gcloud init -
Crea o seleziona un Google Cloud progetto.
Ruoli richiesti per selezionare o creare un progetto
- Seleziona un progetto: la selezione di un progetto non richiede un ruolo IAM specifico. Puoi selezionare qualsiasi progetto per il quale ti è stato concesso un ruolo.
-
Crea un progetto: per creare un progetto, devi disporre del ruolo Autore progetto
(
roles/resourcemanager.projectCreator), che contiene l'autorizzazioneresourcemanager.projects.create. Scopri come concedere ruoli.
-
Crea un progetto Google Cloud :
gcloud projects create PROJECT_ID
Sostituisci
PROJECT_IDcon un nome per il progetto Google Cloud che stai creando. -
Seleziona il progetto Google Cloud che hai creato:
gcloud config set project PROJECT_ID
Sostituisci
PROJECT_IDcon il nome del progetto Google Cloud .
-
Verifica che la fatturazione sia attivata per il tuo progetto Google Cloud .
Abilita l'API Autorizzazione binaria, se non è già abilitata:
Ruoli richiesti per abilitare le API
Per abilitare le API, devi disporre dell'autorizzazione
serviceusage.services.enable. Se hai creato il progetto, probabilmente disponi già di questa autorizzazione tramite il ruolo Proprietario (roles/owner). In caso contrario, puoi ottenere questa autorizzazione tramite il ruolo Amministratore Service Usage (roles/serviceusage.serviceUsageAdmin). Scopri come concedere i ruoli.gcloud services enable binaryauthorization.googleapis.com
Progetto del cluster diverso dal progetto della policy
Concedi al service agent di Autorizzazione binaria nel progetto del cluster il ruolo
Binary Authorization Policy Evaluator
(roles/binaryauthorization.policyEvaluator)
nel progetto della policy.
gcloud projects add-iam-policy-bindingPOLICY_PROJECT_ID\ --member="serviceAccount:service-$(gcloud projects describeCLUSTER_PROJECT_ID--format='value(projectNumber)')@gcp-sa-binaryauthorization.iam.gserviceaccount.com" \ --role=roles/binaryauthorization.policyEvaluator
Sostituisci quanto segue:
POLICY_PROJECT_ID: l'ID del progetto che contiene la tua policy.CLUSTER_PROJECT_ID: l'ID progetto del cluster.
Progetto cluster diverso dal progetto artefatto
Concedi al service agent di Autorizzazione binaria nel progetto del cluster il ruolo Lettore Artifact Registry (roles/artifactregistry.reader) nel progetto degli artefatti.
gcloud projects add-iam-policy-bindingARTIFACT_PROJECT_ID\ --member="serviceAccount:service-$(gcloud projects describeCLUSTER_PROJECT_ID--format='value(projectNumber)')@gcp-sa-binaryauthorization.iam.gserviceaccount.com" \ --role=roles/artifactregistry.reader
Sostituisci quanto segue:
ARTIFACT_PROJECT_ID: l'ID del progetto che contiene il repository Artifact Registry.CLUSTER_PROJECT_ID: l'ID progetto che esegue i tuoi cluster GKE.