Diese Seite wurde von der Cloud Translation API übersetzt.
Switch to English

Authentifizierung für npm einrichten

Sie müssen sich bei Artifact Registry authentifizieren, wenn Sie eine Drittanbieteranwendung für die Verbindung mit einem Repository verwenden.

Die Einbindung in Google Cloud-Dienste wie Cloud Build oder Google Kubernetes Engine erfordert keine Authentifizierung. Sie sollten jedoch prüfen, ob die Identitäten, die im Namen dieser Dienste agieren, über die erforderlichen Berechtigungen für den Zugriff auf Repositories verfügen.

Die Paketverwaltung befindet sich in der Alphaphase. Sie ist nur für Alphanutzer verfügbar und umfasst möglicherweise nicht alle Features der Containerverwaltung. Wenn Sie sich für die Alphaversion anmelden möchten, füllen Sie das Anmeldeformular aus.

Hinweis

  1. Wenn das Ziel-Repository nicht vorhanden ist, erstellen Sie ein neues Repository.
  2. Wenn Sie von Windows eine Verbindung zu Repositories herstellen, installieren Sie PowerShell.
  3. (Optional) Konfigurieren Sie Standardeinstellungen für gcloud-Befehle, wenn Sie unter Windows eine Verbindung zu einem npm-Repository herstellen möchten.
  4. Erstellen Sie ein Dienstkonto, das im Namen Ihrer Anwendung agiert.
  5. 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.

Authentifizierungshelfer 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

Wenn Sie den npm-Credential Helper verwenden, werden Ihre Anmeldedaten nicht in Ihrem Node.js-Projekt gespeichert. Stattdessen sucht Artifact Registry in der folgenden Reihenfolge nach Anmeldedaten:

  1. Standardanmeldedaten für Anwendungen (ADC), eine Strategie, die in der folgenden Reihenfolge nach Anmeldedaten sucht:

    1. In der Umgebungsvariable GOOGLE_APPLICATION_CREDENTIALS definierte Anmeldedaten.

    2. Anmeldedaten, die das Standarddienstkonto für Compute Engine, Google Kubernetes Engine, Cloud Run, App Engine oder Cloud Functions bietet.

  2. Vom Cloud SDK bereitgestellte Anmeldedaten, einschließlich Nutzeranmeldedaten aus dem Befehl gcloud auth application-default login.

Legen Sie die Variable GOOGLE_APPLICATION_CREDENTIALS auf den Dienstkontoschlüssel fest, den Sie für die Authentifizierung als Helper verwenden möchten. Wenn ADC die Standarddienstkonto-Anmeldedaten verwendet, hängt der Repository-Zugriff von den Kontoberechtigungen ab.

So erstellen Sie ein Dienstkonto und richten die Authentifizierung mithilfe der Umgebungsvariable ein:

  1. Erstellen Sie ein Dienstkonto, das für Ihre Anwendung agiert, oder wählen Sie ein vorhandenes Dienstkonto für die CI-/CD-Automatisierung aus.

  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. Führen Sie den folgenden Befehl aus, um die Repository-Konfiguration für das Node.js-Projekt zu drucken. Wenn Sie die Einstellungen in der globalen oder nutzerspezifischen Konfigurationsdatei von npm speichern möchten, müssen Sie einen Bereich hinzufügen.

    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.

      Geben Sie diesen Bereich an, um Pakete mit diesem Repository zu veröffentlichen oder zu installieren. Pakete ohne Umfang sind Ihrer Standard-npm-Registry zugeordnet.

      Wenn Sie keinen Bereich angeben, legt die zurückgegebene Konfiguration das Repository als Ihre standardmäßige npm-Registry fest.

  5. Fügen Sie die zurückgegebenen Konfigurationseinstellungen zur .npmrc-Konfigurationsdatei des Projekts hinzu, die sich im selben Verzeichnis wie package.json befindet.

  6. Wenn Sie weitere npm-Repositories für die Verbindung verwenden möchten, wiederholen Sie die vorherigen Schritte, um die Einstellungen abzurufen und sie der Datei .npmrc hinzuzufügen.

  7. Wenn Sie eine Verbindung zu einem Repository herstellen möchten, aktualisieren Sie das Zugriffstoken für die Authentifizierung innerhalb von 60 Minuten nach der Verbindung. google-artifactregistry-auth ist eine Clientbibliothek, die Anmeldedaten für Artifact Registry-Repositories aktualisiert.

    Zum Aktualisieren von Anmeldedaten verwenden Sie eine der folgenden Optionen:

    • Verwenden Sie direkt npx, um das Zugriffstoken zu aktualisieren. Wenn Sie npm ab Version 5.2.0 verwenden, ist es in npm enthalten.

      1. Die Anmeldedaten für die Verbindung zur öffentlichen npm-Registry befinden sich in der npm-Konfigurationsdatei des Nutzers ~/.npmrc.

      2. Führen Sie den folgenden Befehl in dem Ordner über Ihrem Node.js-Projekt aus.

      npx google-artifactregistry-auth PROJECT-NPMRC
      

      Dabei ist PROJECT-NPMRC der Pfad zur Datei .npmrc in Ihrem Projektverzeichnis.

      Sie müssen den Befehl außerhalb Ihres Projektverzeichnisses ausführen, damit npx Ihre öffentlichen npm-Registry-Anmeldedaten in ~/.npmrc verwendet, um google-artifactregistry-auth herunterzuladen.

    • 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 aus:

      npm run artifactregistry-login PROJECT-NPMRC
      

      Dabei ist PROJECT-NPMRC der Pfad zur Datei .npmrc in Ihrem Projektverzeichnis.

    • Für Versionen von npm, die älter als 5.2.0 sind, führen Sie die folgenden Schritte aus:

      1. Führen Sie diesen Befehl aus:
      npm install google-artifactregistry-auth --save-dev --registry https://registry.npmjs.org/
      
      1. Fügen Sie die Datei einem Authentifizierungsskript hinzu:
      "scripts": {
          "artifactregistry-login": "./node_modules/.bin/artifactregistry-auth",
      }
      

      Führen Sie das Skript aus:

      npm run artifactregistry-login PROJECT-NPMRC
      

      Dabei ist PROJECT-NPMRC der Pfad zur Datei .npmrc in Ihrem Projektverzeichnis.

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/

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:

  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. Wenn Sie das Dienstkonto in der aktuellen Cloud SDK-Sitzung aktivieren möchten, 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.
  4. Führen Sie den folgenden Befehl aus, um die Repository-Konfiguration für das Node.js-Projekt zu drucken. Wenn Sie die Einstellungen in der globalen oder nutzerspezifischen Konfigurationsdatei von npm speichern möchten, müssen Sie einen Bereich hinzufügen.

    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.

      Geben Sie diesen Bereich an, um Pakete mit diesem Repository zu veröffentlichen oder zu installieren. Pakete ohne Umfang sind Ihrer Standard-npm-Registry zugeordnet.

      Wenn Sie keinen Bereich angeben, legt die zurückgegebene Konfiguration das Repository als Ihre standardmäßige npm-Registry fest.

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

  5. Fügen Sie die zurückgegebenen Konfigurationseinstellungen zur .npmrc-Konfigurationsdatei des Projekts hinzu, die sich im selben Verzeichnis wie package.json befindet.

  6. Wenn Sie weitere npm-Repositories für die Verbindung verwenden möchten, wiederholen Sie die vorherigen Schritte, um die Einstellungen abzurufen und sie der Datei .npmrc hinzuzufügen.

Nächste Schritte