Auf dieser Seite wird beschrieben, wie Sie Remote-Repositories in Artifact Registry erstellen.
In Remote-Repositories werden Artefakte aus den folgenden Upstream-Quellen gespeichert:
- Standard-Artifact Registry-Repositories
- Externe Quellen wie Docker Hub, Maven Central, der Python Package Index (PyPI), Debian oder CentOS
Ein Remote-Repository fungiert als Proxy für die Upstream-Quelle, sodass Sie mehr Kontrolle über Ihre Abhängigkeiten haben. Wenn Sie zum ersten Mal eine Version eines Pakets anfordern, lädt Artifact Registry das Paket in das Remote-Repository herunter und speichert es im Cache. Wenn Sie dieselbe Paketversion das nächste Mal anfordern, liefert Artifact Registry die im Cache gespeicherte Kopie.
Wenn Sie ein Artefakt von einer Upstream-Quelle anfordern, die nicht existiert oder die von Ihnen angegebene Version nicht enthält, schlägt die Anfrage fehl.
Die anderen Repository-Modi sind:
- Standard: Der Standard-Repository-Modus. Sie laden Artefakte wie private Pakete direkt in Standard-Repositories hoch oder veröffentlichen sie dort. Sie können zwar direkt aus einzelnen Standard-Repositories herunterladen, aber der Zugriff auf Repositoriegruppen mit einem virtuellen Repository vereinfacht die Toolkonfiguration.
- Virtuell: Ein Repository, das als einzelner Zugangspunkt für mehrere Upstream-Repositories dient, einschließlich Remote- und Standard-Repositories.
Weitere Informationen zur Funktionsweise von Remote-Repositories finden Sie unter Remote-Repository – Übersicht.
Hinweise
- Aktivieren Sie Artifact Registry, einschließlich der Artifact Registry API und der Google Cloud CLI.
- Optional: Konfigurieren Sie die Standardeinstellungen für die gcloud CLI-Befehle.
- Wenn Sie vom Kunden verwaltete Verschlüsselungsschlüssel (CMEK) zum Verschlüsseln von Repository-Inhalten benötigen, erstellen und aktivieren Sie einen Schlüssel in Cloud KMS für das Repository.
Wenn Sie sich bei einem Upstream-Repository authentifizieren möchten, aktivieren Sie die Secret Manager API.
gcloud services enable secretmanager.googleapis.com \ --project=PROJECT_ID
Wenn sich Artifact Registry in einem VPC Service Controls-Dienstperimeter befindet, aktivieren Sie die Access Context Manager API, falls noch nicht geschehen.
gcloud services enable accesscontextmanager.googleapis.com \ --project=PROJECT_ID
Wenn Sie ein Artifact Registry-Repository als Upstream-Repository festlegen möchten und es sich in einem anderen Projekt als Ihr Remote-Repository befindet, müssen Sie dem Dienstkonto für das Remote-Repository-Projekt Zugriff auf das Upstream-Repository-Projekt gewähren, bevor Sie das Remote-Repository erstellen.
Rolle „Kundenservicemitarbeiter“ gewähren Remote-Repositories verwenden den Artifact Registry-Dienst-Agenten, um sich bei Upstream-Repositories in Artifact Registry zu authentifizieren. Sie müssen dem Remote-Repository-Dienst-Agent Lesezugriff auf das Upstream-Repository gewähren.
Führen Sie den folgenden Befehl aus, um dem Dienst-Agent des Remote-Repositories die Rolle Artifact Registry-Dienst-Agent im Upstream-Repository zuzuweisen:
gcloud projects add-iam-policy-binding UPSTREAM_REPOSITORY \ --member serviceAccount:service-REMOTE_PROJECT_NUMBER@gcp-sa-artifactregistry.iam.gserviceaccount.com \ --location=REGION \ --project=UPSTREAM_PROJECT_ID \ --role roles/artifactregistry.serviceAgent
Ersetzen Sie Folgendes:
UPSTREAM_REPOSITORY
ist die ID des Upstream-Repositorys. Artifact Registry-Upstream-Repositories müssen Repositories im Standardmodus sein.REMOTE_PROJECT_NUMBER
ist die Projektnummer des Google Cloud -Projekts für Ihr Remote-Repository.REMOTE_PROJECT_ID
ist die ID des Google Cloud-Projekts für Ihr Remote-Repository.REGION
ist die Region, in der Sie das Remote-Repository erstellen möchten.UPSTREAM_PROJECT_ID
ist die ID des Google Cloud-Projekts mit dem Upstream-Repository.
Erforderliche Rollen
Bitten Sie Ihren Administrator, Ihnen die folgenden IAM-Rollen zuzuweisen, um die Berechtigungen zu erhalten, die Sie zum Verwalten von Repositories benötigen:
-
Remote-Repositories erstellen und Zugriff auf einzelne Repositories gewähren:
Artifact Registry Admin (
roles/artifactregistry.admin
) für das Projekt -
Speichern Sie die Anmeldedaten für das Upstream-Repository in einer Secret-Version:
Secret Manager Admin (
roles/secretmanager.admin
) für das Projekt -
Zugriff auf Upstream-Quellen außerhalb eines VPC Service Controls-Dienstperimeters gewähren:
Access Context Manager-Editor (
roles/accesscontextmanager.policyEditor
) für das Projekt, den Ordner oder die Organisation, in dem bzw. der die Zugriffsrichtlinie angewendet wird
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.
Remote-Repository erstellen
Wenn Sie ein Remote-Repository erstellen, müssen Sie die folgenden Einstellungen konfigurieren, die nach dem Erstellen des Repositorys nicht mehr geändert werden können:
- Format des Artefakts
- Der Repository-Modus ist auf „Remote“ gesetzt.
- Upstream-Quelle des Remote-Repositorys.
- Speicherort des Repositorys
- Verschlüsselung mit Google-eigenen und von Google verwalteten Verschlüsselungsschlüsseln oder vom Kunden verwalteten Verschlüsselungsschlüsseln. Artifact Registry verwendet standardmäßigGoogle-eigene und von Google verwaltete Verschlüsselungsschlüssel.
Artifact Registry erzwingt Einschränkungen von Organisationsrichtlinien, die CMEK zum Verschlüsseln von Ressourcen erfordern oder einschränken, welche Cloud KMS-Schlüssel für den CMEK-Schutz verwendet werden können.
Remote-Repository mit der Google Cloud -Console erstellen
Öffnen Sie in der Google Cloud -Konsole die Seite Repositories.
Klicken Sie auf Repository erstellen.
Geben Sie den Repository-Namen an. Repository-Namen können für jeden Repository-Speicherort in einem Projekt nur einmal vorkommen.
Wählen Sie im Bereich Format das Repository-Format aus.
Wählen Sie im Abschnitt Repository-Modus die Option Remote aus.
Wählen Sie im Abschnitt Remote-Repository-Quelle eine der folgenden Möglichkeiten aus, um die URL des Upstream-Repositories einzugeben:
- Wähle die aufgeführte vordefinierte Upstream-Quelle für deinen Formattyp aus.
- Wählen Sie Benutzerdefiniert aus, um die vollständige URL zu einem öffentlichen oder privaten Repository für unterstützte Formate anzugeben.
- Wählen Sie Artifact Registry-Repository aus, um ein standardmäßiges Artifact Registry-Repository auszuwählen.
Wenn Sie Benutzerdefiniert ausgewählt haben, geben Sie im Feld Benutzerdefiniertes Repository die vollständige Repository-URL ein. Die URL kann nach dem Erstellen des Repositories nicht mehr geändert werden.
Beispiele für gängige Upstream-URLs finden Sie unter Benutzerdefinierte Upstreams.
Wenn Sie Artifact Registry-Repository ausgewählt haben:
- Geben Sie im Feld Artifact Registry-Repository den vollständigen Namen des Repositorys ein, das Sie als Upstream verwenden möchten, oder klicken Sie auf Durchsuchen, um eine Liste der Repositories aufzurufen, auf die Sie Zugriff haben. Es werden nur Repositories mit demselben Format wie Ihr Remote-Repository aufgeführt.
- Klicken Sie auf den Namen des Repositorys, das Sie als Upstream verwenden möchten.
- Klicken Sie auf Auswählen.
Wenn Sie einen der vordefinierten Upstreams ausgewählt oder über die Schaltfläche Benutzerdefiniert eine vollständige URL eingegeben haben, wählen Sie unter Authentifizierungsmodus für Remote-Repository eine der folgenden Optionen aus:
- Authentifiziert: Hier können Sie Ihren Nutzernamen und Ihr Secret für die Authentifizierung in Ihrem Upstream-Repository eingeben.
- Unauthenticated: Überspringt die Authentifizierung beim Upstream-Repository.
Wenn Sie Authentifiziert ausgewählt haben, geben Sie Folgendes ein:
- Geben Sie im Feld Nutzername Ihren Nutzernamen für das Upstream-Repository ein.
- Geben Sie im Feld Secret die Secret-Version ein, in der Sie Ihr Passwort für das Upstream-Repository gespeichert haben.
Sie können diese Werte nach dem Erstellen des Repositorys bearbeiten. Weitere Informationen zur Authentifizierung bei Upstreams von Remote-Repositories finden Sie unter Authentifizierung bei Upstreams von Remote-Repositories konfigurieren.
Wählen Sie im Abschnitt Standorttyp den Speicherort für das Repository aus:
Wählen Sie als Speicherort „Region“ oder „Mehrere Regionen“ aus. Die Liste der Speicherorte ändert sich entsprechend Ihrer Auswahl.
Wählen Sie in der Liste Region oder Mehrere Regionen einen Speicherort aus.
Informationen zu Speicherorttypen und unterstützten Speicherorten finden Sie unter Repository-Speicherorte.
Fügen Sie eine Beschreibung für das Repository hinzu. Beschreibungen helfen dabei, den Zweck des Repositorys und die darin enthaltenen Artefakte zu ermitteln.
Geben Sie keine vertraulichen Daten an, da Repository-Beschreibungen nicht verschlüsselt werden.
Wenn Sie Ihre Repositories mit Labels strukturieren möchten, klicken Sie auf Label hinzufügen und geben Sie das Schlüssel/Wert-Paar für das Label ein. Sie können Labels hinzufügen, bearbeiten oder entfernen, nachdem Sie das Repository erstellt haben.
Wählen Sie im Abschnitt Verschlüsselung den Verschlüsselungsmechanismus für das Repository aus.
- von Google verwalteter Verschlüsselungsschlüssel: Verschlüsselung des Repository-Inhalts mit einem von Google verwalteten Verschlüsselungsschlüssel.
- Vom Kunden verwalteter Schlüssel: Verschlüsselung des Repository-Inhalts mit einem Schlüssel, den Sie über Cloud Key Management Service steuern. Eine grundlegende Einrichtungsanleitung finden Sie unter Vom Kunden verwalteten Schlüssel für Repositories einrichten.
Wenn Sie Bereinigungsrichtlinien verwenden möchten, um nicht verwendete Artefakte zu löschen, gehen Sie so vor:
- Wählen Sie Probelauf aus, um die Richtlinie vor der Anwendung zu testen.
- Klicken Sie auf Richtlinie hinzufügen, um Ihrem Repository eine Richtlinie zum Aufbewahren oder Löschen hinzuzufügen.
- Geben Sie im Feld Name einen aussagekräftigen Namen für die Bereinigungsrichtlinie ein.
Wählen Sie im Bereich Richtlinientyp eine der folgenden Optionen aus:
- Bedingtes Löschen: Artefakte werden basierend auf von Ihnen definierten Bedingungen gelöscht.
- Bedingte Aufbewahrung: Artefakte werden basierend auf von Ihnen definierten Bedingungen aufbewahrt.
Neueste Versionen beibehalten: Es wird eine festgelegte Anzahl der neuesten Versionen pro Paket beibehalten.
Weitere Informationen zu Bereinigungsrichtlinien finden Sie unter Bereinigungsrichtlinien konfigurieren.
Wählen Sie im Bereich Artefaktanalyse die Einstellungen für das Scannen auf Sicherheitslücken aus:
Aktiviert: Das Scannen in diesem Repository ist zulässig. Die Container Scanning API muss in Ihrem Projekt aktiviert sein.
Wenn Sie die Container Scanning API aktivieren, beginnt die Abrechnung sofort. Wenn Sie die Container Scanning API für ein Projekt aktivieren, wird das Scannen auf Sicherheitslücken für alle neuen und vorhandenen Repositories aktiviert. Wenn Sie ein Image per Push in Artifact Registry hochladen, wird es automatisch von der Artefaktanalyse gescannt.
Deaktiviert: Das Scannen in diesem Repository wird verhindert. Wenn die Container Scanning API in Ihrem Projekt aktiviert ist, wird das Scannen in anderen Repositories fortgesetzt. Dieses Repository wird ausgeschlossen.
Weitere Informationen zu den Optionen für das Scannen auf Sicherheitslücken finden Sie unter Automatisches Scannen aktivieren und deaktivieren.
Klicken Sie auf Erstellen.
Artifact Registry erstellt das Repository und fügt es der Liste der Repositories hinzu.
Nachdem Sie das Repository erstellt haben, gehen Sie so vor:
- Gewähren Sie Zugriff auf das Repository.
- Konfigurieren Sie Docker, Paketmanager und andere Clients von Drittanbietern für die Authentifizierung bei Repositories.
- Konfigurieren Sie Artifact Registry-Remote-Repositories für die Authentifizierung bei ihren Upstream-Quellen.
- Container-Images: Konfigurieren Sie die Remote-Repository-Authentifizierung bei Docker Hub.
- Sprachpakete:
- Benutzerdefinierte benutzerdefinierte Upstreams: Konfigurieren Sie die Authentifizierung für Remote-Repository-Upstreams.
Remote-Repository mit der gcloud CLI erstellen
Führen Sie den Befehl für das entsprechende Repository-Format aus, um ein Repository zu erstellen:
Docker
gcloud artifacts repositories create REMOTE-REPOSITORY-NAME \
--project=PROJECT_ID \
--repository-format=docker \
--location=LOCATION \
--description="DESCRIPTION" \
--mode=remote-repository \
--remote-repo-config-desc="REMOTE-REPOSITORY-DESCRIPTION" \
--disable-vulnerability-scanning \
--remote-docker-repo=UPSTREAM
Optionale Flags für die Authentifizierung beim Upstream-Repository:
--remote-username=USERNAME
--remote-password-secret-version=SECRET_VERSION
Ersetzen Sie Folgendes:
REMOTE-REPOSITORY-NAME
durch den Namen des Repositorys. Repository-Namen können für jeden Repository-Speicherort in einem Projekt nur einmal vorkommen.PROJECT_ID
durch die Projekt-ID. Wenn dieses Flag nicht angegeben ist, wird das aktuelle Projekt oder das Standardprojekt verwendet.LOCATION
durch den regionalen oder multiregionalen Speicherort für das Repository. Sie können dieses Flag weglassen, wenn Sie einen Standard-Speicherort festgelegt haben. Führen Sie den Befehlgcloud artifacts locations list
aus, um eine Liste der unterstützten Speicherorte aufzurufen.DESCRIPTION
mit einer optionalen Beschreibung des Repositorys. Geben Sie keine vertraulichen Daten an, da Repository-Beschreibungen nicht verschlüsselt werden.REMOTE-REPOSITORY-DESCRIPTION
mit einer Beschreibung für die externe Repositorykonfiguration für dieses Remote-Repository.USERNAME
Optional: Wenn Sie die Authentifizierung verwenden, mit Ihrem Nutzernamen für die Authentifizierung beim Upstream-Repository.SECRET_VERSION
Optional: Wenn Sie die Authentifizierung verwenden, mit der Secret-Version, die das Passwort Ihres Upstream-Repositories enthält.UPSTREAM
durch den voreingestellten Upstream-Namen, den Pfad zum Artifact Registry-Repository oder die benutzerdefinierte URL des Upstream-Repositorys.
Formatieren Sie den Repositorypfad für Artifact Registry-Upstream-Repositories so:projects/UPSTREAM_PROJECT_ID/locations/REGION/repositories/UPSTREAM_REPOSITORY
.
Informationen zu verfügbaren vordefinierten Upstreams und unterstützten benutzerdefinierten Upstreams findest du unter Unterstützte Formate.--disable-vulnerability-scanning
: Dies ist ein optionales Flag, mit dem das automatische Scannen auf Sicherheitslücken für Ihr Repository deaktiviert wird.--allow-vulnerability-scanning
: Ein optionales Flag, mit dem Ihr Repository für das automatische Scannen auf Sicherheitslücken konfiguriert wird. Weitere Informationen finden Sie unter Automatisches Scannen aktivieren oder deaktivieren.
Mit dem folgenden Befehl wird beispielsweise ein Remote-Repository mit dem Namen my-repo
in der Region us-east1
im Google Cloud -Projektmy-project
erstellt. Es kann sich mit dem Nutzernamen my-username
und der geheimen Version projects/my-project/secrets/my-secret/versions/1
beim Upstream-Repository authentifizieren.
gcloud artifacts repositories create my-repo \
--project=my-project \
--repository-format=docker \
--location=us-east1 \
--description="Remote Docker repository" \
--mode=remote-repository \
--remote-repo-config-desc="Docker Hub" \
--remote-username=my-username \
--remote-password-secret-version=projects/my-project/secrets/my-secret/versions/1 \
--remote-docker-repo=DOCKER-HUB
Weitere Informationen zur Authentifizierung bei Upstream-Repositories von Docker Hub finden Sie unter Authentifizierung für Remote-Repositories bei Docker Hub konfigurieren.
Maven
gcloud artifacts repositories create REMOTE-REPOSITORY-NAME \
--project=PROJECT_ID \
--repository-format=maven \
--location=LOCATION \
--description="DESCRIPTION" \
--mode=remote-repository \
--remote-repo-config-desc="REMOTE-REPOSITORY-DESCRIPTION" \
--disable-vulnerability-scanning \
--remote-mvn-repo=UPSTREAM
Optionale Flags für die Authentifizierung beim Upstream-Repository:
--remote-username=USERNAME
--remote-password-secret-version=SECRET_VERSION
Ersetzen Sie Folgendes:
REMOTE-REPOSITORY-NAME
durch den Namen des Repositorys. Repository-Namen können für jeden Repository-Speicherort in einem Projekt nur einmal vorkommen.PROJECT_ID
durch die Projekt-ID. Wenn dieses Flag nicht angegeben ist, wird das aktuelle Projekt oder das Standardprojekt verwendet.LOCATION
durch den regionalen oder multiregionalen Speicherort für das Repository. Sie können dieses Flag weglassen, wenn Sie einen Standard-Speicherort festgelegt haben. Führen Sie den Befehlgcloud artifacts locations list
aus, um eine Liste der unterstützten Speicherorte aufzurufen.DESCRIPTION
mit einer optionalen Beschreibung des Repositorys. Geben Sie keine vertraulichen Daten an, da Repository-Beschreibungen nicht verschlüsselt werden.REMOTE-REPOSITORY-DESCRIPTION
mit einer Beschreibung für die externe Repositorykonfiguration für dieses Remote-Repository.USERNAME
Optional: Wenn Sie die Authentifizierung verwenden, mit Ihrem Nutzernamen für die Authentifizierung beim Upstream-Repository.SECRET_VERSION
Optional: Wenn Sie die Authentifizierung verwenden, mit der Secret-Version, die das Passwort Ihres Upstream-Repositories enthält.UPSTREAM
durch den voreingestellten Upstream-Namen, den Pfad zum Artifact Registry-Repository oder die benutzerdefinierte URL des Upstream-Repositorys.
Formatieren Sie den Repositorypfad für Artifact Registry-Upstream-Repositories so:projects/UPSTREAM_PROJECT_ID/locations/REGION/repositories/UPSTREAM_REPOSITORY
.
Informationen zu verfügbaren vordefinierten Upstreams und unterstützten benutzerdefinierten Upstreams findest du unter Unterstützte Formate.--disable-vulnerability-scanning
: Dies ist ein optionales Flag, mit dem das automatische Scannen auf Sicherheitslücken für Ihr Repository deaktiviert wird.--allow-vulnerability-scanning
: Ein optionales Flag, mit dem Ihr Repository für das automatische Scannen auf Sicherheitslücken konfiguriert wird. Weitere Informationen finden Sie unter Automatisches Scannen aktivieren oder deaktivieren.
Mit dem folgenden Befehl wird beispielsweise ein Remote-Repository mit dem Namen my-repo
in der Region us-east1
im Google Cloud -Projekt my-project
erstellt. Es kann sich mit dem Nutzernamen my-username
und der geheimen Version projects/my-project/secrets/my-secret/versions/1
beim Upstream-Repository authentifizieren.
gcloud artifacts repositories create my-repo \
--project=my-project \
--repository-format=maven \
--location=us-east1 \
--description="Remote Maven repository" \
--mode=remote-repository \
--remote-repo-config-desc="Maven Central" \
--remote-username=my-username \
--remote-password-secret-version=projects/my-project/secrets/my-secret/versions/1 \
--remote-mvn-repo=MAVEN-CENTRAL
npm
gcloud artifacts repositories create REMOTE-REPOSITORY-NAME \
--project=PROJECT_ID \
--repository-format=npm \
--location=LOCATION \
--description="DESCRIPTION" \
--mode=remote-repository \
--remote-repo-config-desc="REMOTE-REPOSITORY-DESCRIPTION" \
--disable-vulnerability-scanning \
--remote-npm-repo=UPSTREAM
Optionale Flags für die Authentifizierung beim Upstream-Repository:
--remote-username=USERNAME
--remote-password-secret-version=SECRET_VERSION
Ersetzen Sie Folgendes:
REMOTE-REPOSITORY-NAME
durch den Namen des Repositorys. Repository-Namen können für jeden Repository-Speicherort in einem Projekt nur einmal vorkommen.PROJECT_ID
durch die Projekt-ID. Wenn dieses Flag nicht angegeben ist, wird das aktuelle Projekt oder das Standardprojekt verwendet.LOCATION
durch den regionalen oder multiregionalen Speicherort für das Repository. Sie können dieses Flag weglassen, wenn Sie einen Standard-Speicherort festgelegt haben. Führen Sie den Befehlgcloud artifacts locations list
aus, um eine Liste der unterstützten Speicherorte aufzurufen.DESCRIPTION
mit einer optionalen Beschreibung des Repositorys. Geben Sie keine vertraulichen Daten an, da Repository-Beschreibungen nicht verschlüsselt werden.REMOTE-REPOSITORY-DESCRIPTION
mit einer Beschreibung für die externe Repositorykonfiguration für dieses Remote-Repository.USERNAME
Optional: Wenn Sie die Authentifizierung verwenden, mit Ihrem Nutzernamen für die Authentifizierung beim Upstream-Repository.SECRET_VERSION
Optional: Wenn Sie die Authentifizierung verwenden, mit der Secret-Version, die das Passwort Ihres Upstream-Repositories enthält.UPSTREAM
durch den voreingestellten Upstream-Namen, den Pfad zum Artifact Registry-Repository oder die benutzerdefinierte URL des Upstream-Repositorys.
Formatieren Sie den Repositorypfad für Artifact Registry-Upstream-Repositories so:projects/UPSTREAM_PROJECT_ID/locations/REGION/repositories/UPSTREAM_REPOSITORY
.
Informationen zu verfügbaren vordefinierten Upstreams und unterstützten benutzerdefinierten Upstreams findest du unter Unterstützte Formate.--disable-vulnerability-scanning
: Dies ist ein optionales Flag, mit dem das automatische Scannen auf Sicherheitslücken für Ihr Repository deaktiviert wird.--allow-vulnerability-scanning
: Ein optionales Flag, mit dem Ihr Repository für das automatische Scannen auf Sicherheitslücken konfiguriert wird. Weitere Informationen finden Sie unter Automatisches Scannen aktivieren oder deaktivieren.
Mit dem folgenden Befehl wird beispielsweise ein Remote-Repository mit dem Namen my-repo
in der Region us-east1
im Google Cloud -Projekt my-project
erstellt. Es kann sich mit dem Nutzernamen my-username
und der geheimen Version projects/my-project/secrets/my-secret/versions/1
beim Upstream-Repository authentifizieren.
gcloud artifacts repositories create my-repo \
--project=my-project \
--repository-format=npm \
--location=us-east1 \
--description="Remote npm repository" \
--mode=remote-repository \
--remote-repo-config-desc="Public npm registry" \
--remote-username=my-username \
--remote-password-secret-version=projects/my-project/secrets/my-secret/versions/1 \
--remote-npm-repo=NPMJS
Python
gcloud artifacts repositories create REMOTE-REPOSITORY-NAME \
--project=PROJECT_ID \
--repository-format=python \
--location=LOCATION \
--description="DESCRIPTION" \
--mode=remote-repository \
--remote-repo-config-desc="REMOTE-REPOSITORY-DESCRIPTION" \
--disable-vulnerability-scanning \
--remote-python-repo=UPSTREAM
Optionale Flags für die Authentifizierung beim Upstream-Repository:
--remote-username=USERNAME
--remote-password-secret-version=SECRET_VERSION
Ersetzen Sie Folgendes:
REMOTE-REPOSITORY-NAME
durch den Namen des Repositorys. Repository-Namen können für jeden Repository-Speicherort in einem Projekt nur einmal vorkommen.PROJECT_ID
durch die Projekt-ID. Wenn dieses Flag nicht angegeben ist, wird das aktuelle Projekt oder das Standardprojekt verwendet.LOCATION
durch den regionalen oder multiregionalen Speicherort für das Repository. Sie können dieses Flag weglassen, wenn Sie einen Standard-Speicherort festgelegt haben. Führen Sie den Befehlgcloud artifacts locations list
aus, um eine Liste der unterstützten Speicherorte aufzurufen.DESCRIPTION
mit einer optionalen Beschreibung des Repositorys. Geben Sie keine vertraulichen Daten an, da Repository-Beschreibungen nicht verschlüsselt werden.REMOTE-REPOSITORY-DESCRIPTION
mit einer Beschreibung für die externe Repositorykonfiguration für dieses Remote-Repository.USERNAME
Optional: Wenn Sie die Authentifizierung verwenden, mit Ihrem Nutzernamen für die Authentifizierung beim Upstream-Repository.SECRET_VERSION
Optional: Wenn Sie die Authentifizierung verwenden, mit der Secret-Version, die das Passwort Ihres Upstream-Repositories enthält.UPSTREAM
durch den voreingestellten Upstream-Namen, den Pfad zum Artifact Registry-Repository oder die benutzerdefinierte URL des Upstream-Repositorys.
Formatieren Sie den Repositorypfad für Artifact Registry-Upstream-Repositories so:projects/UPSTREAM_PROJECT_ID/locations/REGION/repositories/UPSTREAM_REPOSITORY
.
Informationen zu verfügbaren vordefinierten Upstreams und unterstützten benutzerdefinierten Upstreams findest du unter Unterstützte Formate.--disable-vulnerability-scanning
: Ein optionales Flag, mit dem das automatische Scannen auf Sicherheitslücken für Ihr Repository deaktiviert wird.--allow-vulnerability-scanning
: Ein optionales Flag, mit dem Ihr Repository für das automatische Scannen auf Sicherheitslücken konfiguriert wird. Weitere Informationen finden Sie unter Automatisches Scannen aktivieren oder deaktivieren.
Mit dem folgenden Befehl wird beispielsweise ein Remote-Repository mit dem Namen my-repo
in der Region us-east1
im Google Cloud -Projekt my-project
erstellt. Es kann sich mit dem Nutzernamen my-username
und der geheimen Version projects/my-project/secrets/my-secret/versions/1
beim Upstream-Repository authentifizieren.
gcloud artifacts repositories create my-repo \
--project=my-project \
--repository-format=python \
--location=us-east1 \
--description="Remote Python repository" \
--mode=remote-repository \
--remote-repo-config-desc="PyPI" \
--remote-username=my-username \
--remote-password-secret-version=projects/my-project/secrets/my-secret/versions/1 \
--remote-python-repo=PYPI
Apt (Vorabversion)
gcloud artifacts repositories create REMOTE_REPOSITORY_NAME \
--project=PROJECT_ID \
--repository-format=apt \
--location=LOCATION \
--description="DESCRIPTION" \
--mode=remote-repository \
--remote-repo-config-desc="REMOTE_REPOSITORY_DESCRIPTION" \
--remote-apt-repo=APT_REPOSITORY_BASE \
--remote-apt-repo-path="APT_REPOSITORY_PATH"
Ersetzen Sie Folgendes:
REMOTE_REPOSITORY_NAME
durch den Namen des Repositorys. Repository-Namen können für jeden Repository-Speicherort in einem Projekt nur einmal vorkommen.PROJECT_ID
durch die Projekt-ID. Wenn dieses Flag nicht angegeben ist, wird das aktuelle Projekt oder das Standardprojekt verwendet.LOCATION
durch den regionalen oder multiregionalen Speicherort für das Repository. Sie können dieses Flag weglassen, wenn Sie einen Standard-Speicherort festgelegt haben. Führen Sie den Befehlgcloud artifacts locations list
aus, um eine Liste der unterstützten Speicherorte aufzurufen.DESCRIPTION
mit einer optionalen Beschreibung des Repositorys. Geben Sie keine vertraulichen Daten an, da Repository-Beschreibungen nicht verschlüsselt werden.REMOTE_REPOSITORY_DESCRIPTION
mit einer optionalen Beschreibung für die externe Repositorykonfiguration für dieses Remote-Repository.APT_REPOSITORY_BASE
mit einem der unterstützten Repository-Basisnamen, die in den unterstützten Upstreams des Betriebssystempakets für Remote-Repositories von Apt aufgeführt sind.APT_REPOSITORY_PATH
durch den Rest der URL des Upstream-Repositorys ersetzen, das Sie nach der Repository-Basis in Ihrem Remote-Repository im Cache speichern möchten.
Mit dem folgenden Befehl wird beispielsweise ein Remote-Repository namens my-repo
erstellt, um das Debian Buster-Repository in der Region us-east1
im Google Cloud -Projekt my-project
im Cache zu speichern. Die vollständige URL des Upstream-Repositorys lautet http://deb.debian.org/debian/dists/buster
.
gcloud artifacts repositories create my-repo \
--project=my-project \
--repository-format=apt \
--location=us-east1 \
--description="Apt remote repository" \
--mode=remote-repository \
--remote-repo-config-desc="Debian buster distribution" \
--remote-apt-repo=DEBIAN \
--remote-apt-repo-path="debian/dists/buster"
Yum (Vorabversion)
gcloud artifacts repositories create REMOTE_REPOSITORY_NAME \
--project=PROJECT_ID \
--repository-format=yum \
--location=LOCATION \
--description="DESCRIPTION" \
--mode=remote-repository \
--remote-repo-config-desc="REMOTE_REPOSITORY_DESCRIPTION" \
--remote-yum-repo=YUM_REPOSITORY_BASE \
--remote-yum-repo-path="YUM_REPOSITORY_PATH"
Ersetzen Sie Folgendes:
REMOTE_REPOSITORY_NAME
durch den Namen des Repositorys. Repository-Namen können für jeden Repository-Speicherort in einem Projekt nur einmal vorkommen.PROJECT_ID
durch die Projekt-ID. Wenn dieses Flag nicht angegeben ist, wird das aktuelle Projekt oder das Standardprojekt verwendet.LOCATION
durch den regionalen oder multiregionalen Speicherort für das Repository. Sie können dieses Flag weglassen, wenn Sie einen Standard-Speicherort festgelegt haben. Führen Sie den Befehlgcloud artifacts locations list
aus, um eine Liste der unterstützten Speicherorte aufzurufen.DESCRIPTION
mit einer optionalen Beschreibung des Repositorys. Geben Sie keine vertraulichen Daten an, da Repository-Beschreibungen nicht verschlüsselt werden.REMOTE_REPOSITORY_DESCRIPTION
mit einer optionalen Beschreibung für die externe Repositorykonfiguration für dieses Remote-Repository.YUM_REPOSITORY_BASE
mit einem der unterstützten Repository-Basisnamen, die in den unterstützten Upstreams des Betriebssystempakets für Remote-Repositories von Yum aufgeführt sind.YUM_REPOSITORY_PATH
durch den Rest der URL des Upstream-Repositorys ersetzen, das Sie nach der Repository-Basis in Ihrem Remote-Repository im Cache speichern möchten.
Mit dem folgenden Befehl wird beispielsweise ein Remote-Repository für Yum-Pakete mit dem Namen my-repo
in der Region us-east1
im Google Cloud -Projekt my-project
für das Upstream-Repository 9-stream/BaseOs/x86_64/os
erstellt. Die vollständige URL des Repositorys lautet https://mirror.stream.centos.org/9-stream/BaseOS/x86_64/os
.
gcloud artifacts repositories create my-repo \
--project=my-project \
--repository-format=yum \
--location=us-east1 \
--description="Yum remote repository" \
--mode=remote-repository \
--remote-repo-config-desc="CentOS 8 x86" \
--remote-yum-repo=CENTOS_STREAM \
--remote-yum-repo-path="9-stream/BaseOs/x86_64/os"
Artifact Registry erstellt Ihr Repository. Führen Sie den folgenden Befehl aus, um eine Beschreibung des Repositorys aufzurufen:
gcloud artifacts repositories describe REMOTE_REPOSITORY_NAME \
--location=LOCATION
Gehen Sie nach dem Erstellen des Repositorys so vor:
- Gewähren Sie Zugriff auf das Repository.
- Konfigurieren Sie Bereinigungsrichtlinien, um nicht verwendete Artefakte zu löschen.
- Konfigurieren Sie Docker, Paketmanager und andere Clients von Drittanbietern für die Authentifizierung bei Repositories.
- Konfigurieren Sie Artifact Registry-Remote-Repositories für die Authentifizierung bei ihren Upstream-Quellen.
- Container-Images: Konfigurieren Sie die Remote-Repository-Authentifizierung bei Docker Hub.
- Sprachpakete:
- Benutzerdefinierte benutzerdefinierte Upstreams: Konfigurieren Sie die Authentifizierung für Remote-Repository-Upstreams.
Remote-Repository mit Terraform erstellen
Verwenden Sie die Ressource google_artifact_registry_repository, um Repositories zu erstellen.
terraform-provider-google
Version 5.0.0
oder höher ist erforderlich.
Wenn Sie Terraform für Google Cloudnoch nicht kennen, lesen Sie die Seite Erste Schritte – Google Cloud auf der HashiCorp-Website.
Im folgenden Beispiel werden der Anbieter und ein Remote-Repository mit dem Terraform-Ressourcennamen my-repo
definiert.
Docker
provider "google" {
project = "PROJECT-ID"
}
resource "google_artifact_registry_repository" "my-repo" {
location = "LOCATION"
repository_id = "REPOSITORY_ID"
description = "DESCRIPTION"
format = "docker"
kms_key_name = "KEY"
mode = "REMOTE_REPOSITORY"
remote_repository_config {
description = "CONFIG_DESCRIPTION"
docker_repository {
public_repository = "DOCKER_HUB"
}
}
cleanup_policy_dry_run = DRY_RUN_STATUS
cleanup_policies {
id = "POLICY_NAME"
action = "DELETE"
condition {
tag_state = "TAG_STATE"
tag_prefixes = ["TAG_PREFIX", "TAG_PREFIX_N"]
older_than = "TIME_SINCE_UPLOAD"
}
}
cleanup_policies {
id = "POLICY_NAME"
action = "KEEP"
condition {
tag_state = "TAG_STATE"
tag_prefixes = ["TAG_PREFIX", "TAG_PREFIX_N"]
package_name_prefixes = ["PKG_PREFIX", "PKG_PREFIX_N"]
}
}
cleanup_policies {
id = "POLICY_NAME"
action = "KEEP"
most_recent_versions {
package_name_prefixes = ["PKG_PREFIX", "PKG_PREFIX_N"]
keep_count = KEEP_COUNT
}
}
}
Dabei gilt:
PROJECT-ID
ist die Projekt-ID der Google Cloud .LOCATION
ist der Speicherort des Repositorys.REPOSITORY_ID
ist die Repository-ID.DESCRIPTION
ist die optionale Beschreibung für das Repository. Geben Sie keine vertraulichen Daten an, da Repository-Beschreibungen nicht verschlüsselt sind.KEY
ist der Name des Cloud Key Management Service-Schlüssels, wenn Sie für die Verschlüsselung vom Kunden verwaltete Verschlüsselungsschlüssel (Customer-Managed Encryption Keys, CMEK) verwenden. Lassen Sie dieses Argument aus, um die von Google verwaltete Standardeinstellung zu verwenden.CONFIG_DESCRIPTION
ist eine optionale Beschreibung der Remotequelle.- Mit
DRY_RUN_STATUS
wird festgelegt, ob Artefakte durch Bereinigungsrichtlinien gelöscht werden oder nur protokolliert werden, welche Artefakte gelöscht würden, wenn Bereinigungsrichtlinien für das Repository festgelegt werden. Lassen Sie dieses Feld leer, wenn Sie dem Repository keine Bereinigungsrichtlinien hinzufügen möchten. *true
: Legt fest, dass die Richtlinien im Probelaufmodus ausgeführt werden. Im Modus „Probelauf“ werden keine Artefakte gelöscht. *false
: die Richtlinien zur Datenbereinigung anwendet. Artefakte werden je nach Richtlinie gelöscht oder aufbewahrt. Weitere Informationen zu Bereinigungsrichtlinien finden Sie unter Bereinigungsrichtlinien konfigurieren.POLICY_NAME
ist der Name der Bereinigungsrichtlinie.TAG_STATE
ist der Tag-Status, auf den die Richtlinie angewendet werden soll. Werte:tagged
,untagged
undany
.any
gilt sowohl für getaggte als auch für nicht getaggte Artefakte. Wenn für ein Repository unveränderliche Tags aktiviert sind, können getaggte Artefakte nicht gelöscht werden.TAG_PREFIX
undTAG_PREFIX_N
sind Tag-Präfixe, auf die die Richtlinie angewendet werden soll.PKG_PREFIX
,PKG_PREFIX_N
sind Paketpräfixe, auf die die Richtlinie angewendet werden soll.TIME_SINCE_UPLOAD
ist die Zeit, die vergangen ist, seit eine Artefakteversion in das Repository hochgeladen wurde. Sie wird als Dauer angegeben. Sie können die Dauer in Sekunden, Minuten, Stunden oder Tagen angeben, indem Sies
,m
,h
oderd
anhängen.KEEP_COUNT
ist die Anzahl der Versionen pro Paket eines Artefakts, die in Ihrem Repository beibehalten werden sollen.
Maven
Wenn Sie keine Versionsrichtlinie angeben, erstellt Artifact Registry ein Maven-Repository, in dem standardmäßig sowohl Snapshot- als auch Release-Versionen von Paketen gespeichert werden.
provider "google" {
project = "PROJECT-ID"
}
resource "google_artifact_registry_repository" "my-repo" {
location = "LOCATION"
repository_id = "REPOSITORY_ID"
description = "DESCRIPTION"
format = "maven"
kms_key_name = "KEY"
mode = "REMOTE_REPOSITORY"
remote_repository_config {
description = "CONFIG_DESCRIPTION"
maven_repository {
public_repository = "MAVEN_CENTRAL"
}
}
cleanup_policy_dry_run = DRY_RUN_STATUS
cleanup_policies {
id = "POLICY_NAME"
action = "DELETE"
condition {
tag_state = "TAG_STATE"
tag_prefixes = ["TAG_PREFIX", "TAG_PREFIX_N"]
older_than = "TIME_SINCE_UPLOAD"
}
}
cleanup_policies {
id = "POLICY_NAME"
action = "KEEP"
condition {
tag_state = "TAG_STATE"
tag_prefixes = ["TAG_PREFIX", "TAG_PREFIX_N"]
package_name_prefixes = ["PKG_PREFIX", "PKG_PREFIX_N"]
}
}
cleanup_policies {
id = "POLICY_NAME"
action = "KEEP"
most_recent_versions {
package_name_prefixes = ["PKG_PREFIX", "PKG_PREFIX_N"]
keep_count = KEEP_COUNT
}
}
}
Dabei gilt:
PROJECT-ID
ist die Projekt-ID der Google Cloud .LOCATION
ist der Speicherort des Repositorys.REPOSITORY_ID
ist die Repository-ID.DESCRIPTION
ist die optionale Beschreibung für das Repository. Geben Sie keine vertraulichen Daten an, da Repository-Beschreibungen nicht verschlüsselt sind.KEY
ist der Name des Cloud Key Management Service-Schlüssels, wenn Sie für die Verschlüsselung vom Kunden verwaltete Verschlüsselungsschlüssel (Customer-Managed Encryption Keys, CMEK) verwenden. Lassen Sie dieses Argument aus, um die von Google verwaltete Standardeinstellung zu verwenden.CONFIG_DESCRIPTION
ist eine optionale Beschreibung der Remotequelle.- Mit
DRY_RUN_STATUS
wird festgelegt, ob Artefakte durch Bereinigungsrichtlinien gelöscht werden oder nur protokolliert werden, welche Artefakte gelöscht würden, wenn Bereinigungsrichtlinien für das Repository festgelegt werden. Lassen Sie dieses Feld leer, wenn Sie dem Repository keine Bereinigungsrichtlinien hinzufügen möchten. *true
: Legt fest, dass die Richtlinien im Probelaufmodus ausgeführt werden. Im Modus „Probelauf“ werden keine Artefakte gelöscht. *false
: die Richtlinien zur Datenbereinigung anwendet. Artefakte werden je nach Richtlinie gelöscht oder aufbewahrt. Weitere Informationen zu Bereinigungsrichtlinien finden Sie unter Bereinigungsrichtlinien konfigurieren.POLICY_NAME
ist der Name der Bereinigungsrichtlinie.TAG_STATE
ist der Tag-Status, auf den die Richtlinie angewendet werden soll. Werte:tagged
,untagged
undany
.any
gilt sowohl für getaggte als auch für nicht getaggte Artefakte. Wenn für ein Repository unveränderliche Tags aktiviert sind, können getaggte Artefakte nicht gelöscht werden.TAG_PREFIX
undTAG_PREFIX_N
sind Tag-Präfixe, auf die die Richtlinie angewendet werden soll.PKG_PREFIX
,PKG_PREFIX_N
sind Paketpräfixe, auf die die Richtlinie angewendet werden soll.TIME_SINCE_UPLOAD
ist die Zeit, die vergangen ist, seit eine Artefakteversion in das Repository hochgeladen wurde. Sie wird als Dauer angegeben. Sie können die Dauer in Sekunden, Minuten, Stunden oder Tagen angeben, indem Sies
,m
,h
oderd
anhängen.KEEP_COUNT
ist die Anzahl der Versionen pro Paket eines Artefakts, die in Ihrem Repository beibehalten werden sollen.
Wenn Sie Snapshot- und Releaseversionen in verschiedenen Repositories speichern möchten, geben Sie mit einem maven_config
-Block eine Versionsrichtlinie für das Repository an. Dieser Block unterstützt die folgenden Einstellungen:
version_policy
legt die Versionsrichtlinie mit einem der folgenden Werte fest:VERSION_POLICY_UNSPECIFIED
: Snapshot- und Release-Pakete speichern Das ist die Standardeinstellung.- RELEASE: Nur Store-Release-Pakete.
- SNAPSHOT: Nur Snapshot-Pakete speichern.
allow_snapshot_overwrites
konfiguriert ein Repository mit einerSNAPSHOT
-Versionierungsrichtlinie, um nicht eindeutige Snapshots zu akzeptieren, die vorhandene Versionen im Repository überschreiben.
Im folgenden Beispiel wird ein Maven-Repository mit einer Richtlinie für Release-Versionen definiert.
provider "google" {
project = "my-project"
}
resource "google_artifact_registry_repository" "my-repo" {
provider = google-beta
location = "LOCATION"
repository_id = "my-repo"
description = "Maven repository"
format = "MAVEN"
mode = "REMOTE_REPOSITORY"
maven_config {
version_policy = "RELEASE"
}
}
npm
provider "google" {
project = "PROJECT-ID"
}
resource "google_artifact_registry_repository" "my-repo" {
location = "LOCATION"
repository_id = "REPOSITORY_ID"
description = "DESCRIPTION"
format = "npm"
kms_key_name = "KEY"
mode = "REMOTE_REPOSITORY"
remote_repository_config {
description = "CONFIG_DESCRIPTION"
npm_repository {
public_repository = "NPMJS"
}
}
cleanup_policy_dry_run = DRY_RUN_STATUS
cleanup_policies {
id = "POLICY_NAME"
action = "DELETE"
condition {
tag_state = "TAG_STATE"
tag_prefixes = ["TAG_PREFIX", "TAG_PREFIX_N"]
older_than = "TIME_SINCE_UPLOAD"
}
}
cleanup_policies {
id = "POLICY_NAME"
action = "KEEP"
condition {
tag_state = "TAG_STATE"
tag_prefixes = ["TAG_PREFIX", "TAG_PREFIX_N"]
package_name_prefixes = ["PKG_PREFIX", "PKG_PREFIX_N"]
}
}
cleanup_policies {
id = "POLICY_NAME"
action = "KEEP"
most_recent_versions {
package_name_prefixes = ["PKG_PREFIX", "PKG_PREFIX_N"]
keep_count = KEEP_COUNT
}
}
}
Dabei gilt:
PROJECT-ID
ist die Google Cloud -Projekt-ID.LOCATION
ist der Speicherort des Repositorys.REPOSITORY_ID
ist die Repository-ID.DESCRIPTION
ist die optionale Beschreibung für das Repository. Geben Sie keine vertraulichen Daten an, da Repository-Beschreibungen nicht verschlüsselt sind.KEY
ist der Name des Cloud Key Management Service-Schlüssels, wenn Sie für die Verschlüsselung vom Kunden verwaltete Verschlüsselungsschlüssel (Customer-Managed Encryption Keys, CMEK) verwenden. Lassen Sie dieses Argument aus, um die von Google verwaltete Standardeinstellung zu verwenden.CONFIG_DESCRIPTION
ist eine optionale Beschreibung der Remotequelle.- Mit
DRY_RUN_STATUS
wird festgelegt, ob Artefakte durch Bereinigungsrichtlinien gelöscht werden oder nur protokolliert werden, welche Artefakte gelöscht würden, wenn Bereinigungsrichtlinien für das Repository festgelegt werden. Lassen Sie dieses Feld leer, wenn Sie dem Repository keine Bereinigungsrichtlinien hinzufügen möchten. *true
: Legt fest, dass die Richtlinien im Probelaufmodus ausgeführt werden. Im Modus „Probelauf“ werden keine Artefakte gelöscht. *false
: die Richtlinien zur Datenbereinigung anwendet. Artefakte werden je nach Richtlinie gelöscht oder aufbewahrt. Weitere Informationen zu Bereinigungsrichtlinien finden Sie unter Bereinigungsrichtlinien konfigurieren.POLICY_NAME
ist der Name der Bereinigungsrichtlinie.TAG_STATE
ist der Tag-Status, auf den die Richtlinie angewendet werden soll. Werte:tagged
,untagged
undany
.any
gilt sowohl für getaggte als auch für nicht getaggte Artefakte. Wenn für ein Repository unveränderliche Tags aktiviert sind, können getaggte Artefakte nicht gelöscht werden.TAG_PREFIX
undTAG_PREFIX_N
sind Tag-Präfixe, auf die die Richtlinie angewendet werden soll.PKG_PREFIX
,PKG_PREFIX_N
sind Paketpräfixe, auf die die Richtlinie angewendet werden soll.TIME_SINCE_UPLOAD
ist die Zeit, die vergangen ist, seit eine Artefakteversion in das Repository hochgeladen wurde. Sie wird als Dauer angegeben. Sie können die Dauer in Sekunden, Minuten, Stunden oder Tagen angeben, indem Sies
,m
,h
oderd
anhängen.KEEP_COUNT
ist die Anzahl der Versionen pro Paket eines Artefakts, die in Ihrem Repository beibehalten werden sollen.
Python
provider "google" {
project = "PROJECT-ID"
}
resource "google_artifact_registry_repository" "my-repo" {
location = "LOCATION"
repository_id = "REPOSITORY_ID"
description = "DESCRIPTION"
format = "python"
kms_key_name = "KEY"
mode = "REMOTE_REPOSITORY"
remote_repository_config {
description = "CONFIG_DESCRIPTION"
python_repository {
public_repository = "PYPI"
}
}
cleanup_policy_dry_run = DRY_RUN_STATUS
cleanup_policies {
id = "POLICY_NAME"
action = "DELETE"
condition {
tag_state = "TAG_STATE"
tag_prefixes = ["TAG_PREFIX", "TAG_PREFIX_N"]
older_than = "TIME_SINCE_UPLOAD"
}
}
cleanup_policies {
id = "POLICY_NAME"
action = "KEEP"
condition {
tag_state = "TAG_STATE"
tag_prefixes = ["TAG_PREFIX", "TAG_PREFIX_N"]
package_name_prefixes = ["PKG_PREFIX", "PKG_PREFIX_N"]
}
}
cleanup_policies {
id = "POLICY_NAME"
action = "KEEP"
most_recent_versions {
package_name_prefixes = ["PKG_PREFIX", "PKG_PREFIX_N"]
keep_count = KEEP_COUNT
}
}
}
Dabei gilt:
PROJECT-ID
ist die Google Cloud -Projekt-ID.LOCATION
ist der Speicherort des Repositorys.REPOSITORY_ID
ist die Repository-ID.DESCRIPTION
ist die optionale Beschreibung für das Repository. Geben Sie keine vertraulichen Daten an, da Repository-Beschreibungen nicht verschlüsselt sind.KEY
ist der Name des Cloud Key Management Service-Schlüssels, wenn Sie für die Verschlüsselung vom Kunden verwaltete Verschlüsselungsschlüssel (Customer-Managed Encryption Keys, CMEK) verwenden. Lassen Sie dieses Argument aus, um die von Google verwaltete Standardeinstellung zu verwenden.CONFIG_DESCRIPTION
ist eine optionale Beschreibung der Remotequelle.- Mit
DRY_RUN_STATUS
wird festgelegt, ob Artefakte durch Bereinigungsrichtlinien gelöscht werden oder nur protokolliert werden, welche Artefakte gelöscht würden, wenn Bereinigungsrichtlinien für das Repository festgelegt werden. Lassen Sie dieses Feld leer, wenn Sie dem Repository keine Bereinigungsrichtlinien hinzufügen möchten. *true
: Legt fest, dass die Richtlinien im Probelaufmodus ausgeführt werden. Im Modus „Probelauf“ werden keine Artefakte gelöscht. *false
: die Richtlinien zur Datenbereinigung anwendet. Artefakte werden je nach Richtlinie gelöscht oder aufbewahrt. Weitere Informationen zu Bereinigungsrichtlinien finden Sie unter Bereinigungsrichtlinien konfigurieren.POLICY_NAME
ist der Name der Bereinigungsrichtlinie.TAG_STATE
ist der Tag-Status, auf den die Richtlinie angewendet werden soll. Werte:tagged
,untagged
undany
.any
gilt sowohl für getaggte als auch für nicht getaggte Artefakte. Wenn für ein Repository unveränderliche Tags aktiviert sind, können getaggte Artefakte nicht gelöscht werden.TAG_PREFIX
undTAG_PREFIX_N
sind Tag-Präfixe, auf die die Richtlinie angewendet werden soll.PKG_PREFIX
,PKG_PREFIX_N
sind Paketpräfixe, auf die die Richtlinie angewendet werden soll.TIME_SINCE_UPLOAD
ist die Zeit, die vergangen ist, seit eine Artefakteversion in das Repository hochgeladen wurde. Sie wird als Dauer angegeben. Sie können die Dauer in Sekunden, Minuten, Stunden oder Tagen angeben, indem Sies
,m
,h
oderd
anhängen.KEEP_COUNT
ist die Anzahl der Versionen pro Paket eines Artefakts, die in Ihrem Repository beibehalten werden sollen.
Apt (Vorabversion)
provider "google" {
project = "PROJECT_ID"
}
resource "google_artifact_registry_repository" "my-repo" {
location = "LOCATION"
repository_id = "REPOSITORY_ID"
description = "DESCRIPTION"
format = "APT"
mode = "REMOTE_REPOSITORY"
remote_repository_config {
description = "CONFIG_DESCRIPTION"
apt_repository {
public_repository {
repository_base = "REPOSITORY_BASE"
repository_path = "REPOSITORY_PATH"
}
}
}
}
Dabei gilt:
- PROJECT-ID ist die Google Cloud -Projekt-ID.
- LOCATION ist der Speicherort des Repositorys.
- REPOSITORY_ID ist die Repository-ID.
- DESCRIPTION ist die optionale Beschreibung für das Repository. Geben Sie keine vertraulichen Daten an, da Repository-Beschreibungen nicht verschlüsselt werden.
- CONFIG_DESCRIPTION ist eine optionale Beschreibung der Remotequelle.
- REPOSITORY_BASE ist die voreingestellte öffentliche Repository-Basis für Apt.
Mögliche Werte sind
DEBIAN
undUBUNTU
. - REPOSITORY_PATH ist das spezifische Repository aus der Basis. Beispiel:
debian/dists/buster
.
Yum (Vorabversion)
provider "google" {
project = "PROJECT_ID"
}
resource "google_artifact_registry_repository" "my-repo" {
location = "LOCATION"
repository_id = "REPOSITORY_ID"
description = "DESCRIPTION"
format = "YUM"
mode = "REMOTE_REPOSITORY"
remote_repository_config {
description = "CONFIG_DESCRIPTION"
yum_repository {
public_repository {
repository_base = "REPOSITORY_BASE"
repository_path = "REPOSITORY_PATH"
}
}
}
}
Dabei gilt:
- PROJECT-ID ist die Google Cloud -Projekt-ID.
- LOCATION ist der Speicherort des Repositorys.
- REPOSITORY_ID ist die Repository-ID.
- DESCRIPTION ist die optionale Beschreibung für das Repository. Geben Sie keine vertraulichen Daten an, da Repository-Beschreibungen nicht verschlüsselt werden.
- CONFIG_DESCRIPTION ist eine optionale Beschreibung der Remotequelle.
- REPOSITORY_BASE ist die voreingestellte öffentliche Repository-Basis für Yum.
Mögliche Werte sind
CENTOS
,CENTOS_DEBUG
,CENTOS_VAULT
,CENTOS_STREAM
,ROCKY
undEPEL
. - REPOSITORY_PATH ist das spezifische Repository aus der Basis. Beispiel:
"centos/8-stream/BaseOS/x86_64/os
.
Artifact Registry erstellt Ihr Repository. Führen Sie den folgenden Befehl aus, um eine Beschreibung des Repositorys aufzurufen:
gcloud artifacts repositories describe REPOSITORY \
--location=LOCATION
Nachdem Sie das Repository erstellt haben, gehen Sie so vor:
- Gewähren Sie Zugriff auf das Repository.
- Konfigurieren Sie Docker, Paketmanager und andere Clients von Drittanbietern für die Authentifizierung bei Repositories.
- Konfigurieren Sie Artifact Registry-Remote-Repositories für die Authentifizierung bei ihren Upstream-Quellen.
- Container-Images: Konfigurieren Sie die Remote-Repository-Authentifizierung bei Docker Hub.
- Sprachpakete:
- Benutzerdefinierte benutzerdefinierte Upstreams: Konfigurieren Sie die Authentifizierung für Remote-Repository-Upstreams.
Repository-Beschreibungen bearbeiten
Sie können die Repository-Beschreibung über die Google Cloud Console oder die gcloud CLI ändern.
Console
Öffnen Sie in der Google Cloud -Konsole die Seite Repositories.
Wählen Sie in der Repository-Liste das Repository aus und klicken Sie auf Repository bearbeiten.
Bearbeiten Sie die Repository-Beschreibung und klicken Sie dann auf Speichern.
gcloud
Führen Sie den folgenden Befehl aus, um die Repository-Beschreibung zu aktualisieren:
gcloud artifacts repositories update REPOSITORY \
--project=PROJECT \
--location=LOCATION \
--description="DESCRIPTION"
Ersetzen Sie Folgendes:
REPOSITORY
: Name des Repositorys. Wenn Sie ein Standard-Repository konfiguriert haben, wird bei Weglassen dieses Flags dieses Standard-Repository verwendet.PROJECT
: die Google Cloud-Projekt-ID. Wenn dieses Flag nicht angegeben ist, wird das aktuelle Projekt oder das Standardprojekt verwendet.-
LOCATION
ist der regionale oder multiregionale Speicherort des Repositorys. Mit diesem Flag können Sie Repositories an einem bestimmten Speicherort aufrufen. Wenn Sie einen Standard-Speicherort konfiguriert haben, wird bei Weglassen dieses Flags dieser Standardwert verwendet. DESCRIPTION
: eine Beschreibung für das Repository.
Zugriff auf Upstream-Quellen in einem Dienstperimeter
Dienste in einem VPC Service Controls-Dienstperimeter haben eingeschränkten Zugriff auf Ressourcen außerhalb des Perimeters.
Sie können den Zugriff auf Upstream-Quellen innerhalb eines bestimmtenGoogle Cloud -Projekts und -Standorts zulassen oder verweigern.
Standardmäßig verweigert Artifact Registry den Zugriff auf Upstream-Quellen, wenn Sie den Zugriff nicht explizit gewährt haben.
Für Artifact Registry ist die Rolle „Artifact Registry-Administrator“ (roles/artifactregistry.admin
) erforderlich.
Einstellungen für Upstream-Quellen aufrufen
Führen Sie den folgenden Befehl aus, um die Konfiguration für eine bestimmte Kombination aus Projekt und Standort aufzurufen:
gcloud artifacts vpcsc-config describe \
--project=PROJECT_ID \
--location=LOCATION
Mit dem folgenden Befehl können Sie beispielsweise die Einstellungen für Remote-Repositories in us-east1
im Projekt my-project
aufrufen:
gcloud artifacts vpcsc-config describe \
--project=my-project \
--location=us-east1
Zugriff auf Upstream-Quellen erlauben
Führen Sie den folgenden Befehl aus, um den Zugriff auf Upstream-Quellen an einem bestimmten Speicherort zuzulassen:
gcloud artifacts vpcsc-config allow \
--project=PROJECT_ID \
--location=LOCATION
Mit dem folgenden Befehl können Sie beispielsweise allen Remote-Repositories in us-east1
im Projekt my-project
den Zugriff auf ihre Upstream-Quellen außerhalb des Perimeters erlauben:
gcloud artifacts vpcsc-config allow \
--project=my-project \
--location=us-east1
Zugriff auf Upstream-Quellen verweigern
Wenn Sie den Zugriff auf vorgelagerte Quellen verweigern, sind vorhandene im Cache gespeicherte Artefakte in Remote-Repositories weiterhin verfügbar.
Führen Sie den folgenden Befehl aus, um den Zugriff auf Upstream-Quellen an einem bestimmten Speicherort zu verweigern:
gcloud artifacts vpcsc-config deny \
--project=PROJECT_ID \
--location=LOCATION
Mit dem folgenden Befehl können Sie beispielsweise den Zugriff auf Upstream-Quellen außerhalb des Perimeter für alle Remote-Repositories in us-west1
im Projekt my-project
blockieren:
gcloud artifacts vpcsc-config deny \
--project=my-project \
--location=us-west1
Nächste Schritte
- Erstellen Sie ein Remote-Repository in Docker Hub.
- Weitere Informationen zu Remote-Repositories in Artifact Registry
- Konfigurieren Sie die Authentifizierung für Remote-Repositories bei Docker Hub.