Configura l'accesso tra progetti in GKE

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 di autorizzazione binaria nel tuo progetto l'accesso ai metadati delle immagini nel repository di origine.

Terminologia

Questo documento utilizza i seguenti termini:

  • Agente di servizio : account di servizio gestito da Google Cloud. Autorizzazione binaria utilizza un service agent per interagire con le tue risorse, come i cluster GKE. Google Cloud
  • Progetto policy: il progetto Google Cloud contenente la 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 dell'artefatto.

Prima di iniziare

  1. 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 workload.
  2. Installa Google Cloud CLI.

  3. Se utilizzi un provider di identità (IdP) esterno, devi prima accedere a gcloud CLI con la tua identità federata.

  4. Per inizializzare gcloud CLI, esegui questo comando:

    gcloud init
  5. 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'autorizzazione resourcemanager.projects.create. Scopri come concedere i ruoli.
    • Creare un progetto Google Cloud :

      gcloud projects create PROJECT_ID

      Sostituisci PROJECT_ID con 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_ID con il nome del progetto Google Cloud .

  6. Verifica che la fatturazione sia abilitata per il tuo progetto Google Cloud .

  7. Abilita l'API Autorizzazione binaria:

    Ruoli richiesti per abilitare le API

    Per abilitare le API, devi disporre del ruolo IAM Amministratore utilizzo dei servizi (roles/serviceusage.serviceUsageAdmin), che include l'autorizzazione serviceusage.services.enable. Scopri come concedere i ruoli.

    gcloud services enable binaryauthorization.googleapis.com
  8. Installa Google Cloud CLI.

  9. Se utilizzi un provider di identità (IdP) esterno, devi prima accedere a gcloud CLI con la tua identità federata.

  10. Per inizializzare gcloud CLI, esegui questo comando:

    gcloud init
  11. 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'autorizzazione resourcemanager.projects.create. Scopri come concedere i ruoli.
    • Creare un progetto Google Cloud :

      gcloud projects create PROJECT_ID

      Sostituisci PROJECT_ID con 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_ID con il nome del progetto Google Cloud .

  12. Verifica che la fatturazione sia abilitata per il tuo progetto Google Cloud .

  13. Abilita l'API Autorizzazione binaria:

    Ruoli richiesti per abilitare le API

    Per abilitare le API, devi disporre del ruolo IAM Amministratore utilizzo dei servizi (roles/serviceusage.serviceUsageAdmin), che include l'autorizzazione serviceusage.services.enable. Scopri come concedere i ruoli.

    gcloud services enable binaryauthorization.googleapis.com

Il progetto cluster è diverso dal progetto policy

Concedi all'agente di servizio Autorizzazione binaria nel progetto cluster il ruolo Binary Authorization Policy Evaluator (roles/binaryauthorization.policyEvaluator) nel progetto policy.

gcloud projects add-iam-policy-binding POLICY_PROJECT_ID \
  --member="serviceAccount:service-$(gcloud projects describe CLUSTER_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 policy.
  • CLUSTER_PROJECT_ID: l'ID progetto del cluster.

Progetto cluster diverso dal progetto artefatto

Concedi al service agent Autorizzazione binaria nel progetto cluster il ruolo Lettore Artifact Registry (roles/artifactregistry.reader) nel progetto artefatto.

gcloud projects add-iam-policy-binding ARTIFACT_PROJECT_ID \
    --member="serviceAccount:service-$(gcloud projects describe CLUSTER_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 cluster GKE.