Die Authentifizierung gegenüber Artifact Registry unterscheidet sich beim Hochladen und
gepackte Go-Module herunterladen. Wenn Sie beim Erstellen und Hochladen eines Go-Moduls
in Artifact Registry sucht das gcloud CLI-Tool nach Anmeldedaten in
für Ihre Umgebung, um die Authentifizierung in der folgenden Reihenfolge einzurichten, es sei denn,
--json_key
wird übergeben, um einen Dienstkontoschlüssel zu verwenden.
Standardanmeldedaten für Anwendungen (ADC), eine Strategie, die in der folgenden Reihenfolge nach Anmeldedaten sucht:
In der Umgebungsvariable
GOOGLE_APPLICATION_CREDENTIALS
definierte Anmeldedaten.Anmeldedaten, die das Standarddienstkonto für Compute Engine, Google Kubernetes Engine, Cloud Run, App Engine oder Cloud Functions bietet.
Von der Google Cloud CLI bereitgestellte Anmeldedaten, einschließlich Nutzeranmeldedaten von den Befehl
gcloud auth application-default login
.
Durch die Variable GOOGLE_APPLICATION_CREDENTIALS
wird die
Authentifizierung explizit, was die Fehlerbehebung vereinfacht. Wenn
Sie die Variable nicht verwenden, prüfen Sie, ob alle von ADC verwendeten Konten
die erforderlichen Berechtigungen. Zum Beispiel der
Standarddienstkonto für Compute Engine-VMs, Google Kubernetes Engine-Knoten
und Cloud Run-Versionen
schreibgeschützten Zugriff auf Repositories. Wenn Sie
aus diesen Umgebungen
über das Standarddienstkonto hochladen möchten,
müssen Sie die Berechtigungen ändern.
Beim Herunterladen gepackter Go-Module zur Verwendung als Abhängigkeiten von Artifact Registry verwendet das Go-Binärprogramm die Anmeldedaten in der netrc-Datei um sich bei Artifact Registry zu authentifizieren. Um die Authentifizierung zu vereinfachen können Sie mit dem Credential Helper Go die Tokens in Ihrem netrc-Datei zur Authentifizierung bei Artifact Registry.
Der Speicherort der netrc-Datei kann mit der Umgebungsvariable netrc festgelegt werden.
Wenn die Variable NETRC
nicht festgelegt ist, liest der Befehl go
$HOME/.netrc
auf UNIX-ähnlichen Plattformen oder %USERPROFILE%\_netrc
unter Windows.
Artifact Registry unterstützt bei Verwendung der folgenden Authentifizierungsmethoden die folgenden Authentifizierungsmethoden: Anmeldedaten in Ihrer Netrc-Datei:
- Kurzlebige Anmeldedaten (empfohlen)
- Artifact Registry Go Credential Helper-Tool verwenden um die Authentifizierungstokens in der netrc-Datei mithilfe der in Ihrer Umgebung an oder fügen Sie Artifact Registry manuell hinzu Anmeldedaten für die netrc-Datei.
- Dienstkontoschlüssel verwenden
- Verwenden Sie diese Option, wenn Sie in Ihrer Umgebung keine Anmeldedaten für Authentifizierung. Sie können die Artifact Registry Go Credential Helper-Tool zum Hinzufügen der unverschlüsselten Dienstkontoschlüssel in die Netrc-Datei ein oder fügen Sie ihn manuell in der Datei.
Hinweise
- Installieren Los gehts 1.15 oder höher.
Installieren Sie das gcloud CLI-Add-on „package-go-module“:
gcloud components install package-go-module
Go-Umgebung einrichten
Go zum Herunterladen von Modulen aus Artifact Registry, dem öffentlichen Go Module-Proxy und Quellen in dieser Reihenfolge:
export GOPROXY=https://LOCATION-go.pkg.dev/PROJECT/REPOSITORY,https://proxy.golang.org,direct
Ersetzen Sie Folgendes:
- LOCATION ist der regionale oder multiregionale Ort des Repositorys.
- PROJECT ist Ihre Google Cloud-Projekt-ID.
- REPOSITORY ist der Name des Repositorys, in dem der Paket gespeichert.
Schließen Sie Ihr Modul von der Prüfung mit der öffentlichen Prüfsummendatenbank aus:
export GONOSUMDB=MODULE_PATH_REGEX
Ersetzen Sie MODULE_PATH_REGEX durch Ihren Modulpfad oder einen regulären wenn Sie mehrere Module ausschließen möchten.
Um beispielsweise das Modul
example.com/foo
von der Prüfung auszuschließen, verwenden Sie der öffentlichen Prüfsummendatenbank, führen Sie den folgenden Befehl aus:export GONOSUMDB=example.com/foo
Der folgende Befehl schließt alle Module aus, deren Modulpfade in
example.com
von der Prüfung mit der öffentlichen Prüfsummendatenbank entfernt:export GONOSUMDB=example.com/*
Artifact Registry-Anmeldedaten zur Netrc-Datei hinzufügen
Führen Sie den folgenden Befehl aus, um Ihre Artifact Registry-Anmeldedaten zu Ihrem netrc-Datei mit dem Go Credential Helper:
GOPROXY=proxy.golang.org \ go run github.com/GoogleCloudPlatform/artifact-registry-go-tools/cmd/auth@v0.1.0 \ add-locations --locations=LOCATION \ --json_key=PATH_TO_JSON_KEY
Wobei:
- LOCATION ist der regionale oder multiregionale Ort Ihres Repositorys. Wenn Sie mehrere Standorte hinzufügen möchten, trennen Sie sie durch ein Komma. getrennten Liste hinzugefügt.
PATH_TO_JSON_KEY Optional. Der Pfad zu Ihrem Dienstkonto .
Go Credential Helper fügt Ihrer Netrc-Datei Einstellungen für die Authentifizierung hinzu an Artifact Registry senden. Wenn Sie das Flag
--json_key
übergeben, wird der Schlüssel hinzugefügt zur Passwortauthentifizierung in Ihre Netrc-Datei ein.
Wenn Sie kurzlebige Anmeldedaten für die Authentifizierung verwenden an Artifact Registry senden, müssen Sie Ihr OAuth-Token aktualisieren, indem Sie folgenden Befehl, bevor Sie das Modul als Abhängigkeit verwenden:
GOPROXY=proxy.golang.org \ go run github.com/GoogleCloudPlatform/artifact-registry-go-tools/cmd/auth@v0.1.0 refresh
Mit einem Dienstkontoschlüssel authentifizieren
Verwenden Sie diesen Ansatz, wenn Sie eine Authentifizierung mit einem Nutzernamen und Passwort verlangen.
Dienstkontoschlüssel sind langlebige Anmeldedaten. Verwenden Sie die folgenden Richtlinien, um den Zugriff auf Ihre Repositories einzuschränken:
- Verwenden Sie ein dediziertes Dienstkonto für die Interaktion mit Repositories.
- Erteilen Sie die vom Dienstkonto erforderliche Artifact Registry-Mindestrolle. Weisen Sie z. B. Artifact Registry-Reader einem Dienstkonto zu, das nur Artefakte herunterlädt.
- Wenn Gruppen in Ihrer Organisation verschiedene Zugriffsebenen für bestimmte Repositories benötigen, erteilen Sie den Zugriff auf Repository-Ebene und nicht auf Projektebene.
- Folgen Sie den Best Practices für die Verwaltung von Anmeldedaten.
So konfigurieren Sie die Authentifizierung:
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.
Gewähren Sie Artifact Registry-Rolle für das Dienstkonto zur Bereitstellung des Repositorys access.
Führen Sie den folgenden Befehl aus, um die Anmeldedaten Ihres Dienstkontos zu Ihrem netrc-Datei mit dem Go Credential Helper:
GOPROXY=proxy.golang.org \ go run github.com/GoogleCloudPlatform/artifact-registry-go-tools/cmd/auth@v0.1.0 \ add-locations --locations=LOCATION \ --json_key=PATH_TO_JSON_KEY
Wobei:
- LOCATION ist der regionale oder multiregionale Ort Ihres Repositorys. Wenn Sie mehrere Standorte hinzufügen möchten, trennen Sie sie durch ein Komma. getrennten Liste hinzugefügt.
PATH_TO_JSON_KEY ist der Pfad zum JSON-Dienstkonto des Dienstkontos Schlüsseldatei zu suchen.
Go Credential Helper fügt den Dienstkontoschlüssel Ihrem Netrc hinzu -Datei zur Passwortauthentifizierung.
Sie können der netrc-Datei auch manuell Ihren Dienstkontoschlüssel hinzufügen im folgenden Format:
machine LOCATION.pkg.dev
login json_key_base64
password KEY
Ersetzen Sie Folgendes:
- LOCATION durch das regionale oder multiregionale Element Ort Ihres Repositorys.
- KEY durch den base64-codierten Schlüssel in der Schlüsseldatei des Dienstkontos.
Go Credential Helper zu GONOPROXY
hinzufügen
Bevor Sie den Credential Helper Go verwenden können, müssen Sie ihn der GONOPROXY
-Liste hinzufügen
damit Go ihn direkt von GitHub herunterlädt. Wenn Sie andere Module haben,
direkt aus der Quelle herunterladen möchten, können Sie sie durch Kommas getrennt eingeben.
wie im folgenden Beispiel gezeigt:
export GONOPROXY=MODULE_PATH1, MODULE_PATH2
Dabei sind MODULE_PATH1 und MODULE_PATH2 die Modulpfade der Module, die heruntergeladen werden sollen. aus der Quelle.
Gehen Sie so vor, um Go Credential Helper Ihrer GONOPROXY
-Liste hinzuzufügen und zur Einrichtung auszuführen.
Ihre Anmeldedaten:
Go Credential Helper zu
GONOPROXY
hinzufügenexport GONOPROXY=github.com/GoogleCloudPlatform/artifact-registry-go-tools
Führen Sie den folgenden Befehl aus, um Ihre Artifact Registry-Anmeldedaten zu Ihrem netrc-Datei mit dem Go-Modulpakettool hinzu:
GOPROXY=proxy.golang.org \ go run github.com/GoogleCloudPlatform/artifact-registry-go-tools/cmd/auth@v0.1.0 \ add-locations --locations=LOCATION \ [--json_key=path/to/service/account/key.json]
Dabei ist LOCATION der regionale oder multiregionale Ort Ihres Repositorys. Um mehrere Standorte hinzuzufügen, geben Sie sie als kommagetrennte Liste.
Go Credential Helper fügt Ihrer Netrc-Datei Einstellungen für die Authentifizierung hinzu an Artifact Registry senden. Wenn Sie das Flag
--json_key
übergeben, wird der Schlüssel Ihre Netrc-Datei für die Passwortauthentifizierung.
Nächste Schritte
- Dann bietet sich der Schnellstart an.
- Go-Module verwalten