Connector-Repositories erstellen

Connector-Repositories fungieren als Proxys für Upstream-Quellen und sorgen dafür, dass alle Anfragen von der Upstream-Quelle verarbeitet werden. Im Gegensatz zu Remote-Repositories, werden in Connector-Repositories keine Artefakte im Cache gespeichert. Daher sind Connector-Repositories nützlich, wenn Sie eine vollständige Auditierbarkeit von Upstream-Quellen benötigen oder wenn Sie Richtlinien von Drittanbietern einhalten müssen, die das Caching von Artefakten verhindern.

Auf dieser Seite wird beschrieben, wie Sie Artifact Registry-Connector-Repositories erstellen.

Unterstützte Connector-Formate

Artifact Registry unterstützt nur Connector-Repositories im Docker-Format.

Hinweis

  1. Aktivieren Sie die Artifact Registry API, und installieren Sie die Google Cloud CLI.
  2. Optional: Konfigurieren Sie Standardeinstellungen für die gcloud CLI-Befehle.
  3. Wenn Sie vom Kunden verwaltete Verschlüsselungsschlüssel (Customer-Managed Encryption Keys, CMEK) zum Verschlüsseln von Repository-Inhalten benötigen, erstellen und aktivieren Sie einen Schlüssel in Cloud KMS für das Repository.
  4. Aktivieren Sie die Secret Manager API.

    gcloud services enable secretmanager.googleapis.com \
        --project=PROJECT_ID
    
  5. 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 zuzuweisen, um die Berechtigungen zu erhalten, die Sie zum Verwalten von Repositories benötigen:

  • Connector-Repositories erstellen und Zugriff auf einzelne Repositories gewähren: Artifact Registry-Administrator (roles/artifactregistry.admin) für das Projekt
  • Anmeldedaten für das Upstream-Repository in einer Secret-Version speichern: Secret Manager-Administrator (roles/secretmanager.admin) für das Projekt
  • Zugriff auf Upstream-Quellen außerhalb eines VPC Service Controls-Dienstperimeters gewähren: Access Context Manager-Bearbeiter (roles/accesscontextmanager.policyEditor) für die Organisation der Ressource, auf die 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.

Connector-Repository erstellen

Wenn Sie ein Connector-Repository erstellen, müssen Sie die folgenden Einstellungen konfigurieren, die nach dem Erstellen des Repositorys nicht mehr geändert werden können:

  • Das Artefaktformat, das nur Docker sein kann.
  • Der Repository-Modus ist auf „Connector“ festgelegt.
  • Die Upstream-Quelle des Connector-Repositorys.
  • Der Speicherort des Repositorys .
  • Die Verschlüsselung mit Google Cloud-powered encryption keys oder vom Kunden verwalteten Verschlüsselungsschlüsseln. Artifact Registry verwendet Google Cloud-powered encryption keys standardmäßig.

Artifact Registry erzwingt Einschränkungen der Organisationsrichtlinie , 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.

Console

  1. Öffnen Sie in der Cloud de Confiance console die Seite Repositories.

    Zur Seite „Repositories“

  2. Klicken Sie auf Repository erstellen.

  3. Geben Sie den Repository-Namen an. Repository-Namen können für jeden Repository-Speicherort in einem Projekt nur einmal vorkommen.

  4. Wählen Sie im Abschnitt Format die Option Docker aus.

  5. Wählen Sie im Abschnitt Repository-Modus die Option Connector aus.

  6. Wählen Sie im Abschnitt Connector-Repository-Quelle eine der folgenden Optionen aus:

    • Docker Hub: Der Connector verwendet Docker Hub (https://docker.io) als Upstream-Repository.
    • Benutzerdefiniert: Der Connector verwendet eine andere Docker-Upstream-URL für das Upstream-Repository.
  7. Wenn Sie Benutzerdefiniert auswählen, geben Sie im Feld Benutzerdefiniertes Repository die vollständige Repository-URL ein. Die URL kann nach dem Erstellen des Repositorys nicht mehr geändert werden.

    Beispiele für einige gängige Upstream-URLs finden Sie unter Benutzerdefinierte Upstreams.

  8. Geben Sie im Abschnitt Authentifizierungsmodus für Connector-Repository Folgendes ein:

    1. Einen Nutzernamen für Ihr Upstream-Repository.
    2. Ein Secret zum Speichern Ihrer Anmeldedaten in Secret Manager.

    Sie können diese Werte nach dem Erstellen des Repositorys bearbeiten.

  9. Wählen Sie im Abschnitt Standorttyp den Speicherort für das Repository aus:

    1. Wählen Sie als Speicherort „Region“ oder „Mehrere Regionen“ aus. Die Liste der Speicherorte ändert sich entsprechend Ihrer Auswahl.

    2. Wählen Sie in der Liste Region oder Mehrere Regionen einen Speicherort aus.

    Informationen zu Typen von Speicherorten und unterstützten Speicherorten finden Sie unter Repository-Speicherorte

  10. Fügen Sie eine Beschreibung für das Repository hinzu. Beschreibungen helfen Ihnen 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.

  11. Wenn Sie Ihre Labels verwenden möchten, um Ihre Repositories zu organisieren, klicken Sie auf Label hinzufügen und geben Sie das Schlüssel/Wert-Paar für das Label ein. Sie können Labels nach dem Erstellen des Repositorys hinzufügen, bearbeiten oder entfernen.

  12. Wählen Sie im Abschnitt Verschlüsselung den Verschlüsselungsmechanismus für das Repository aus.

    • Google Cloud-powered encryption key: Verschlüsselung des Repository-Inhalts mit a Google Cloud-powered encryption key.
    • 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.
  13. Wählen Sie im Abschnitt Artefaktanalyse die Einstellungen für das Scannen auf Sicherheitslücken aus:

    • Aktiviert : Scannen in diesem Repository zulassen. Die Container Scanning API muss in Ihrem Projekt aktiviert sein.

      Wenn Sie die Container Scanning API aktivieren, beginnt die Abrechnung sofort. Nachdem Sie die Container Scanning API in einem Projekt aktiviert haben, ist das Scannen auf Sicherheitslücken für alle neuen und vorhandenen Repositories aktiviert. Wenn Sie ein Image per Push zu Artifact Registry übertragen, wird es automatisch von der Artefaktanalyse gescannt.

    • Deaktiviert : Scannen in diesem Repository verhindern. 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.

  14. Klicken Sie auf Erstellen.

Artifact Registry erstellt das Repository und fügt es der Liste der Repositories hinzu.

gcloud CLI

Führen Sie den Befehl aus, um ein Docker-Connector-Repository oder ein benutzerdefiniertes Connector-Repository zu erstellen.

  gcloud artifacts repositories create CONNECTOR-REPOSITORY-NAME \
      --project=PROJECT_ID \
      --location=LOCATION \
      --description="DESCRIPTION" \
      --repository-format=docker \
      --mode=connector-repository \
      --remote-docker-repo="UPSTREAM-NAME" \
      --remote-username="USERNAME" \
      --remote-password-secret-version="PASSWORD" \

Das Flag --mode=connector-repository ist erforderlich, um das Repository als Connector-Repository zu definieren. --repository-format muss docker sein.

Ersetzen Sie Folgendes:

  • CONNECTOR-REPOSITORY-NAME: Name des Repositorys. Repository-Namen können für jeden Repository-Speicherort in einem Projekt nur einmal vorkommen.
  • PROJECT_ID: Projekt-ID. Wenn dieses Flag weggelassen wird, wird das aktuelle oder Standardprojekt verwendet.
  • LOCATION: der regionale oder multiregionale Speicherort für das Repository. Sie können dieses Flag weglassen, wenn Sie einen Standardfestgelegt haben. Führen Sie den Befehl gcloud artifacts locations list aus, um eine Liste der unterstützten Speicherorte aufzurufen.
  • DESCRIPTION: optional. Eine Beschreibung des Connector-Repositorys. Geben Sie keine vertraulichen Daten an, da Repository-Beschreibungen nicht verschlüsselt werden.
  • UPSTREAM-NAME: der voreingestellte Upstream-Name oder die benutzerdefinierte URL des Upstream-Repositorys.
  • USERNAME: optional. Ihr Nutzername für die Authentifizierung beim Upstream-Repository.
  • PASSWORD: optional. Die Secret-Version, die Ihr Upstream-Repository-Passwort enthält.

Mit dem folgenden Befehl wird beispielsweise ein Connector-Repository mit dem Namen my-connector-repo erstellt, das ein JFrog-Upstream-Repository mit dem Cloud de Confiance Projekt my-project verbindet. Die vollständige URL des Upstream-Repositorys lautet https://my-account.jfrog.io/scoped-repo.

gcloud artifacts repositories create my-connector-repo \
    --project=my-project \
    --location=us-east1 \
    --repository-format=docker \
    --mode=connector-repository \
    --remote-docker-repo=https://my-account.jfrog.io/scoped-repo \
    --remote-username=my-username \
    --remote-password-secret-version=projects/my-project/secrets/my-secret/versions/1

Weitere Informationen zur Authentifizierung bei Upstream-Repositories finden Sie unter Connector-Repositories bei Upstream-Quellen authentifizieren.

Terraform

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 Cloud de Confiance by S3NSnoch nicht kennen, finden Sie weitere Informationen auf der Seite Erste Schritte Cloud de Confiance by S3NS auf der HashiCorp-Website.

Im folgenden Beispiel werden der Anbieter und ein Connector-Repository mit dem Terra Ressourcennamen my-repo definiert.

```hcl
provider "google" {
    project = "PROJECT-ID"
}

resource "google_artifact_registry_repository" "NAME" {
  location      = "LOCATION"
  repository_id = "REPOSITORY_ID"
  description   = "DESCRIPTION"
  format        = "docker"
  mode          = "REMOTE_REPOSITORY"

  # Setting mode="REMOTE_REPOSITORY" and no_cache() together configures the repository as a connector-type repository.
  remote_repository_config {
    description = "CONFIG_DESCRIPTION"
    docker_repository {
      public_repository = "DOCKER_HUB"
    }
    no_cache {}
  }
}
```

Replace the following:

  * `PROJECT-ID`: the Cloud de Confiance project ID.
  * `NAME`: the name of your repository.
  * `LOCATION`: the repository location.
  * `REPOSITORY_ID`: the repository ID.
  * `DESCRIPTION`: optional. A description for the repository.
    Do not include sensitive data. Repository descriptions are
    not encrypted.
  * `KEY`: the name of the Cloud Key Management Service key, if you are using
    [customer-managed encryption keys][cmek] (CMEK) for encryption. Omit
    this argument to use the default setting, Google-managed encryption
    keys.
  * `CONFIG_DESCRIPTION`: optional. A description of the remote
    source.

Nachdem Sie das Repository erstellt haben, gehen Sie so vor:

  • Zugriff gewähren auf das Repository.
  • Docker, Paketmanager und andere Drittanbieter-Clients für die Authentifizierung bei Repositories konfigurieren.
  • Artifact Registry-Connector-Repositories für die Authentifizierung bei ihren Upstream-Quellen konfigurieren .

Repository-Beschreibungen bearbeiten

Sie können die Repository-Beschreibung in der Cloud de Confiance Console oder der gcloud CLI ändern.

Console

  1. Öffnen Sie in der Cloud de Confiance console die Seite Repositories.

    Zur Seite „Repositories“

  2. Wählen Sie in der Repository-Liste das Repository aus und klicken Sie auf Repository bearbeiten.

  3. 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 Cloud de Confiance by S3NS Projekt-ID. Wenn dieses Flag weggelassen wird, wird das aktuelle oder Standardprojekt verwendet.
  • LOCATION ist der regionale Speicherort des Repositorys. 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 in einem bestimmten Cloud de Confiance Projekt und an einem bestimmten Speicherort 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 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 Speicherort aufzurufen:

gcloud artifacts vpcsc-config describe \
    --project=PROJECT_ID \
    --location=LOCATION

Mit dem folgenden Befehl rufen Sie beispielsweise die Einstellungen für Connector-Repositories in us-east1 im Projekt my-project auf:

gcloud artifacts vpcsc-config describe \
    --project=my-project \
    --location=us-east1

Zugriff auf Upstream-Quellen zulassen

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 wird beispielsweise allen Connector-Repositories in us-east1 im Projekt my-project der Zugriff auf ihre Upstream-Quellen außerhalb des Perimeters erlaubt:

gcloud artifacts vpcsc-config allow \
    --project=my-project \
    --location=us-east1

Zugriff auf Upstream-Quellen verweigern

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 wird beispielsweise der Zugriff auf Upstream-Quellen außerhalb des Perimeters für alle Connector-Repositories in us-west1 im Projekt my-project blockiert:

gcloud artifacts vpcsc-config deny \
    --project=my-project \
    --location=us-west1

Nächste Schritte