Projektübergreifenden Zugriff in GKE konfigurieren

Auf dieser Seite erfahren Sie, wie Sie der Binärautorisierung Zugriff auf Richtlinien und Container-Images gewähren, die in anderen Google Cloud-Projekten als in Ihrem aktuellen Projekt vorhanden sind. Wenn Sie beispielsweise Images in Ihrem Google Kubernetes Engine-Cluster (GKE) aus einem Artifact Registry-Repository oder einer Container Registry (verworfener Link) bereitstellen, das zu einem anderen Projekt gehört, müssen Sie dem Binärautorisierungsdienst in Ihrem Projekt Zugriff auf Image-Metadaten im Quell-Repository.

Terminologie

In diesem Dokument werden die folgenden Begriffe verwendet:

  • Dienst-Agent: Ein von Google Cloud verwaltetes Dienstkonto. Die Binärautorisierung verwendet einen Dienst-Agent, um mit Ihren Google Cloud-Ressourcen wie GKE-Clustern zu interagieren.
  • Richtlinienprojekt: Das Google Cloud-Projekt, das Ihre Richtlinie für die Binärautorisierung enthält.
  • Clusterprojekt: Das Google Cloud-Projekt, das Ihren GKE-Cluster enthält.
  • Artefaktprojekt: Das Google Cloud-Projekt, das Ihr Artifact Registry- oder Container Registry-Repository (verworfen) enthält.

Szenarien, die einen projektübergreifenden Zugriff erfordern

In Situationen wie den folgenden müssen Sie projektübergreifende Berechtigungen erteilen:

  • Ihr Richtlinienprojekt unterscheidet sich von Ihrem Clusterprojekt.
  • Ihr Clusterprojekt unterscheidet sich von Ihrem Artefaktprojekt.

Hinweise

  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

Clusterprojekt, das vom Richtlinienprojekt abweicht

Weisen Sie dem Dienst-Agent für die Binärautorisierung im Clusterprojekt die Rolle Evaluator für die Binärautorisierungsrichtlinie (roles/binaryauthorization.policyEvaluator) für das Richtlinienprojekt zu.

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

Ersetzen Sie Folgendes:

  • POLICY_PROJECT_ID: Die ID des Projekts, das Ihre Richtlinie enthält.
  • CLUSTER_PROJECT_ID: die Projekt-ID des Clusters.

Clusterprojekt, das sich vom Artefaktprojekt unterscheidet

Weisen Sie dem Dienst-Agent für die Binärautorisierung im Clusterprojekt die Rolle Artifact Registry-Leser (roles/artifactregistry.reader) für das Artefaktprojekt zu.

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

Ersetzen Sie Folgendes:

  • ARTIFACT_PROJECT_ID: die ID des Projekts, das Ihr Artifact Registry-Repository enthält.
  • CLUSTER_PROJECT_ID ist die ID des Projekts, in dem Ihre GKE-Cluster ausgeführt werden.