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. Melden Sie sich bei Ihrem Google Cloud-Konto an. Wenn Sie mit Google Cloud noch nicht vertraut sind, erstellen Sie ein Konto, um die Leistungsfähigkeit unserer Produkte in der Praxis sehen und bewerten zu können. Neukunden erhalten außerdem ein Guthaben von 300 $, um Arbeitslasten auszuführen, zu testen und bereitzustellen.
  2. Installieren Sie die Google Cloud CLI.
  3. Führen Sie folgenden Befehl aus, um die gcloud CLI zu initialisieren:

    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. Die Abrechnung für das Google Cloud-Projekt muss aktiviert sein.

  6. Aktivieren Sie die Binary Authorization API:

    gcloud services enable binaryauthorization.googleapis.com
  7. Installieren Sie die Google Cloud CLI.
  8. Führen Sie folgenden Befehl aus, um die gcloud CLI zu initialisieren:

    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. Die Abrechnung für das Google Cloud-Projekt muss aktiviert sein.

  11. 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.