Créer des dépôts de connecteurs

Les dépôts de connecteurs agissent comme des proxys pour les sources en amont et permettent de s'assurer que toutes les requêtes sont gérées par la source en amont. Contrairement aux dépôts distants, les dépôts de connecteurs ne mettent pas en cache les artefacts. Par conséquent, les dépôts de connecteurs sont utiles si vous avez besoin d'une auditabilité complète des sources en amont ou si vous devez respecter des règles tierces qui empêchent la mise en cache des artefacts.

Cette page explique comment créer des dépôts de connecteurs Artifact Registry.

Formats de connecteurs compatibles

Artifact Registry n'est compatible qu'avec les dépôts de connecteurs au format Docker.

Avant de commencer

  1. Activez l'API Artifact Registry, et installez Google Cloud CLI.
  2. Facultatif : configurez des valeurs par défaut pour les commandes gcloud CLI.
  3. Si vous avez besoin de clés de chiffrement gérées par le client (CMEK) pour chiffrer le contenu du dépôt, alors créez et activez une clé dans Cloud KMS pour le dépôt.
  4. Activer l'API Secret Manager

    gcloud services enable secretmanager.googleapis.com \
        --project=PROJECT_ID
    
  5. Si Artifact Registry se trouve dans un périmètre de service VPC Service Controls, activez l'API Access Context Manager si elle n'est pas déjà activée.

    gcloud services enable accesscontextmanager.googleapis.com \
        --project=PROJECT_ID
    

Rôles requis

Pour obtenir les autorisations nécessaires pour gérer les dépôts, demandez à votre administrateur de vous accorder les rôles IAM suivants :

  • Créer des dépôts de connecteurs et accorder l'accès à des dépôts individuels: Administrateur Artifact Registry (roles/artifactregistry.admin) sur le projet
  • Enregistrer les identifiants de votre dépôt en amont dans une version secrète: Administrateur Secret Manager (roles/secretmanager.admin) sur le projet
  • Accorder l'accès à des sources en amont en dehors d'un périmètre de service VPC Service Controls : Éditeur Access Context Manager (roles/accesscontextmanager.policyEditor) sur l'organisation de la ressource où la règle d'accès est appliquée

Pour en savoir plus sur l'attribution de rôles, consultez Gérer l'accès aux projets, aux dossiers et aux organisations.

Vous pouvez également obtenir les autorisations requises via des rôles personnalisés ou d'autres rôles prédéfinis.

Créer un dépôt de connecteurs

Lorsque vous créez un dépôt de connecteurs, vous devez configurer les paramètres suivants, qui ne peuvent pas être modifiés une fois le dépôt créé :

  • Le format d'artefact, qui ne peut être que Docker.
  • Le mode de dépôt défini sur "connecteur".
  • La source en amont du dépôt de connecteurs.
  • Emplacement du dépôt .
  • Le chiffrement avec Google Cloud-powered encryption keys ou des clés de chiffrement gérées par le client. Par défaut, Artifact Registry utilise Google Cloud-powered encryption keys .

Artifact Registry applique des contraintes de règles d'administration qui nécessitent que CMEK chiffre les ressources ou limite les clés Cloud KMS pouvant être utilisées pour la protection CMEK.

Console

  1. Ouvrez la page Dépôts dans la Cloud de Confiance console.

    Ouvrir la page "Dépôts"

  2. Cliquez sur Créer un dépôt.

  3. Spécifiez le nom du dépôt. Pour chaque emplacement de dépôt d'un projet, les noms de dépôt doivent être uniques.

  4. Dans la section Format, sélectionnez Docker.

  5. Dans la section Mode de dépôt, sélectionnez Connecteur.

  6. Dans la section Source du dépôt de connecteurs, sélectionnez l'une des options suivantes :

    • Docker Hub : le connecteur utilise Docker Hub (https://docker.io) comme dépôt en amont.
    • Personnalisé : le connecteur utilise une autre URL Docker en amont pour le dépôt en amont.
  7. Si vous sélectionnez Personnalisé, saisissez l'URL complète du dépôt dans le champ Dépôt personnalisé. L'URL ne peut pas être modifiée une fois le dépôt créé.

    Pour obtenir des exemples d'URL en amont courantes, consultez la section Sources en amont personnalisées.

  8. Dans la section Mode d'authentification du dépôt de connecteurs, saisissez les informations suivantes :

    1. Un nom d'utilisateur pour votre dépôt en amont.
    2. Un secret pour stocker vos identifiants dans Secret Manager.

    Vous pouvez modifier ces valeurs après avoir créé le dépôt.

  9. Dans la section Type d'emplacement, sélectionnez l'emplacement du dépôt :

    1. Choisissez le type d'emplacement : régional ou multirégional. La liste des emplacements change pour refléter votre sélection.

    2. Dans la liste Région ou Multirégional, sélectionnez un emplacement.

    Pour en savoir plus sur les types d'emplacement et les emplacements compatibles, consultez la section Emplacements des dépôts.

  10. Ajoutez une description pour le dépôt. Les descriptions vous aident à identifier l'objectif du dépôt et le type d'artefacts qu'il contient.

    N'incluez pas de données sensibles, car les descriptions des dépôts ne sont pas chiffrées.

  11. Si vous souhaitez utiliser des libellés pour organiser vos dépôts, cliquez sur Ajouter un libellé et saisissez la paire clé-valeur du libellé. Vous pouvez ajouter, modifier ou supprimer des libellés après avoir créé le dépôt.

  12. Dans la section Chiffrement, choisissez le mécanisme de chiffrement du dépôt.

    • Google Cloud-powered encryption key : chiffre le contenu du dépôt à l'aide d'une clé Google Cloud-powered encryption key.
    • Clé gérée par le client : chiffre le contenu du dépôt à l'aide d'une clé que vous contrôlez via Cloud Key Management Service. Pour obtenir des instructions sur la configuration de la clé, consultez la page Configurer des CMEK pour les dépôts.
  13. Dans la section Artifact Analysis, choisissez les paramètres d'analyse des failles :

    • Activé : autorise l'analyse dans ce dépôt. L'API Container Scanning doit être activée dans votre projet.

      La facturation commence immédiatement après l'activation de l'API Container Scanning. Une fois l'API Container Scanning activée dans un projet, l'analyse des failles est activée pour tous les dépôts nouveaux et existants. Lorsque vous transférez une image vers Artifact Registry, elle est automatiquement analysée par Artifact Analysis.

    • Désactivé : empêche l'analyse dans ce dépôt. Si l'API Container Scanning est activée dans votre projet, l'analyse se poursuit sur d'autres dépôts. Ce dépôt sera exclu.

      Pour en savoir plus sur les options d'analyse des failles, consultez Activer et désactiver l'analyse automatique.

  14. Cliquez sur Créer.

Artifact Registry crée le dépôt et l'ajoute à la liste des dépôts.

gcloud CLI

Pour créer un dépôt de connecteurs, exécutez la commande permettant de créer un dépôt de connecteurs Docker ou un dépôt de connecteurs personnalisé.

  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" \

L'option --mode=connector-repository est requise pour définir le dépôt comme dépôt de connecteurs. L'option --repository-format doit être docker.

Remplacez les éléments suivants :

  • CONNECTOR-REPOSITORY-NAME : nom du dépôt Pour chaque emplacement de dépôt d'un projet, les noms de dépôt doivent être uniques.
  • PROJECT_ID : ID du projet Si cette option est ignorée, le projet en cours ou par défaut est utilisé.
  • LOCATION : emplacement régional ou multirégional du dépôt Vous pouvez ignorer cette option si vous définissez une valeur par défaut. Pour afficher la liste des emplacements acceptés, exécutez la commande gcloud artifacts locations list.
  • DESCRIPTION : facultatif Description du dépôt de connecteurs N'incluez pas de données sensibles, car les descriptions des dépôts ne sont pas chiffrées.
  • UPSTREAM-NAME: nom en amont prédéfini ou URL définie par l'utilisateur du dépôt en amont
  • USERNAME : facultatif Votre nom d'utilisateur pour vous authentifier auprès du dépôt en amont
  • PASSWORD : facultatif Version secrète contenant le mot de passe de votre dépôt en amont

Par exemple, la commande suivante crée un dépôt de connecteurs nommé my-connector-repo, qui connecte un dépôt Jfrog en amont à le Cloud de Confiance projet my-project. L'URL complète du dépôt en amont est 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

Pour en savoir plus sur l'authentification auprès des dépôts en amont, consultez Authentifier les dépôts de connecteurs auprès des sources en amont.

Terraform

Utilisez la ressource google_artifact_registry_repository pour créer des dépôts. terraform-provider-google version 5.0.0 ou ultérieure est requise.

Si vous débutez avec Terraform pour Cloud de Confiance by S3NS, consultez la page Premiers pas Cloud de Confiance by S3NS sur le site Web de HashiCorp.

L'exemple suivant définit le fournisseur et un dépôt de connecteurs avec le Terra nom de ressource my-repo.

```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.

Une fois le dépôt créé, procédez comme suit :

Modifier les descriptions des dépôts

Vous pouvez modifier la description du dépôt à partir de Cloud de Confiance console ou de la gcloud CLI.

Console

  1. Ouvrez la page Dépôts dans la Cloud de Confiance console.

    Ouvrir la page "Dépôts"

  2. Dans la liste des dépôts, sélectionnez le dépôt, puis cliquez sur Modifier le dépôt.

  3. Modifiez la description du dépôt, puis cliquez sur Enregistrer.

gcloud

Pour mettre à jour la description du dépôt, exécutez la commande suivante :

gcloud artifacts repositories update REPOSITORY \
    --project=PROJECT \
    --location=LOCATION \
    --description="DESCRIPTION"

Remplacez les éléments suivants :

  • REPOSITORY : nom du dépôt Si vous avez configuré un dépôt par défaut, vous pouvez omettre cet indicateur pour utiliser le dépôt par défaut.
  • PROJECT : ID du projet Cloud de Confiance by S3NS Si cette option est ignorée, le projet en cours ou par défaut est utilisé.
  • LOCATION est l'emplacement régional du dépôt. Utilisez cette option pour afficher les dépôts dans un emplacement spécifique. Si vous avez configuré un emplacement par défaut, vous pouvez omettre cette option pour utiliser la valeur par défaut.
  • DESCRIPTION : description du dépôt

Accès aux sources en amont dans un périmètre de service

Les services d'un périmètre de service VPC Service Controls ont un accès limité aux ressources en dehors du périmètre.

Vous pouvez autoriser ou refuser l'accès aux sources en amont dans un projet et un emplacement spécifiés Cloud de Confiance .

Par défaut, Artifact Registry refuse l'accès aux sources en amont si vous ne l'avez pas explicitement accordé.

Pour Artifact Registry, le rôle requis est Administrateur Artifact Registry (roles/artifactregistry.admin).

Afficher les paramètres des sources en amont

Pour afficher la configuration d'une combinaison spécifique de projet et d'emplacement, exécutez la commande suivante :

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

Par exemple, utilisez la commande suivante pour afficher les paramètres des dépôts de connecteurs dans us-east1 du projet my-project :

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

Autoriser l'accès aux sources en amont

Pour autoriser l'accès aux sources en amont dans un emplacement spécifié, exécutez la commande suivante :

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

Par exemple, utilisez la commande suivante pour autoriser tous les dépôts de connecteurs de us-east1 dans le projet my-project à accéder à leurs sources en amont en dehors du périmètre :

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

Refuser l'accès aux sources en amont

Pour refuser l'accès aux sources en amont dans un emplacement spécifié, exécutez la commande suivante :

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

Par exemple, utilisez la commande suivante pour bloquer l'accès aux sources en amont en dehors du périmètre pour tous les dépôts de connecteurs de us-west1 dans le projet my-project :

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

Étape suivante