Auf dieser Seite wird beschrieben, wie Sie Artifact Registry-Remote-Repositories erstellen.
Remote-Repositories speichern Artefakte aus voreingestellten externen Quellen wie Docker Hub, Maven Central, dem Python Package Index (PyPI), Debian oder CentOS sowie benutzerdefinierte Quellen für unterstützte Formate. Ein Remote-Repository fungiert als Proxy für die externe Quelle, sodass Sie mehr Kontrolle über Ihre externen Abhängigkeiten haben. Wenn Sie zum ersten Mal eine Version eines Pakets anfordern, wird das Paket von Artifact Registry heruntergeladen und im Remote-Repository gespeichert. Wenn Sie das nächste Mal dieselbe Paketversion anfordern, stellt Artifact Registry die im Cache gespeicherte Kopie bereit.
Die anderen Repository-Modi sind:
- Standard: Der standardmäßige Repository-Modus. Sie laden Artefakte wie private Pakete direkt in Standard-Repositories hoch oder veröffentlichen sie. Obwohl Sie Inhalte direkt aus einzelnen Standard-Repositories herunterladen können, vereinfacht der Zugriff auf Gruppen von Repositories mit einem virtuellen Repository 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-Repositorys – Übersicht.
Hinweise
- Artifact Registry aktivieren. Dazu gehört auch die Aktivierung der Artifact Registry API und die Installation der Google Cloud CLI.
- Optional: Konfigurieren Sie Standardeinstellungen für die gcloud CLI.
- Wenn Sie vom Kunden verwaltete Verschlüsselungsschlüssel (CMEK) zum Verschlüsseln von Repository-Inhalten benötigen, erstellen und aktivieren Sie in Cloud KMS einen Schlüssel für das Repository.
Aktivieren Sie die Secret Manager API, wenn Sie sich bei einem Upstream-Repository authentifizieren möchten.
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 sie noch nicht aktiviert ist.
gcloud services enable accesscontextmanager.googleapis.com \ --project=PROJECT_ID
Erforderliche Rollen
Bitten Sie Ihren Administrator, Ihnen die folgenden IAM-Rollen zu gewähren, um die Berechtigungen zu erhalten, die Sie zum Verwalten von Repositories benötigen:
-
Erstellen Sie Remote-Repositories und gewähren Sie Zugriff auf einzelne Repositories: Artifact Registry-Administrator (
roles/artifactregistry.admin
) für das Projekt -
Speichern Sie die Anmeldedaten Ihres Upstream-Repositorys in einer Secret-Version: Secret Manager Admin (
roles/secretmanager.admin
) für das Projekt -
Gewähren Sie Zugriff auf Upstream-Quellen außerhalb eines VPC Service Controls-Dienstperimeters:
Access Context Manager-Bearbeiter (
roles/accesscontextmanager.policyEditor
) für das Projekt, den Ordner oder die Organisation, auf die die Zugriffsrichtlinie angewendet wird
Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff verwalten.
Möglicherweise können Sie 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:
- Artefaktformat:
- Repository-Modus auf „Remote“ festgelegt
- Voreingestellte oder benutzerdefinierte Upstream-Quelle für Remote-Repository.
- Repository-Speicherort.
- Verschlüsselung mit von Google verwalteten Schlüsseln oder vom Kunden verwalteten Verschlüsselungsschlüsseln Artifact Registry verwendet standardmäßig von Google verwaltete Verschlüsselungsschlüssel.
Artifact Registry erzwingt Einschränkungen für Organisationsrichtlinien, die erfordern, dass CMEK Ressourcen verschlüsselt oder begrenzt, 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 Cloud Console 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 Abschnitt Format das Repository-Format aus.
Wählen Sie im Bereich Repository-Modus die Option Remote aus.
Wählen Sie im Abschnitt Remote-Repository-Quelle entweder Voreinstellung für Upstream oder Benutzerdefiniert aus, wenn Sie für den Upstream eine benutzerdefinierte URL verwenden möchten.
Optional. Wenn Sie einen benutzerdefinierten Upstream verwenden, geben Sie im Feld Benutzerdefiniertes Repository die URL des benutzerdefinierten Repositorys ein. Die URL kann nach dem Erstellen des Repositorys nicht mehr geändert werden.
Wählen Sie im Authentifizierungsmodus des Remote-Repositorys eine der folgenden Optionen aus:
- Authentifiziert: Geben Sie Ihren Nutzernamen und Ihr Secret zur Authentifizierung bei Ihrem Upstream-Repository ein.
- Nicht authentifiziert: Die Authentifizierung beim Upstream-Repository wird übersprungen.
Optional. 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 Remote-Repository-Upstreams finden Sie unter Authentifizierung bei Remote-Repository-Upstreams konfigurieren.
Wählen Sie im Abschnitt Standorttyp den Standort 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 Standorttypen und unterstützten Speicherorten finden Sie unter Repository-Standorte.
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 sensiblen Daten an, da Repository-Beschreibungen nicht verschlüsselt sind.
Wenn Sie Labels zum Organisieren Ihrer Repositories verwenden 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 Schlü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.
Klicken Sie auf Erstellen.
Artifact Registry erstellt das Repository und fügt es der Liste der Repositories hinzu.
Nachdem Sie das Repository erstellt haben:
- Gewähren Sie Zugriff auf das Repository.
- Konfigurieren Sie Docker, Paketmanager und andere Clients von Drittanbietern für die Authentifizierung bei Repositories.
- Konfigurieren Sie die Remote-Repositories von Artifact Registry 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 zum Erstellen eines Repositorys den Befehl für das entsprechende Repository-Format aus:
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" \
--remote-username=USERNAME \
--remote-password-secret-version=SECRET_VERSION \
--remote-docker-repo=UPSTREAM
Ersetzen Sie Folgendes:
REMOTE-REPOSITORY-NAME
durch den Namen des Repositorys. Für jeden Repository-Speicherort in einem Projekt müssen Repository-Namen eindeutig sein.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 Standort des Repositorys. 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 Standorte aufzurufen.DESCRIPTION
durch eine optionale Beschreibung des Repositorys. Geben Sie keine sensiblen Daten an, da Repository-Beschreibungen nicht verschlüsselt sind.REMOTE-REPOSITORY-DESCRIPTION
durch eine Beschreibung der externen Repository-Konfiguration 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-Repositorys enthält.UPSTREAM
durch den Voreinstellungsnamen oder die benutzerdefinierte URL des Upstream-Repositorys. Informationen zu verfügbaren voreingestellten Upstreams und unterstützten benutzerdefinierten Upstreams finden Sie unter Unterstützte Formate.
Mit dem folgenden Befehl wird beispielsweise ein Remote-Repository namens my-repo
in der Region us-east1
im Google Cloud-Projekt my-project
erstellt. Es kann sich mit dem Nutzernamen my-username
und der Secret-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 Docker Hub-Upstream-Repositories finden Sie unter Remote-Repository-Authentifizierung 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" \
--remote-username=USERNAME \
--remote-password-secret-version=SECRET_VERSION \
--remote-mvn-repo=UPSTREAM
Ersetzen Sie Folgendes:
REMOTE-REPOSITORY-NAME
durch den Namen des Repositorys. Für jeden Repository-Speicherort in einem Projekt müssen Repository-Namen eindeutig sein.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 Standort des Repositorys. 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 Standorte aufzurufen.DESCRIPTION
durch eine optionale Beschreibung des Repositorys. Geben Sie keine sensiblen Daten an, da Repository-Beschreibungen nicht verschlüsselt sind.REMOTE-REPOSITORY-DESCRIPTION
durch eine Beschreibung der externen Repository-Konfiguration 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-Repositorys enthält.UPSTREAM
durch den Voreinstellungsnamen oder die benutzerdefinierte URL des Upstream-Repositorys. Informationen zu verfügbaren voreingestellten Upstreams und unterstützten benutzerdefinierten Upstreams finden Sie unter Unterstützte Formate.
Mit dem folgenden Befehl wird beispielsweise ein Remote-Repository namens my-repo
in der Region us-east1
im Google Cloud-Projekt my-project
erstellt. Es kann sich mit dem Nutzernamen my-username
und der Secret-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" \
--remote-username=USERNAME \
--remote-password-secret-version=SECRET_VERSION \
--remote-npm-repo=UPSTREAM
Ersetzen Sie Folgendes:
REMOTE-REPOSITORY-NAME
durch den Namen des Repositorys. Für jeden Repository-Speicherort in einem Projekt müssen Repository-Namen eindeutig sein.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 Standort des Repositorys. 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 Standorte aufzurufen.DESCRIPTION
durch eine optionale Beschreibung des Repositorys. Geben Sie keine sensiblen Daten an, da Repository-Beschreibungen nicht verschlüsselt sind.REMOTE-REPOSITORY-DESCRIPTION
durch eine Beschreibung der externen Repository-Konfiguration 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-Repositorys enthält.UPSTREAM
durch den Voreinstellungsnamen oder die benutzerdefinierte URL des Upstream-Repositorys. Informationen zu verfügbaren voreingestellten Upstreams und unterstützten benutzerdefinierten Upstreams finden Sie unter Unterstützte Formate.
Mit dem folgenden Befehl wird beispielsweise ein Remote-Repository namens my-repo
in der Region us-east1
im Google Cloud-Projekt my-project
erstellt. Es kann sich mit dem Nutzernamen my-username
und der Secret-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" \
--remote-username=USERNAME \
--remote-password-secret-version=SECRET_VERSION \
--remote-python-repo=UPSTREAM
Ersetzen Sie Folgendes:
REMOTE-REPOSITORY-NAME
durch den Namen des Repositorys. Für jeden Repository-Speicherort in einem Projekt müssen Repository-Namen eindeutig sein.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 Standort des Repositorys. 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 Standorte aufzurufen.DESCRIPTION
durch eine optionale Beschreibung des Repositorys. Geben Sie keine sensiblen Daten an, da Repository-Beschreibungen nicht verschlüsselt sind.REMOTE-REPOSITORY-DESCRIPTION
durch eine Beschreibung der externen Repository-Konfiguration 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-Repositorys enthält.UPSTREAM
durch den Voreinstellungsnamen oder die benutzerdefinierte URL des Upstream-Repositorys. Informationen zu verfügbaren voreingestellten Upstreams und unterstützten benutzerdefinierten Upstreams finden Sie unter Unterstützte Formate.
Mit dem folgenden Befehl wird beispielsweise ein Remote-Repository namens my-repo
in der Region us-east1
im Google Cloud-Projekt my-project
erstellt. Es kann sich mit dem Nutzernamen my-username
und der Secret-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. Für jeden Repository-Speicherort in einem Projekt müssen Repository-Namen eindeutig sein.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 Standort des Repositorys. 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 Standorte aufzurufen.DESCRIPTION
durch eine optionale Beschreibung des Repositorys. Geben Sie keine sensiblen Daten an, da Repository-Beschreibungen unverschlüsselt sind.REMOTE_REPOSITORY_DESCRIPTION
durch eine optionale Beschreibung der externen Repository-Konfiguration für dieses Remote-Repository.APT_REPOSITORY_BASE
durch einen der unterstützten Repository-Basisnamen, die in den unterstützten Upstreams des Betriebssystempakets für Apt-Remote-Repositories aufgeführt sind.APT_REPOSITORY_PATH
durch den Rest der URL des Upstream-Repositorys, das Sie nach der Repository-Basis in Ihrem Remote-Repository im Cache speichern möchten.
Mit dem folgenden Befehl wird beispielsweise ein Remote-Repository mit dem Namen 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"
Lecker (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. Für jeden Repository-Speicherort in einem Projekt müssen Repository-Namen eindeutig sein.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 Standort des Repositorys. 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 Standorte aufzurufen.DESCRIPTION
durch eine optionale Beschreibung des Repositorys. Geben Sie keine sensiblen Daten an, da Repository-Beschreibungen unverschlüsselt sind.REMOTE_REPOSITORY_DESCRIPTION
durch eine optionale Beschreibung der externen Repository-Konfiguration für dieses Remote-Repository.YUM_REPOSITORY_BASE
durch einen der unterstützten Repository-Basisnamen, die in den unterstützten Upstreams des Betriebssystempakets für Yum-Remote-Repositories aufgeführt sind.YUM_REPOSITORY_PATH
durch den Rest der URL des Upstream-Repositorys, 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 namens my-repo
in der Region us-east1
im Google Cloud-Projekt my-project
für das Upstream-Repository centos/8-stream/BaseOs/x86_64/os
erstellt.
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 \
--remote-yum-repo-path="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 REMOTE_REPOSITORY_NAME \
--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 die Remote-Repositories von Artifact Registry 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 Cloud noch nicht verwenden, 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"
}
}
}
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 sensiblen 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 die optionale Beschreibung der Remote-Quelle.
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"
}
}
}
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 sensiblen 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 die optionale Beschreibung der Remote-Quelle.
Wenn Sie Snapshot- und Release-Versionen 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 auf einen der folgenden Werte fest:VERSION_POLICY_UNSPECIFIED
: Snapshot- und Release-Pakete speichern Das ist die Standardeinstellung.- RELEASE: Nur Release-Pakete speichern.
- SNAPSHOT: Nur Snapshot-Pakete speichern.
allow_snapshot_overwrites
konfiguriert ein Repository mit einer VersionsrichtlinieSNAPSHOT
, 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"
}
}
}
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 sensiblen 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 die optionale Beschreibung der Remote-Quelle.
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"
}
}
}
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 sensiblen 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 die optionale Beschreibung der Remote-Quelle.
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 sensiblen Daten an, da Repository-Beschreibungen nicht verschlüsselt sind.
- CONFIG_DESCRIPTION ist die optionale Beschreibung der Remote-Quelle.
- REPOSITORY_BASE ist die voreingestellte öffentliche Repository-Basis für Apt.
Mögliche Werte sind
DEBIAN
undUBUNTU
. - REPOSITORY_PATH ist das spezifische Repository 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 sensiblen Daten an, da Repository-Beschreibungen nicht verschlüsselt sind.
- CONFIG_DESCRIPTION ist die optionale Beschreibung der Remote-Quelle.
- 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 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:
- Gewähren Sie Zugriff auf das Repository.
- Konfigurieren Sie Docker, Paketmanager und andere Clients von Drittanbietern für die Authentifizierung bei Repositories.
- Konfigurieren Sie die Remote-Repositories von Artifact Registry 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 Cloud Console 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
: der Name des Repositorys. Wenn Sie ein Standard-Repository konfiguriert haben, wird bei Weglassen des 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
: ein regionaler oder multiregionaler Standort. Verwenden Sie dieses Flag, um Repositories an einem bestimmten Speicherort aufzurufen. 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 bestimmten Google Cloud-Projekts und -Standorts zulassen oder verweigern.
Wenn Sie den Zugriff nicht explizit gewährt haben, verweigert Artifact Registry den Zugriff auf Upstream-Quellen standardmäßig.
Für Artifact Registry ist die erforderliche Rolle Artifact Registry-Administrator (roles/artifactregistry.admin
).
Einstellungen für Upstream-Quellen ansehen
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
Verwenden Sie beispielsweise den folgenden Befehl, um die Einstellungen für Remote-Repositories in us-east1
im Projekt my-project
aufzurufen:
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 Standort zuzulassen:
gcloud artifacts vpcsc-config allow \
--project=PROJECT_ID \
--location=LOCATION
Verwenden Sie beispielsweise den folgenden Befehl, um allen Remote-Repositories in us-east1
im Projekt my-project
den Zugriff auf ihre vorgelagerten Quellen außerhalb des Perimeters zu erlauben:
gcloud artifacts vpcsc-config allow \
--project=my-project \
--location=us-east1
Zugriff auf Upstream-Quellen verweigern
Wenn Sie den Zugriff auf Upstream-Quellen ablehnen, 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 Standort zu verweigern:
gcloud artifacts vpcsc-config deny \
--project=PROJECT_ID \
--location=LOCATION
Verwenden Sie beispielsweise den folgenden Befehl, um den Zugriff auf vorgelagerte Quellen außerhalb des Perimeters für alle Remote-Repositories in us-west1
im Projekt my-project
zu blockieren:
gcloud artifacts vpcsc-config deny \
--project=my-project \
--location=us-west1
Nächste Schritte
- Erstellen Sie ein Docker Hub-Remote-Repository.
- Weitere Informationen zu Remote-Repositories von Artifact Registry.
- Authentifizierung von Remote-Repositories bei Docker Hub konfigurieren