Authentifizierung für Helm einrichten

Auf dieser Seite wird beschrieben, wie Sie Helm für die Authentifizierung bei Artifact Registry konfigurieren Repositories.

Hinweis

  1. Wenn kein Repository für Ihre Diagramme vorhanden ist, Erstellen Sie ein neues Repository. Wählen Sie „Docker“ als Repository-Format aus.
  2. Install the Google Cloud CLI, then initialize it by running the following command:

    gcloud init
  3. (Optional) Konfigurieren Sie Standardeinstellungen für Google Cloud CLI-Befehle.
  4. Installieren Sie Helm 3.8.0 oder höher. In früheren Versionen von Helm werden Diagramme im OCI-Format unterstützt, experimentelle Funktion.

    Führen Sie helm version aus, um die Version zu prüfen.

Authentifizierungsmethode auswählen

In den meisten Fällen empfehlen wir die Verwendung eines Dienstkontos für die Authentifizierung bei Artifact Registry.

Die folgenden Authentifizierungsmethoden sind verfügbar:

Für Docker konfigurierte Artifact Registry-Anmeldedaten verwenden
Standardmäßig kann sich Helm mit denselben Anmeldedaten authentifizieren, die Sie für Docker verwenden.
Zugriffstoken
Standardanmeldedaten für Anwendungen kurzlebige Zugriffstokens bereitstellen, Dienstkonto, das für den Zugriff auf Ihre Google Cloud-Ressourcen verwendet wird.
JSON-Schlüsseldatei

Ein vom Nutzer verwaltetes Schlüsselpaar, das Sie als Anmeldedaten für ein Dienstkonto verwenden können. Da die Anmeldedaten langlebig sind, ist es die unsicherste Option aller verfügbaren Authentifizierungsmethoden.

Verwenden Sie nach Möglichkeit ein Zugriffstoken, um das Risiko eines unberechtigten Zugriffs auf Ihre Artefakte zu verringern.

Docker-Konfiguration verwenden

Standardmäßig unterstützt Helm Registry-Einstellungen in der Docker-Konfigurationsdatei config.json. Helm sucht nach Registry-Einstellungen entweder am Standardspeicherort oder am Speicherort, der durch die Umgebungsvariable DOCKER_CONFIG angegeben ist.

Wenn Sie Docker konfiguriert haben mit einem Credential Helper zur Authentifizierung bei Artifact Registry, Helm verwendet Ihre vorhandene Konfiguration für Artifact Registry-Docker-Repositories.

Zugriffstoken verwenden

Zugriffstokens sind kurzlebige Tokens, die Zugriff auf Ihre Google Cloud-Ressourcen gewähren. Da das Token kurzlebig ist, sollten Sie es weniger als eine Stunde bevor Sie es zur Verbindung mit Artifact Registry-Repositories verwenden, anfordern.

Google Cloud erhält ein Zugriffstoken mithilfe von Standardanmeldedaten für Anwendungen.

So verwenden Sie ein Zugriffstoken:

  1. Erstellen Sie ein Dienstkonto, das im Namen Ihrer Anwendung agieren soll, oder wählen Sie ein vorhandenes Dienstkonto für die Automatisierung aus.

    Sie benötigen den Speicherort der Dienstkonto-Schlüsseldatei, um damit die Authentifizierung bei Artifact Registry einzurichten. Auf der Seite „Dienstkonten“ können Sie die Schlüssel vorhandener Konten aufrufen und neue Schlüssel erstellen.

    Zur Seite „Dienstkonten“

  2. Gewähren Sie dem Dienstkonto die entsprechende Artifact Registry-Rolle, um den Zugriff auf das Repository zu ermöglichen.

  3. Weisen Sie der Variablen GOOGLE_APPLICATION_CREDENTIALS den Speicherort des Dienstkontoschlüssels zu, damit die Artifact Registry-Credential Helper Ihren Schlüssel beim Herstellen einer Verbindung zu Repositories abrufen können.

    export GOOGLE_APPLICATION_CREDENTIALS=KEY-FILE
    

    Dabei ist KEY-FILE der Pfad zur Schlüsseldatei des Dienstkontos.

  4. Rufen Sie zur Authentifizierung bei Artifact Registry mit Docker ein Zugriffstoken ab.

    Linux/macOS

    Führen Sie dazu diesen Befehl aus:

    gcloud auth application-default print-access-token | helm registry login -u oauth2accesstoken \
    --password-stdin https://LOCATION-docker.pkg.dev
    

    Windows

    Führen Sie dazu diesen Befehl aus:

    gcloud auth application-default print-access-token
    ya29.8QEQIfY_...
    
    helm registry login -u oauth2accesstoken -p "ya29.8QEQIfY_..." \
    https://LOCATION-docker.pkg.dev
    

    Dabei gilt:

    • oauth2accesstoken ist der Nutzername für die Authentifizierung mit einem ein Zugriffstoken hinzufügen.
    • gcloud auth application-default print-access-token ist der Befehl der Google Cloud CLI, mit dem das Zugriffstoken für das Dienstkonto abgerufen wird. Ihr Zugriff token ist das Passwort für die Authentifizierung.
    • LOCATION ist der/die/das regional oder multiregional Speicherort des Repositorys wo das Bild gespeichert ist.

Helm ist jetzt bei Artifact Registry authentifiziert.

JSON-Schlüsseldatei verwenden

Jeder, der Zugriff auf einen gültigen privaten Schlüssel für ein Dienstkonto hat, kann über das Dienstkonto auf Ressourcen zugreifen. Beachten Sie, dass der Lebenszyklus des Schlüsselzugriffs auf das Dienstkonto (und damit die Daten, auf die das Dienstkonto Zugriff hat) vom Lebenszyklus des Nutzers unabhängig ist, der den Schlüssel heruntergeladen hat.

Verwenden Sie die folgenden Richtlinien, um den Zugriff auf Ihre Repositories einzuschränken:

  • Erstellen Sie dedizierte Dienstkonten, die nur für die Interaktion mit Repositories verwendet werden.
  • Gewähren Sie die spezifische Artifact Registry-Rolle. für den Zugriff, der für das Dienstkonto erforderlich ist. Beispielsweise benötigt ein Dienstkonto, das nur Artefakte herunterlädt, nur die Rolle Artifact Registry-Leser.
  • Konfigurieren Sie die Berechtigungen für Ihre dedizierten Dienstkonten für jedes Repository und nicht auf Projektebene. Anschließend können Sie den Zugriff basierend auf dem Repository-Kontext festlegen. Beispielsweise kann ein Dienstkonto für Entwicklungs-Builds die Rolle Artifact Registry-Leser für ein Produktions-Repository und die Artifact Registry-Autor-Rolle für ein Staging-Repository haben.
  • Folgen Sie den Best Practices für die Verwaltung von Dienstkontoschlüsseln.

So erstellen Sie ein neues Dienstkonto und einen Dienstkontoschlüssel nur für die Verwendung mit Artifact Registry-Repositories:

  1. Erstellen Sie ein Dienstkonto, das im Namen Ihrer Anwendung agieren soll, oder wählen Sie ein vorhandenes Dienstkonto für die Automatisierung aus.

    Sie benötigen den Speicherort der Dienstkonto-Schlüsseldatei, um damit die Authentifizierung bei Artifact Registry einzurichten. Auf der Seite „Dienstkonten“ können Sie die Schlüssel vorhandener Konten aufrufen und neue Schlüssel erstellen.

    Zur Seite „Dienstkonten“

  2. Sie können den gesamten Inhalt der Schlüsseldatei optional base64-codieren.

    Linux

    base64 FILE-NAME > NEW-FILE-NAME
    

    macOS

    base64 -i FILE-NAME -o NEW-FILE-NAME
    

    Windows

    Base64.exe -e FILE-NAME > NEW-FILE-NAME
    

    Dabei ist FILE-NAME der ursprüngliche Schlüsseldateiname und NEW-FILE-NAME Ihre base64-codierte Schlüsseldatei.

  3. Gewähren Sie dem Dienstkonto die entsprechende Artifact Registry-Rolle, um den Zugriff auf das Repository zu ermöglichen.

  4. Verwenden Sie den Dienstkontoschlüssel, um sich zu authentifizieren:

    Linux/macOS

    Führen Sie dazu diesen Befehl aus:

    cat KEY-FILE | helm registry login -u KEY-TYPE --password-stdin \
    https://LOCATION-docker.pkg.dev
    

    Windows

    Führen Sie dazu diesen Befehl aus:

    helm registry login -u KEY-TYPE --password-stdin https://LOCATION-docker.pkg.dev < KEY-FILE
    

    Dabei gilt:

    • KEY-TYPE ist einer der folgenden Werte:
      • _json_key, wenn Sie den Dienstkontoschlüssel im JSON-Format verwenden, wie er beim Erstellen der Datei angegeben wurde.
      • _json_key_base64, wenn Sie den gesamten Inhalt der Datei base64-codiert haben.
    • KEY-FILE ist der Name der Dienstkonto-Schlüsseldatei im JSON-Format.
    • LOCATION ist der regional oder multiregional Speicherort des Repositorys, in dem das Image gespeichert ist.

Helm ist jetzt bei Artifact Registry authentifiziert.

Nächste Schritte