Configurare l'accesso tra progetti in GKE

Questa pagina mostra come concedere ad Autorizzazione binaria l'accesso ai criteri e al contenitore esistenti in progetti Google Cloud diversi da quello attuale. Ad esempio, se esegui il deployment di immagini nel cluster Google Kubernetes Engine (GKE) Da un Artifact Registry o Container Registry (deprecato) di proprietà di un altro progetto, dovrai assegnare al servizio di Autorizzazione binaria nel tuo progetto per accedere ai metadati dell'immagine in nel repository di codice sorgente.

Terminologia

In questo documento vengono utilizzati i seguenti termini:

  • Agente di servizio: un account di servizio gestito da Google Cloud. Autorizzazione binaria utilizza un agente di servizio per interagire con Google Cloud come i cluster GKE.
  • Progetto criteri : il progetto Google Cloud che contiene il tuo Criterio di Autorizzazione binaria.
  • Progetto cluster: il progetto Google Cloud che contiene la tua cluster GKE.
  • Progetto artefatto : il progetto Google Cloud che contiene il tuo Artifact Registry o Container Registry (deprecato) repository Git.

Scenari che richiedono l'accesso tra progetti

Devi concedere autorizzazioni tra progetti in situazioni come le seguenti:

  • Il progetto del criterio è diverso dal progetto del cluster.
  • Il progetto del cluster è diverso dal progetto degli artefatti.

Prima di iniziare

  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  2. Install the Google Cloud CLI.
  3. To initialize the gcloud CLI, run the following command:

    gcloud init
  4. Create or select a Google Cloud project.

    • Create a Google Cloud project:

      gcloud projects create PROJECT_ID

      Replace PROJECT_ID with a name for the Google Cloud project you are creating.

    • Select the Google Cloud project that you created:

      gcloud config set project PROJECT_ID

      Replace PROJECT_ID with your Google Cloud project name.

  5. Make sure that billing is enabled for your Google Cloud project.

  6. Enable the Binary Authorization API:

    gcloud services enable binaryauthorization.googleapis.com
  7. Install the Google Cloud CLI.
  8. To initialize the gcloud CLI, run the following command:

    gcloud init
  9. Create or select a Google Cloud project.

    • Create a Google Cloud project:

      gcloud projects create PROJECT_ID

      Replace PROJECT_ID with a name for the Google Cloud project you are creating.

    • Select the Google Cloud project that you created:

      gcloud config set project PROJECT_ID

      Replace PROJECT_ID with your Google Cloud project name.

  10. Make sure that billing is enabled for your Google Cloud project.

  11. Enable the Binary Authorization API:

    gcloud services enable binaryauthorization.googleapis.com

Progetto cluster diverso dal progetto criterio

Concedi all'agente di servizio di Autorizzazione binaria nel progetto del cluster il ruolo Binary Authorization Policy Evaluator (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.

Progetto cluster diverso dal progetto artefatto

Concedi all'agente di servizio Autorizzazione binaria nel progetto cluster la 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 del repository Artifact Registry.
  • CLUSTER_PROJECT_ID: l'ID progetto che esegue GKE cluster.