Configurare 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 dal tuo progetto 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 dell'immagine 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 che contiene la policy di autorizzazione binaria. Google Cloud
  • 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 le 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. 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. 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. 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.

  6. Verify that billing is enabled for your Google Cloud project.

  7. Enable the Binary Authorization API:

    gcloud services enable binaryauthorization.googleapis.com
  8. Install the 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. 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.

  12. Verify that billing is enabled for your Google Cloud project.

  13. Enable the Binary Authorization API:

    gcloud services enable binaryauthorization.googleapis.com
  14. Il progetto del cluster è diverso dal progetto del criterio

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

    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 all'agente di servizio 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.