In diesem Dokument wird beschrieben, wie Sie die Authentifizierung für Maven Central-Upstream-Repositories für Artifact Registry-Remote-Repositories konfigurieren.
In diesem Dokument wird davon ausgegangen, dass Sie bereits ein Artifact Registry-Maven Remote-Repository und ein Maven Central Konto erstellt haben.
Weitere Informationen zu Remote-Repositories finden Sie in der Übersicht zu Remote-Repositories.
Erforderliche Rollen
Bitten Sie Ihren Administrator, Ihnen die folgenden IAM-Rollen für das Projekt zuzuweisen, um die Berechtigungen zu erhalten, die Sie zum Konfigurieren der Authentifizierung für Maven Central für Remote-Repositories benötigen:
- Artifact Registry-Administrator (
roles/artifactregistry.admin) - Secret Manager-Administrator (
roles/secretmanager.admin)
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.
Persönliches Maven Central-Zugriffstoken erstellen
- Melden Sie sich bei Maven Central an.
Folgen Sie der Anleitung unter Portal-Token zum Veröffentlichen generieren.
Verwenden Sie den Nutzercode für Ihr persönliches Zugriffstoken als Nutzernamen, wenn Sie Ihre Anmeldedaten zu Artifact Registry hinzufügen. Weitere Informationen zum Verwalten von Nutzertokens in Maven Central finden Sie unter Nutzertokens.
Persönliches Zugriffstoken in einer Secret-Version speichern
- Erstellen Sie ein Secret in Secret Manager.
- Speichern Sie Ihr persönliches Maven Central-Zugriffstoken als eine Secret-Version.
Dem Artifact Registry-Dienstkonto Zugriff auf Ihr Secret gewähren
Der Artifact Registry-Dienst-Agent agiert im Namen von Artifact Registry, wenn er mit Diensten Google Cloud interagiert. Damit der Dienst-Agent in Secret Manager gespeicherte Secrets verwenden kann, müssen Sie ihm die Berechtigung zum Aufrufen Ihrer Secret-Version gewähren.
Die Kennung des Dienst-Agents ist:
service-PROJECT-NUMBER@gcp-sa-artifactregistry.iam.gserviceaccount.com
PROJECT-NUMBER ist die Projektnummer des Google Cloud Projekts, in dem Artifact Registry ausgeführt wird.
So weisen Sie dem Artifact Registry-Dienst-Agenten die Rolle Zugriffsperson für Secret Manager-Secret zu:
Console
-
Rufen Sie in der Google Cloud Console die Seite Secret Manager auf.
-
Klicken Sie auf der Seite Secret Manager auf das Kästchen neben dem Namen des Secrets.
-
Falls das Fenster noch nicht geöffnet ist, klicken Sie auf Infofeld ansehen, um es zu öffnen.
-
Klicken Sie im Infofeld auf Hauptkonto hinzufügen.
-
Geben Sie im Textbereich Neue Hauptkonten die E-Mail-Adressen der Mitglieder ein, die Sie hinzufügen möchten.
-
Wählen Sie im Drop-down-Menü Rolle auswählen die Option Secret Manager und dann Zugriffsfunktion für Secret Manager-Secret aus.
gcloud
$ gcloud secrets add-iam-policy-binding secret-id \
--member="member" \
--role="roles/secretmanager.secretAccessor"
Dabei ist member ein IAM-Mitglied, z. B. ein Nutzer, eine Gruppe oder ein Dienstkonto.
C#
Richten Sie zur Authentifizierung bei Artifact Registry die Standardanmeldedaten für Anwendungen (ADC) ein. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
Go
Richten Sie zur Authentifizierung bei Artifact Registry die Standardanmeldedaten für Anwendungen (ADC) ein. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
Java
Richten Sie zur Authentifizierung bei Artifact Registry die Standardanmeldedaten für Anwendungen (ADC) ein. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
Node.js
Richten Sie zur Authentifizierung bei Artifact Registry die Standardanmeldedaten für Anwendungen (ADC) ein. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
PHP
Richten Sie zur Authentifizierung bei Artifact Registry die Standardanmeldedaten für Anwendungen (ADC) ein. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
Python
Richten Sie zur Authentifizierung bei Artifact Registry die Standardanmeldedaten für Anwendungen (ADC) ein. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
Ruby
Richten Sie zur Authentifizierung bei Artifact Registry die Standardanmeldedaten für Anwendungen (ADC) ein. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
API
Hinweis: Im Gegensatz zu den anderen Beispielen wird dadurch die gesamte IAM-Richtlinie ersetzt.
$ curl "https://secretmanager.googleapis.com/v1/projects/project-id/secrets/secret-id:setIamPolicy" \
--request "POST" \
--header "authorization: Bearer $(gcloud auth print-access-token)" \
--header "content-type: application/json" \
--data "{\"policy\": {\"bindings\": [{\"members\": [\"member\"], \"role\": \"roles/secretmanager.secretAccessor\"}]}}"
Weitere Informationen zum Gewähren oder Entziehen des Zugriffs auf Secrets finden Sie unter Zugriff auf Secrets verwalten.
Maven Central-Anmeldedaten zum Remote-Repository hinzufügen
So aktualisieren Sie Ihr Remote-Repository mit Ihren Maven Central-Anmeldedaten:
Console
Öffnen Sie in der Google Cloud console die Seite Repositories.
Wählen Sie in der Repository-Liste das Repository aus und klicken Sie auf Repository bearbeiten.
Aktualisieren oder fügen Sie im Abschnitt Authentifizierungsmodus für Remote-Repository Ihren Maven Central-Nutzercode hinzu, der mit Ihrem persönlichen Zugriffstoken als Nutzername verknüpft ist, und die Secret-Version, die Ihr Maven Central-Zugriffstoken enthält.
gcloud CLI
Führen Sie den folgenden Befehl aus, um Ihr Remote-Repository mit Ihren Maven Central-Anmeldedaten zu aktualisieren:
gcloud artifacts repositories update REPOSITORY \
--project=PROJECT_ID \
--location=LOCATION \
--remote-username=USER_CODE \
--remote-password-secret-version=projects/SECRET_PROJECT_ID/secrets/SECRET_ID/versions/SECRET_VERSION
Ersetzen Sie Folgendes:
REPOSITORYdurch den Namen Ihres Artifact Registry-Remote-Repositorys.PROJECT_IDdurch Ihre Google Cloud Projekt-ID.LOCATIONdurch den regionalen oder multiregionalen Standort für das Repository. Sie können dieses Flag weglassen, wenn Sie einen Standardfestgelegt haben. Führen Sie den Befehlgcloud artifacts locations listaus, um eine Liste der unterstützten Speicherorte aufzurufen.USER_CODEdurch den Nutzercode, der mit Ihrem Maven Central-Zugriffstoken verknüpft ist. Weitere Informationen zum Verwalten von Nutzertokens in Maven Central finden Sie unter Nutzertokens.SECRET_PROJECT_IDdurch die Projekt-ID des Projekts, in dem Sie Ihr Secret erstellt haben.SECRET_IDdurch den Namen, den Sie Ihrem Secret gegeben haben.SECRET_VERSIONdurch die Secret-Version, in der Sie Ihr Maven Central-Zugriffstoken gespeichert haben.
Ihre Anmeldedaten werden verwendet, wenn das Remote-Repository das nächste Mal eine Anfrage für ein Artefakt von der Upstream-Quelle sendet.