Config Sync Zugriff auf Ihr OCI-Image oder Helm-Repository gewähren

Auf dieser Seite wird beschrieben, wie Sie Config Sync für Ihr OCI-Image oder Helm-Repository authentifizieren. Config Sync benötigt Lesezugriff auf Ihre Source of Truth, damit es Ihre Konfigurationen lesen, auf Ihre Cluster anwenden und synchronisieren kann.

Authentifizierungsmethode auswählen

Die Authentifizierungsmethode, die Sie verwenden, hängt davon ab, was für Ihren Quelltyp unterstützt wird.

In der folgenden Tabelle sind die Authentifizierungsmethoden zusammengefasst, die Sie mit Config Sync verwenden können:

Methode Unterstützte Quellen Beschreibung Beschränkungen
Keine Authentifizierung Git, OCI, Helm Es ist keine zusätzliche Einrichtung erforderlich. Funktioniert nur, wenn Ihre Single Source of Truth öffentlich ist.
SSH-Schlüsselpaar Git Wird von den meisten Git-Anbietern unterstützt. Erfordert Schlüsselverwaltung. Wird für OCI oder Helm nicht unterstützt.
token Git, Helm Wird von den meisten Git-Anbietern unterstützt. Eine gute Alternative, wenn Ihre Organisation die Verwendung von SSH-Schlüsseln nicht zulässt. Unterstützt Nutzernamen und Passwörter für Helm. Erfordert die Verwaltung von Tokens. Tokens können ablaufen. Wird für OCI nicht unterstützt.
Kubernetes-Dienstkonto OCI, Helm IAM wird verwendet, um einem Kubernetes-Dienstkonto direkten Zugriff auf Artifact Registry zu gewähren. Erfordert, dass die Workload Identity-Föderation für GKE in Ihrem Cluster aktiviert ist. Wird für Git nicht unterstützt.
Google-Dienstkonto Git IAM wird verwendet, sodass keine Anmeldedaten in Kubernetes-Secrets gespeichert werden müssen. Empfohlen für Secure Source Manager und Cloud Source Repositories. Erfordert, dass die Workload Identity-Föderation für GKE in Ihrem Cluster aktiviert ist. Erfordert eine Konfiguration vor und nach der Installation von Config Sync auf Ihren Clustern. Nicht unterstützt für Repositories, die außerhalb von Secure Source Manager oder Cloud Source Repositories gehostet werden.
GitHub-App Git Direkte Integration in GitHub. Ermöglicht detaillierte Berechtigungen. Nur für in GitHub gehostete Repositories verfügbar. Wird nur in Config Sync Version 1.19.1 und höher unterstützt.

Config Sync unterstützt auch die folgenden Authentifizierungsmethoden. Diese Methoden werden jedoch nur empfohlen, wenn Sie keine der Optionen in der vorherigen Tabelle verwenden können:

  • cookiefile wird möglicherweise nicht von allen Git-Anbietern unterstützt. Wird für OCI oder Helm nicht unterstützt.
  • Compute Engine-Standarddienstkonto (gcenode): Nicht empfohlen, da diese Methode nur funktioniert, wenn die Workload Identity-Föderation für GKE deaktiviert ist. Wird für Git, OCI und Helm unterstützt.
  • Google-Dienstkonto für Helm und OCI:Wird unterstützt, ist aber nicht empfehlenswert, da für die Kubernetes-Dienstkontomethode weniger Konfiguration erforderlich ist.

Hinweise

Bevor Sie Config Sync Lesezugriff auf Ihre „Source of Truth“ gewähren, führen Sie die folgenden Aufgaben aus:

Zugriff auf ein OCI-Image gewähren

In diesem Abschnitt wird beschrieben, wie Sie Config Sync mit einer unterstützten Authentifizierungsmethode Lesezugriff auf OCI-Images gewähren.

Sie müssen OCI-Images in Artifact Registry speichern, um sich bei Config Sync zu authentifizieren.

Kubernetes-Dienstkonto verwenden

Wenn Sie sich mit einem Kubernetes-Dienstkonto authentifizieren möchten, muss für Ihren Cluster Workload Identity Federation for GKE oder Workload Identity Federation for GKE für Flotten aktiviert sein.

So gewähren Sie Config Sync mit einem Kubernetes-Dienstkonto Lesezugriff auf Ihr OCI-Image:

  1. Bitten Sie Ihren Administrator, Ihnen die IAM-Rolle Dienstkonto-Administrator (roles/iam.serviceAccountAdmin) für das Dienstkonto zuzuweisen, um die Berechtigungen zu erhalten, die Sie zum Erstellen einer Richtlinienbindung benötigen. Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff auf Projekte, Ordner und Organisationen verwalten.

    Sie können die erforderlichen Berechtigungen auch über benutzerdefinierte Rollen oder andere vordefinierte Rollen erhalten.

  2. Weisen Sie dem Kubernetes-Dienstkonto mit dem Workload Identity Federation for GKE-Pool die IAM-Rolle „Artifact Registry-Leser“ (roles/artifactregistry.reader) zu:

    • Erteilen Sie projektweite Berechtigungen, wenn für alle Repositories im Projekt dieselben Berechtigungen gelten sollen.

      gcloud projects add-iam-policy-binding PROJECT_ID \
           --role=roles/artifactregistry.reader \
           --member="serviceAccount:FLEET_HOST_PROJECT_ID.svc.id.goog[config-management-system/KSA_NAME]"
      
    • Erteilen Sie eine Repository-spezifische Berechtigung, wenn Sie Dienstkonten für jedes Repository in Ihrem Projekt unterschiedliche Zugriffsebenen zuweisen möchten.

      gcloud artifacts repositories add-iam-policy-binding REPOSITORY \
          --location=LOCATION \
          --role=roles/artifactregistry.reader \
          --member="serviceAccount:FLEET_HOST_PROJECT_ID.svc.id.goog[config-management-system/KSA_NAME]" \
          --project=PROJECT_ID
      

    Ersetzen Sie Folgendes:

    • PROJECT_ID: Ihre Projekt-ID.
    • FLEET_HOST_PROJECT_ID: Wenn Sie Workload Identity Federation for GKE verwenden, entspricht dieser Wert der Projekt-ID. Wenn Sie Workload Identity Federation for GKE für Flotten verwenden, ist dies die Projekt-ID der Flotte, für die Ihr Cluster registriert ist.
    • REPOSITORY: Die ID des Bildes.
    • LOCATION: der regionale oder multiregionale Speicherort für das Repository.

Verwenden Sie bei der Installation von Config Sync das Kubernetes-Dienstkonto (k8sserviceaccount) als Authentifizierungstyp.

Compute Engine-Standarddienstkonto verwenden

Wenn Sie die Identitätsföderation von Arbeitslasten für GKE nicht aktiviert haben, können Sie sich alternativ zu einem Google-Dienstkonto mit einem Compute Engine-Dienstkonto authentifizieren.

Wenn Sie ein Compute Engine-Standarddienstkonto verwenden möchten, um Config Sync schreibgeschützten Zugriff auf Ihr Repository zu gewähren, erteilen Sie dem Compute Engine-Dienstkonto die Leseberechtigung für Artifact Registry:

gcloud projects add-iam-policy-binding PROJECT_ID \
      --member=serviceAccount:PROJECT_NUMBER-compute@developer.gserviceaccount.com \
      --role=roles/artifactregistry.reader

Ersetzen Sie Folgendes:

  • PROJECT_ID: Ihre Projekt-ID.
  • PROJECT_NUMBER: Ihre Projektnummer.

Verwenden Sie bei der Installation von Config Sync das Compute Engine-Dienstkonto (gcenode) als Authentifizierungstyp.

Zugriff auf ein Helm-Repository gewähren

In diesem Abschnitt wird beschrieben, wie Sie Config Sync Lesezugriff auf Helm-Charts gewähren, die in einem Repository gespeichert sind.

Token verwenden

Wenn Sie ein Token verwenden möchten, um Config Sync Lesezugriff auf Ihr Helm-Repository zu gewähren, erstellen Sie ein Secret mit Ihrem Helm-Repository-Nutzernamen und -Passwort:

kubectl create secret generic SECRET_NAME \
      --namespace=config-management-system \
      --from-literal=username=USERNAME \
      --from-literal=password=PASSWORD

Ersetzen Sie Folgendes:

  • SECRET_NAME: ein Name für Ihr Secret.
  • USERNAME: Ihr Nutzername für das Helm-Repository.
  • PASSWORD: Ihr Helm-Repository-Passwort.

Verwenden Sie bei der Installation von Config Sync das Token (token) als Authentifizierungstyp. Sie müssen auch den Secret-Namen im Feld spec.helm.secretRef.name angeben.

Kubernetes-Dienstkonto verwenden

Wenn Sie sich mit einem Kubernetes-Dienstkonto authentifizieren möchten, müssen die folgenden Voraussetzungen erfüllt sein:

Wenn Sie ein Kubernetes-Dienstkonto verwenden möchten, um Config Sync schreibgeschützten Zugriff auf Ihr Helm-Repository zu gewähren, führen Sie die folgenden Schritte aus:

  1. Bitten Sie Ihren Administrator, Ihnen die IAM-Rolle Dienstkonto-Administrator (roles/iam.serviceAccountAdmin) für das Dienstkonto zuzuweisen, um die Berechtigungen zu erhalten, die Sie zum Erstellen einer Richtlinienbindung benötigen. Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff auf Projekte, Ordner und Organisationen verwalten.

    Sie können die erforderlichen Berechtigungen auch über benutzerdefinierte Rollen oder andere vordefinierte Rollen erhalten.

  2. Wenn Sie ein Kubernetes-Dienstkonto verwenden möchten, um Config Sync schreibgeschützten Zugriff auf Ihr Helm-Repository zu gewähren, weisen Sie dem Kubernetes-Dienstkonto mit dem Workload Identity Federation for GKE-Pool die IAM-Rolle „Artifact Registry-Leser“ (roles/artifactregistry.reader) zu:

    • Erteilen Sie projektweite Berechtigungen, wenn für alle Repositories im Projekt dieselben Berechtigungen gelten sollen.

      gcloud projects add-iam-policy-binding PROJECT_ID \
           --role=roles/artifactregistry.reader \
           --member="serviceAccount:FLEET_HOST_PROJECT_ID.svc.id.goog[config-management-system/KSA_NAME]"
      
    • Erteilen Sie eine Repository-spezifische Berechtigung, wenn Sie Dienstkonten für jedes Repository in Ihrem Projekt unterschiedliche Zugriffsebenen zuweisen möchten.

      gcloud artifacts repositories add-iam-policy-binding REPOSITORY \
          --location=LOCATION \
          --role=roles/artifactregistry.reader \
          --member="serviceAccount:FLEET_HOST_PROJECT_ID.svc.id.goog[config-management-system/KSA_NAME]" \
          --project=PROJECT_ID
      

    Ersetzen Sie Folgendes:

    • PROJECT_ID: Ihre Projekt-ID.
    • FLEET_HOST_PROJECT_ID: Wenn Sie Workload Identity Federation for GKE verwenden, entspricht dieser Wert der Projekt-ID. Wenn Sie Workload Identity Federation for GKE für Flotten verwenden, ist dies die Projekt-ID der Flotte, für die Ihr Cluster registriert ist.
    • REPOSITORY: Die ID des Bildes.
    • LOCATION: der regionale oder multiregionale Speicherort für das Repository.

Verwenden Sie bei der Installation von Config Sync das Kubernetes-Dienstkonto (k8sserviceaccount) als Authentifizierungstyp.

Compute Engine-Standarddienstkonto verwenden

Wenn Sie die Identitätsföderation von Arbeitslasten für GKE nicht aktiviert haben, können Sie sich alternativ zu einem Google-Dienstkonto mit einem Compute Engine-Dienstkonto authentifizieren.

Wenn Sie ein Compute Engine-Standarddienstkonto verwenden möchten, um Config Sync schreibgeschützten Zugriff auf Ihr Repository zu gewähren, erteilen Sie dem Compute Engine-Dienstkonto die Leseberechtigung für Artifact Registry:

gcloud projects add-iam-policy-binding PROJECT_ID \
      --member=serviceAccount:PROJECT_NUMBER-compute@developer.gserviceaccount.com \
      --role=roles/artifactregistry.reader

Ersetzen Sie Folgendes:

  • PROJECT_ID: Ihre Projekt-ID.
  • PROJECT_NUMBER: Ihre Projektnummer.

Verwenden Sie bei der Installation von Config Sync das Compute Engine-Dienstkonto (gcenode) als Authentifizierungstyp.

Nächste Schritte