Sie müssen sich bei Artifact Registry authentifizieren, wenn Sie eine Drittanbieteranwendung für die Verbindung mit einem Repository verwenden.
Sie müssen die Authentifizierung für Cloud Build oder Google Cloud nicht konfigurieren wie Google Kubernetes Engine und Cloud Run. Sie sollten Prüfen Sie, ob die erforderlichen Berechtigungen konfiguriert sind.
Hinweise
-
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
- (Optional) Konfigurieren Sie Standardeinstellungen für gcloud CLI-Befehle.
- Wenn Sie unter Windows eine Verbindung zu Repositories herstellen, installieren Sie PowerShell
- Erstellen Sie ein Dienstkonto, das im Namen Ihrer Anwendung agiert.
- Wenn Sie npm noch nicht kennen, lesen Sie die Übersicht, um mehr über Paketumfang und die Konfigurationsdatei für Ihre Authentifizierungseinstellungen zu erfahren.
Übersicht
Artifact Registry unterstützt die folgenden Authentifizierungsmethoden.
- Credential Helper verwenden
- Diese Option bietet die größte Flexibilität. Wenn Sie den Hilfsprogramm in die npm-Konfiguration aufnehmen, sucht Artifact Registry nach den Anmeldedaten des Dienstkontos in der Umgebung.
- Dienstkontoschlüssel als Anmeldedaten angeben
- Verwenden Sie diese Option, wenn eine Anwendung die Standardanmeldedaten für Anwendungen nicht unterstützt, jedoch die Authentifizierung mit einem Nutzernamen und Passwort unterstützt.
Mit Credential Helper authentifizieren
google-artifactregistry-auth ist eine Clientbibliothek, die Anmeldedaten für Artifact Registry abruft Repositories.
Artifact Registry sucht in der folgenden Reihenfolge nach Anmeldedaten:
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 Run-Funktionen .
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 Konten, die ADC möglicherweise verwendet, die erforderlichen Berechtigungen haben. 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 mit dem Standarddienstkonto hochladen möchten, müssen Sie die Berechtigungen ändern.
So erstellen Sie ein Dienstkonto und legen die GOOGLE_APPLICATION_CREDENTIALS
fest
Umgebungsvariable:
Erstellen Sie ein Dienstkonto, das für Ihre Anwendung agiert, oder wählen Sie ein vorhandenes Dienstkonto für die CI-/CD-Automatisierung aus.
Die spezifische Artifact Registry-Rolle erteilen an das Dienstkonto, um Zugriff auf das Repository zu gewähren.
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.
So konfigurieren Sie die Authentifizierung:
Führen Sie den folgenden Befehl aus, um die Repository-Konfiguration auszugeben:
gcloud artifacts print-settings npm [--project=PROJECT] \ [--repository=REPOSITORY] \ [--location=LOCATION] \ --scope=@SCOPE-NAME \
Dabei gilt:
- PROJECT ist die Projekt-ID. Wenn dieses Flag nicht angegeben ist, wird das aktuelle Projekt oder das Standardprojekt verwendet.
- REPOSITORY ist die ID des Repositorys. Wenn Sie ein Standard-Artifact Registry-Repository konfiguriert haben, wird es verwendet, wenn dieses Flag im Befehl ausgelassen wird.
- LOCATION ist der regionale oder multiregionale Standort für das Repository.
SCOPE-NAME ist der Name des npm-Bereichs, der dem Repository zugeordnet werden soll.
Durch die Verwendung von Bereichen wird sichergestellt, dass Sie Pakete immer aus der des richtigen Repositorys.
Pakete ohne Geltungsbereich sind mit Ihrer Standard-npm-Registry verknüpft, in der Regel Öffentliche npm-Registry Wenn Sie keine einen Bereich haben, legt die zurückgegebene Konfiguration Ihre Artifact Registry fest Repository als Standard-Registry. Dies kann zu Problemen führen, wenn müssen Projekte Pakete aus der öffentlichen npm-Registry und Ihr Artifact Registry-Repository.
Fügen Sie der .npmrc-Datei die zurückgegebenen Konfigurationseinstellungen hinzu. Konfigurationsdatei in Ihren Node.js-Projekten. Diese Datei befindet sich normalerweise im selben als
package.json
.Stellen Sie sicher, dass Sie diese Einstellungen Node.js-Projekte für Pakete, die Sie veröffentlichen, sowie für Projekte, die installiert Abhängigkeiten aus Ihrem npm-Repository.
Wenn Sie weitere Node.js-Repositories für die Verbindung verwenden möchten, wiederholen Sie die vorherigen Schritte, um die Einstellungen abzurufen und sie den entsprechenden
.npmrc
-Dateien hinzuzufügen.Wenn Sie bereit sind, ein Repository zu verbinden, rufen Sie ein Zugriffstoken ab. zur Authentifizierung.
Jedes Node.js-Paket-Repository für Artifact Registry ist mit einem
Registry-Endpunkt https://LOCATION-npm.pkg.dev/PROJECT/REPOSITORY
Wenn Sie keinen Bereich mit dem Befehl print-settings
angegeben haben, können Sie den folgenden Befehl ausführen, um einen Bereich mit einem Artifact Registry-Repository zu verknüpfen.
npm config set @SCOPE_NAME:registry https://LOCATION-npm.pkg.dev/PROJECT/REPOSITORY/
Zugriffstoken abrufen
Zugriffstokens sind 60 Minuten lang gültig. Generieren Sie gleich ein Zugriffstoken bevor Befehle zur Interaktion mit Repositories ausgeführt werden.
Verwenden Sie eine der folgenden Optionen, um ein Token zu erhalten:
Aktualisieren Sie das Zugriffstoken mit dem Befehl
npx
.Die Anmeldedaten für die Verbindung zur öffentlichen npm-Registry befinden sich in der npm-Konfigurationsdatei des Nutzers
~/.npmrc
.Führen Sie den folgenden Befehl in Ihrem Node.js-Projektverzeichnis aus.
npx google-artifactregistry-auth
Wenn Ihr Artifact Registry-Repository als globale Registry festgelegt ist und Ihre Pakete keinen Bereich haben, verwenden Sie stattdessen den folgenden Befehl, damit der Befehl den Anmeldedaten-Hilfsprogramm aus der öffentlichen npm-Registry anstelle Ihres Artifact Registry-Repositories herunterladen kann.
npm_config_registry=https://registry.npmjs.org npx google-artifactregistry-auth
Fügen Sie der Datei
package.json
in Ihrem Projekt ein Skript hinzu."scripts": { "artifactregistry-login": "npx google-artifactregistry-auth" }
Führen Sie das Skript in Ihrem Node.js-Projektverzeichnis aus.
npm run artifactregistry-login
Artifact Registry liest die Artifact Registry-Repository-Einstellungen in Ihrem
Projekt .npmrc
-Datei und verwendet sie, um dem Nutzer Token-Anmeldedaten hinzuzufügen
.npmrc
-Datei. Wenn Sie das Token in der .npmrc
-Datei des Nutzers speichern, werden Ihre Anmeldedaten von Ihrem Quellcode und Ihrem Versionskontrollsystem getrennt.
--repo-config
ist die Datei.npmrc
mit Ihren Repository-Einstellungen. Wenn Sie dieses Flag nicht angeben, ist der Standardspeicherort das aktuelle Verzeichnis.--credential-config
ist der Pfad zur.npmrc
-Datei, in der Sie Folgendes speichern möchten: das Zugriffstoken schreiben. Standardmäßig ist das die.npmrc
-Datei des Nutzers.
Passwortauthentifizierung konfigurieren
Verwenden Sie diesen Ansatz, wenn Ihre Node.js-Anwendung eine Authentifizierung mit einem angegebenen Nutzernamen und Passwort erfordert.
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 erstellen Sie ein Dienstkonto und konfigurieren 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.
Die spezifische Artifact Registry-Rolle erteilen an das Dienstkonto, um Zugriff auf das Repository zu gewähren.
Wenn Sie das Dienstkonto in der aktuellen gcloud CLI aktivieren möchten Sitzung ausführen, führen Sie den folgenden Befehl aus:
gcloud auth activate-service-account ACCOUNT --key-file=KEY-FILE
Dabei gilt:
- ACCOUNT ist das Nutzer- oder Dienstkonto.
- KEY-FILE ist der Pfad zur JSON-Schlüsseldatei des Dienstkontos.
Führen Sie den folgenden Befehl aus, um die Repository-Konfiguration zu drucken:
gcloud artifacts print-settings npm [--project=PROJECT] \ [--repository=REPOSITORY] [--location=LOCATION] --scope=@SCOPE-NAME --json-key=KEY-FILE
Dabei gilt:
- PROJECT ist die Projekt-ID. Wenn dieses Flag nicht angegeben ist, wird das aktuelle Projekt oder das Standardprojekt verwendet.
- REPOSITORY ist die ID des Repositorys. Wenn Sie ein Standard-Artifact Registry-Repository konfiguriert haben, wird es verwendet, wenn dieses Flag im Befehl ausgelassen wird.
- LOCATION ist der regionale oder multiregionale Standort für das Repository.
SCOPE-NAME ist der Name des npm-Bereichs, der dem Repository zugeordnet werden soll.
Durch die Verwendung von Bereichen wird sichergestellt, dass Sie Pakete immer aus der des richtigen Repositorys.
Pakete ohne Geltungsbereich sind mit Ihrer Standard-npm-Registry verknüpft, in der Regel Öffentliche npm-Registry Wenn Sie keine einen Bereich haben, legt die zurückgegebene Konfiguration Ihre Artifact Registry fest Repository als Standard-Registry. Dies kann zu Problemen führen, wenn müssen Projekte Pakete aus der öffentlichen npm-Registry und Ihr Artifact Registry-Repository.
KEY-FILE ist der Pfad zur JSON-Schlüsseldatei des Dienstkontos.
Fügen Sie der .npmrc-Datei die zurückgegebenen Konfigurationseinstellungen hinzu. Konfigurationsdatei in Ihren Node.js-Projekten. Diese Datei befindet sich normalerweise im selben als
package.json
. Stellen Sie sicher, dass Sie diese Einstellungen Node.js-Projekte für Pakete, die Sie veröffentlichen, sowie für Projekte, die installiert Abhängigkeiten aus Ihrem npm-Repository.Wenn Sie weitere Node.js-Repositories für die Verbindung verwenden möchten, wiederholen Sie die vorherigen Schritte, um die Einstellungen abzurufen und sie der Datei
.npmrc
hinzuzufügen.