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.
  • Artefakt-Projekt: 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. Install the Google Cloud CLI.
  2. To initialize the gcloud CLI, run the following command:

    gcloud init
  3. 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.

  4. Die Abrechnung für das Google Cloud-Projekt muss aktiviert sein.

  5. Aktivieren Sie die 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.