Configurare l'accesso tra progetti in GKE

Questa pagina mostra come concedere ad Autorizzazione binaria l'accesso ai criteri e alle immagini container che esistono in progetti Google Cloud diversi rispetto al progetto attuale. Ad esempio, se esegui il deployment di immagini nel tuo cluster Google Kubernetes Engine (GKE) da un repository Artifact Registry o Container Registry (deprecato) di proprietà di un altro progetto, dovrai concedere al servizio di Autorizzazione binaria nel progetto l'accesso ai metadati delle immagini nel repository di origine.

Terminologia

Questo documento utilizza i seguenti termini:

  • Agente di servizio : un account di servizio gestito da Google Cloud. Autorizzazione binaria utilizza un agente di servizio per interagire con le risorse Google Cloud, come i cluster GKE.
  • Progetto dei criteri: il progetto Google Cloud che contiene il criterio di Autorizzazione binaria.
  • Progetto cluster: il progetto Google Cloud che contiene il cluster GKE.
  • Progetto Artifact : il progetto Google Cloud che contiene il 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 del criterio è diverso da quello 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 gratuiti per l'esecuzione, il test e il deployment dei carichi di lavoro.
  2. Installa Google Cloud CLI.
  3. Per initialize gcloud CLI, esegui questo comando:

    gcloud init
  4. Crea o seleziona un progetto Google Cloud.

    • Crea 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 tuo progetto Google Cloud.

  5. Assicurati che la fatturazione sia attivata per il tuo progetto Google Cloud.

  6. Attiva l'API Binary Authorization.

    gcloud services enable binaryauthorization.googleapis.com
  7. Installa Google Cloud CLI.
  8. Per initialize gcloud CLI, esegui questo comando:

    gcloud init
  9. Crea o seleziona un progetto Google Cloud.

    • Crea 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 tuo progetto Google Cloud.

  10. Assicurati che la fatturazione sia attivata per il tuo progetto Google Cloud.

  11. Attiva l'API Binary Authorization.

    gcloud services enable binaryauthorization.googleapis.com

Il progetto del cluster è diverso dal progetto del criterio

Concedi all'agente di servizio di Autorizzazione binaria nel progetto cluster il ruolo Valutatore dei criteri di Autorizzazione binaria (roles/binaryauthorization.policyEvaluator) nel progetto del criterio.

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 il criterio.
  • CLUSTER_PROJECT_ID: l'ID progetto del cluster.

Il progetto cluster è diverso dal progetto dell'artefatto

Concedi all'agente di servizio di Autorizzazione binaria nel progetto cluster il ruolo Lettore Artifact Registry (roles/artifactregistry.reader) nel progetto dell'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.