Créer des dépôts

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

Avant de commencer

  1. Activer Artifact Registry, y compris en activant l'API Artifact Registry et en installant Google Cloud CLI
  2. (Facultatif) Configurez des valeurs par défaut pour les commandes gcloud.
  3. Vous devez disposer du rôle Administrateur Artifact Registry ou d'un rôle disposant des autorisations équivalentes.

Présentation

Vous devez créer un dépôt avant de pouvoir importer des artefacts. Chaque dépôt peut contenir des artefacts pour un seul format compatible.

L'ensemble du contenu du dépôt est chiffré à l'aide de clés de chiffrement gérées par le client ou par Google. Artifact Registry utilise les clés de chiffrement gérées par Google par défaut, et aucune configuration n'est requise pour cette option.

Artifact Registry est compatible avec les règles d'administration CMEK qui peuvent exiger la protection CMEK et peuvent limiter les CryptoKeys Cloud KMS pouvant être utilisées pour la protection CMEK.

Pour en savoir plus sur la gestion des dépôts existants, consultez les informations suivantes:

Configurer des CMEK pour les dépôts

Par défaut, Google Cloud chiffre automatiquement les données au repos à l'aide de clés de chiffrement gérées par Google que vous gérez dans Cloud Key Management Service (KMS). Si vous avez des exigences réglementaires ou de conformité spécifiques concernant les clés qui protègent vos données, vous pouvez créer des dépôts utilisant des clés de chiffrement gérées par le client (CMEK) pour chiffrer le contenu du dépôt.

Avant de créer un dépôt que vous souhaitez chiffrer avec CMEK, vous devez créer et activer une clé dans Cloud KMS. Vous pouvez ensuite attribuer la clé au dépôt lors de sa création.

Vous ne pouvez pas modifier le mécanisme de chiffrement d'un dépôt existant. Si vous disposez d'un dépôt chiffré par CMEK, vous ne pouvez pas remplacer le mécanisme de chiffrement par le chiffrement par défaut de Google, ni attribuer une autre clé Cloud KMS pour le chiffrement.

Présentation

Lorsque vous créez un dépôt, vous devez choisir les paramètres suivants :

Vous ne pouvez pas modifier ces paramètres après avoir créé le dépôt.

Le tableau suivant récapitule les formats d'artefact disponibles, le dépôt correspondant au format et la valeur à utiliser pour créer le dépôt avec Google Cloud CLI.

Artefact Format du dépôt paramètre gcloud
Images de conteneurs ou charts Helm Docker docker
Packages Java Maven maven
Packages Node.js npm npm
Packages Python Python python
Packages Debian APT apt
Packages RPM Yum yum
Modèles de pipeline Kubeflow Kubeflow Pipelines kfp

Créer et configurer des dépôts

Pour créer et configurer un dépôt :

  1. Si vous utilisez CMEK pour chiffrer les données du dépôt, créez la clé que vous utiliserez avec ce dépôt et accordez les autorisations requises pour utiliser la clé. Consultez l'article Activer des clés de chiffrement gérées par le client.

  2. Ajoutez le dépôt.

    Console

    1. Ouvrez la page Dépôts dans la 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. Spécifiez le format du dépôt.

    5. Si vous créez un dépôt Maven, configurez la règle de version du dépôt.

      1. Choisissez une règle de version:

        • Aucune : aucune règle de version. Stocker les packages de version et d'instantané
        • Release : permet de stocker uniquement les packages de versions.
        • Instantané : ne stocke que les packages d'instantanés.
      2. Si vous souhaitez qu'un dépôt d'instantanés accepte les instantanés non uniques qui écrasent les versions existantes dans le dépôt, sélectionnez Autoriser le remplacement des instantanés.

    6. Sous 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'emplacements et les emplacements compatibles, consultez la page Emplacements des dépôts

    7. Ajoutez une description pour le dépôt. Les descriptions 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 du dépôt ne sont pas chiffrées.

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

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

      • Clé gérée par Google : chiffrez le contenu du dépôt avec une clé de chiffrement gérée par Google.
      • 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.
    10. Cliquez sur Créer.

    gcloud

    Exécutez la commande pour créer un dépôt.

    gcloud artifacts repositories create REPOSITORY \
        --repository-format=FORMAT \
        [--location=LOCATION] \
        [--description="DESCRIPTION"] \
        [--kms-key=KMS-KEY] \
        [--async] \
    
    • REPOSITORY est 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.
    • FORMAT est le format du dépôt.
    • LOCATION est l'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 suivante :

      gcloud artifacts locations list
      
    • DESCRIPTION est une description du dépôt. N'incluez pas de données sensibles, car les descriptions du dépôt ne sont pas chiffrées.

    • KMS-KEY est le chemin d'accès complet à la clé de chiffrement Cloud KMS, si vous utilisez une clé de chiffrement gérée par le client pour chiffrer le contenu du dépôt. Le chemin est au format suivant :

      projects/KMS-PROJECT/locations/KMS-LOCATION/keyRings/KEY-RING/cryptoKeys/KEY
      

      Où :

      • KMS-PROJECT est le projet dans lequel votre clé est stockée.
      • KMS-LOCATION correspond à l'emplacement de la clé.
      • KEY-RING correspond au nom du trousseau de clés.
      • KEY correspond au nom de la clé.
    • --async renvoie immédiatement une réponse, sans attendre la fin de l'opération en cours.

    Par défaut, les dépôts Maven stockent les versions d'instantané et de version des packages. Si vous souhaitez stocker des instantanés et des versions dans différents dépôts, spécifiez la règle de version du dépôt lorsque vous le créez.

    gcloud artifacts repositories create REPOSITORY \
        --repository-format=FORMAT \
        [--location=LOCATION] \
        [--description="DESCRIPTION"] \
        [--kms-key=KMS-KEY] \
        [--version-policy=VERSION-POLICY] \
        [--allow-snapshot-overwrites] \
        [--async] \
    

    Les options suivantes sont spécifiques aux dépôts Maven:

    --version-policy=VERSION-POLICY
    Spécifie les types de packages à stocker dans le dépôt. Vous pouvez définir VERSION-POLICY sur :
    • None : aucune règle de version. Stocker les packages de version et d'instantané Si vous n'incluez pas l'option --version-policy dans votre commande, il s'agit du paramètre par défaut.
    • Release - Stocke uniquement les packages de version.
    • Snapshot : ne stocke que les packages d'instantanés.
    --allow-snapshot-overwrites

    Pour les dépôts d'instantanés uniquement. Si vous spécifiez cette option, vous pouvez publier des instantanés non uniques qui écrasent les versions existantes dans le dépôt.

    Terraform

    Utilisez la version bêta de la ressource google_artefact_registry_repository pour créer des dépôts.

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

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

    provider "google" {
        project = "PROJECT-ID"
    }
    
    resource "google_artifact_registry_repository" "my-repo" {
      provider = google-beta
    
      location = "LOCATION"
      repository_id = "REPOSITORY"
      description = "DESCRIPTION"
      format = "FORMAT"
      kms_key_name = "KEY"
    }
    

    • PROJECT-ID est l'ID du projet Google Cloud.
    • REPOSITORY est le nom du dépôt.
    • LOCATION est l'emplacement du dépôt.
    • DESCRIPTION est la description facultative du dépôt. N'incluez pas de données sensibles, car les descriptions du dépôt ne sont pas chiffrées.
    • FORMAT est le format du dépôt.

      • DOCKER
      • KFP
      • MAVEN
      • GPR
      • PYTHON
      • APT
      • YUM
    • KEY est le nom de la clé Cloud Key Management Service si vous utilisez des clés de chiffrement gérées par le client (CMEK) pour le chiffrement. Omettez cet argument pour utiliser le paramètre par défaut, à savoir les clés de chiffrement gérées par Google.

    Pour les dépôts Maven uniquement, vous pouvez spécifier une règle de version pour le dépôt à l'aide d'un bloc maven_config. Ce bloc accepte les paramètres suivants:

    • version_policy définit la règle de version avec l'une des valeurs suivantes :
      • VERSION_POLICY_UNSPECIFIED : stocker l'instantané et les versions Il s'agit du paramètre par défaut.
      • VERSION: uniquement pour les packs de version.
      • INSTANTANÉ: Stockez uniquement les packages d'instantanés.
    • allow_snapshot_overwrites configure un dépôt avec une règle de version SNAPSHOT pour accepter les instantanés non uniques qui écrasent les versions existantes dans le dépôt.

    L'exemple suivant définit un dépôt Maven avec une stratégie de version de version.

    provider "google" {
      project = "my-project"
    }
    
    resource "google_artifact_registry_repository" "my-repo" {
      provider = google-beta
    
      location = "us-central1"
      repository_id = "my-repo"
      description = "Maven repository"
      format = "MAVEN"
      maven_config {
        version_policy = "RELEASE"
      }
    }
    
  3. Accordez des autorisations pour accéder au dépôt.

    Si vous avez attribué des rôles Artifact Registry au niveau du projet, ils sont hérités par les dépôts du projet. Si vous souhaitez que les membres de l'équipe aient différents niveaux d'accès aux dépôts de votre projet, attribuez des rôles au niveau du dépôt.

  4. Pour interagir avec les dépôts de Docker ou des gestionnaires de packages, vous devez configurer l'authentification pour ces outils. Consultez la page appropriée :

Mettre à jour les descriptions du dépôt

Vous pouvez mettre à jour la description d'un dépôt existant à l'aide de la commande suivante :

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

WHERE

  • REPOSITORY est le nom du dépôt. Si vous avez configuré un dépôt par défaut, vous pouvez ignorer cette option et utiliser le dépôt par défaut.
  • PROJECT est l'ID du projet Google Cloud. Si cette option est ignorée, le projet en cours ou par défaut est utilisé.
  • LOCATION est un emplacement régional ou multirégional. 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 est une description du dépôt.

Pour plus d'informations sur la commande, exécutez la commande suivante :

 gcloud artifacts repositories update --help

Étapes suivantes