Passer aux dépôts standards

Si vous utilisez actuellement Container Registry pour gérer vos images de conteneur, cette page explique comment configurer un dépôt Artifact Registry standard et comment l'utilisation des dépôts diffère de Container Registry.

Ces instructions sont principalement destinées aux administrateurs de dépôts. Pour en savoir plus en quoi la création, le transfert, l'extraction et le déploiement d'images ont changé, consultez les informations suivantes:

Avant de commencer

  1. Activez l'API Artifact Registry depuis la console Google Cloud ou avec la commande suivante :

    gcloud services enable artifactregistry.googleapis.com
    
  2. Installez la CLI gcloud si ce n'est pas déjà fait. Pour une installation existante, exécutez la commande suivante pour mettre à jour les composants vers les dernières versions :

    gcloud components update
    
  3. En savoir plus sur les tarifs d'Artifact Registry avant de commencer la transition.

Rôles requis

Pour obtenir les autorisations nécessaires pour configurer des dépôts gcr.io, demandez à votre administrateur de vous accorder les rôles IAM suivants sur le projet Google Cloud :

  • Pour créer des dépôts Artifact Registry et accorder l'accès à des dépôts individuels: Administrateur Artifact Registry (roles/artifactregistry.admin)
  • Pour afficher et gérer la configuration Container Registry existante appliquée aux buckets de stockage Cloud Storage : Storage Admin (roles/storage.admin)
  • Pour accorder l'accès au dépôt au niveau du projet: Administrateur de projet IAM (roles/resourcemanager.projectIamAdmin) ou un rôle comprenant des autorisations équivalentes, comme Administrateur de dossier (roles/resourcemanager.folderAdmin) ou Administrateur de l'organisation (roles/resourcemanager.organizationAdmin)

Pour en savoir plus sur l'attribution de rôles, consultez la page 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.

Présentation

Les dépôts standards sont des dépôts Artifact Registry standards compatibles avec toutes les fonctionnalités.

Par souci de simplicité, les instructions de cette page partent du principe que Container Registry et Artifact Registry se trouvent dans le même projet Google Cloud. Vous pouvez continuer à utiliser les deux services pendant la transition vers Artifact Registry afin de pouvoir effectuer progressivement les étapes de configuration et mettre à jour l'automatisation. Si nécessaire, vous pouvez configurer Artifact Registry dans un projet distinct et effectuer les mêmes étapes globales.

Artifact Registry propose également des dépôts gcr.io. Ces dépôts peuvent rediriger le trafic gcr.io à partir de vos registres existants aux dépôts Artifact Registry correspondants. Ils fournissent certaines rétrocompatible avec Container Registry, mais ils ont aussi des fonctionnalités Limites. Toutefois, si vous avez beaucoup de configurations d'outils, de scripts ou de code avec des références gcr.io, une approche plus tactique peut être nécessaire pour passer à Artifact Registry. Consultez la documentation de transition pour les dépôts avec prise en charge du domaine gcr.io pour vous aider à prendre une décision appropriée.

Étapes de transition

Ce guide vous explique comment effectuer les étapes suivantes:

  1. Créer un dépôt Docker pour vos conteneurs. Vous devez créer un dépôt pour pouvoir y transférer des images.
  2. Accorder des autorisations sur le dépôt.
  3. Configurer l'authentification afin de pouvoir vous connecter au nouveau dépôt.
  4. Si nécessaire, copiez des images à partir de Container Registry. que vous souhaitez utiliser dans votre nouveau dépôt.
  5. Essayer de transférer et récupérer vos conteneurs.
  6. Essayer de déployer vos images dans un environnement d'exécution.
  7. Configurer des fonctionnalités supplémentaires.
  8. Nettoyez les images dans Container Registry une fois la transition terminée.

Créer des dépôts

Container Registry crée automatiquement un bucket de stockage dans un emplacement multirégional si vous n'y avez pas encore stocké d'image.

Dans Artifact Registry, vous devez créer un dépôt avant de pouvoir importer des images. Lorsque vous créez un dépôt, vous devez spécifier les éléments suivants :

  • Le format du dépôt. Artifact Registry stocke les conteneurs dans des dépôts Docker.
  • Un emplacement régional ou multirégional pour le dépôt.

    Lorsque vous choisissez un emplacement pour vos dépôts Artifact Registry, tenez compte de la proximité des dépôts avec votre autre infrastructure et vos utilisateurs. Si vous envisagez de copier des images depuis Container Registry vers Artifact Registry, les différences d'emplacement peuvent avoir une incidence sur le coût de la copie.

  • Une clé Cloud Key Management Service, si vous utilisez des clés de chiffrement gérées par le client (CMEK) pour le chiffrement.

    Dans Container Registry, vous configurez le bucket de stockage Container Registry pour qu'il utilise des CMEK. Dans Artifact Registry, vous configurez les dépôts pour qu'ils utilisent des CMEK lors de leur création. Pour en savoir plus sur l'utilisation des CMEK avec Artifact Registry, consultez la section Activer les clés de chiffrement gérées par le client.

Container Registry héberge les conteneurs sur le domaine gcr.io. Artifact Registry héberge les conteneurs sur le domaine pkg.dev.

Pour en savoir plus sur la création de dépôts, notamment les dépôts qui utilisent des CMEK pour le chiffrement, consultez la page Créer des dépôts.

Octroyer des autorisations

Container Registry utilise des rôles Cloud Storage pour contrôler les accès. Artifact Registry dispose de ses propres rôles IAM. Ces rôles séparent plus clairement les rôles de lecture, d'écriture et d'administration de dépôt que Container Registry.

Pour mapper rapidement les autorisations existantes accordées sur les buckets de stockage avec les autorisations suggérées, Pour les rôles Artifact Registry, utilisez l'outil de mappage des rôles.

Vous pouvez également afficher la liste des comptes principaux ayant accès à l'espace de stockage à l'aide de la console Google Cloud.

  1. Dans la console Google Cloud, accédez à la page Buckets Cloud Storage.

    Accéder à la page "Buckets"

  2. Cliquez sur le bucket de stockage de l'hôte de registre que vous souhaitez afficher. Dans les noms des buckets, PROJECT-ID correspond à Google Cloud ID du projet.

    • gcr.io : artifacts.PROJECT-ID.appspot.com
    • asia.gcr.io : asia.artifacts.PROJECT-ID.appspot.com
    • eu.gcr.io : eu.artifacts.PROJECT-ID.appspot.com
    • us.gcr.io : us.artifacts.PROJECT-ID.appspot.com
  3. Cliquez sur l'onglet Autorisations.

  4. Dans l'onglet "Autorisations", cliquez sur le sous-onglet Afficher par rôle.

  5. Développez un rôle pour afficher les comptes principaux qui disposent de ce rôle.

La liste inclut les rôles IAM attribués directement sur le bucket et les rôles hérités du projet parent. Selon le rôle, vous pouvez choisir le rôle Artifact Registry le plus approprié à attribuer.

Cloud Storage et rôles de base

Accorder des autorisations aux utilisateurs et aux comptes de service qui ont actuellement accès à Container Registry avec un accès aux dépôts Artifact Registry. Pour les rôles Cloud Storage hérités du projet parent, vous devez vérifier que le principal utilise actuellement Container Registry. Certains principaux ne peuvent accéder qu'à d'autres buckets Cloud Storage sans rapport avec Container Registry.

Les rôles de base Propriétaire, Éditeur et Lecteur qui existaient avant les rôles IAM Accès limité aux buckets de stockage Ils n'offrent pas intrinsèquement tout l'accès à Cloud Storage aux ressources que leur nom implique et fournissent des autorisations supplémentaires pour d'autres services Google Cloud. Vérifiez les utilisateurs et les comptes de service qui ont besoin d'accéder à Artifact Registry, puis utilisez le tableau de mise en correspondance des rôles pour vous aider à attribuer les rôles appropriés si l'accès à Artifact Registry est approprié.

Le tableau suivant met en correspondance les rôles Artifact Registry en fonction des autorisations accordées par les rôles Cloud Storage prédéfinis pour l'accès à Container Registry. Artifact Registry les rôles fournissent une séparation supplémentaire des autorisations qui n'est pas disponible dans les rôles Cloud Storage prédéfinis.

Accès requis Rôle actuel Rôle Artifact Registry Où accorder le rôle
Extraire des images uniquement (lecture seule) Lecteur des objets Storage
(roles/storage.objectViewer)
Lecteur Artifact Registry
(roles/artifactregistry.reader)
Dépôt Artifact Registry ou projet Google Cloud
Transférer et extraire des images (lecture et écriture) Rédacteur des anciens buckets de l'espace de stockage
(roles/storage.legacyBucketWriter)
Rédacteur Artifact Registry
(roles/artifactregistry.writer)
Dépôt Artifact Registry ou projet Google Cloud
Transférer, extraire et supprimer des images Rédacteur des anciens buckets Storage
(roles/storage.legacyBucketWriter)
Administrateur de dépôt Artifact Registry
(roles/artifactregistry.repoAdmin)
Dépôt Artifact Registry ou projet Google Cloud
Créer, gérer et supprimer des dépôts Administrateur de l'espace de stockage
(roles/storage.admin)
Administrateur Artifact Registry
(roles/artifactregistry.Admin)
Projet Google Cloud
Rôles d'agent de service hérités du projet

Les comptes de service par défaut des services Google Cloud disposent de leurs propres rôles accordés au niveau du projet. Par exemple, l'agent de service de Cloud Run dispose du rôle "Agent de service Cloud Run".

Dans la plupart des cas, ces rôles d'agent de service contiennent des valeurs pour Container Registry et Artifact Registry, aucune modification supplémentaire n'est nécessaire si vous exécutez Artifact Registry dans le même projet que votre registre Container Registry existant Google Cloud.

Consultez la documentation de référence sur les rôles d'agent de service pour en savoir plus sur les autorisations dans les rôles d'agent de service.

Rôles personnalisés

Utilisez le tableau de mise en correspondance des rôles pour vous aider à choisir le rôle à attribuer aux utilisateurs ou aux comptes de service en fonction du niveau d'accès dont ils ont besoin.

Pour savoir comment attribuer des rôles Artifact Registry, consultez Configurer les rôles et les autorisations

S'authentifier dans le dépôt

Artifact Registry est compatible avec les mêmes méthodes d'authentification que Container Registry.

Si vous utilisez l'assistant d'identification Docker :

  • Vous devez utiliser la version 2.0 ou une version ultérieure pour interagir avec les dépôts Artifact Registry. La version autonome est disponible dans GitHub.
  • Vous devez configurer l'assistant d'identification avec les emplacements Artifact Registry que vous souhaitez utiliser. Par défaut, l'assistant d'identification configure uniquement l'accès aux hôtes Container Registry.

Pour en savoir plus sur la configuration de l'authentification, consultez la page Configurer l'authentification pour Docker.

Copier des conteneurs depuis Container Registry

Si vous souhaitez continuer à utiliser des conteneurs de Container Registry dans Artifact Registry, plusieurs options s'offrent à vous pour les copier. Pour obtenir des instructions détaillées, consultez la page Copier des images à partir de Container Registry.

Transférer et extraire des images

Les commandes Docker que vous utilisez pour ajouter des tags, transférer et extraire des images dans Artifact Registry sont semblables à celles que vous utilisez dans Container Registry. Il existe deux différences principales :

  • Le nom d'hôte des dépôts Docker Artifact Registry comprend un préfixe d'emplacement suivi de -docker.pkg.dev. Par exemple, il peut s'agir de australia-southeast1-docker.pkg.dev, europe-north1-docker.pkg.dev et europe-docker.pkg.dev.
  • Comme Artifact Registry accepte plusieurs dépôts Docker dans un même projet, vous devez spécifier le nom du dépôt dans les commandes.

Par exemple, dans Container Registry, cette commande transfère l'image my-image vers le registre eu.gcr.io du projet my-project.

docker push eu.gcr.io/my-project/my-image

Dans Artifact Registry, cette commande transfère l'image my-image vers le dépôt régional europe-north1-docker.pkg.dev du dépôt my-repo et du projet my-project.

docker push europe-north1-docker.pkg.dev/my-project/my-repo/my-image

Pour plus d'informations sur le transfert et l'extraction d'images dans Artifact Registry, consultez la section Transférer et extraire des images.

Déployer des images

Les comptes de service pour les intégrations Google Cloud courantes configurés avec des autorisations par défaut pour les dépôts même projet.

La création d'images et leur transfert dans un dépôt avec Cloud Build fonctionnent généralement de la même manière que pour Container Registry. La principale différence dans Artifact Registry réside dans le fait qu'un dépôt cible doit exister pour y transférer des images, y compris la première image que vous transférez.

Assurez-vous de créer les dépôts dont vous avez besoin avant d'exécuter des commandes qui transfèrent des images, y compris la commande Docker docker push et la commande Cloud Build gcloud builds submit.

Les compilateurs Cloud Build sont toujours hébergés sur gcr.io. Pour en savoir plus, consultez la page Intégrer à Cloud Build.

Autres caractéristiques

Cette section décrit la configuration d'autres fonctionnalités que vous avez peut-être configurées dans Container Registry.

Artifact Analysis

Artifact Analysis est compatible avec Container Registry et Artifact Registry. La documentation Artifact Analysis inclut les deux produits.

  • Les deux produits utilisent les mêmes API Artifact Analysis. Quand ? vous activez les API Artifact Analysis dans Container Registry ou Artifact Registry, les API sont activées pour les deux produits.
  • Les deux produits utilisent les mêmes sujets Pub/Sub pour Notifications Artifact Analysis
  • Vous pouvez continuer à utiliser gcloud container images. pour répertorier les notes et les occurrences associées aux chemins d'accès aux images gcr.io.
Container Registry Artifact Registry
Analyse les failles du système d'exploitation et des packages de langage à l'aide d'une analyse à la demande dans les images avec un OS compatible. L'analyse automatique ne renvoie que des informations sur les failles de l'OS. En savoir plus sur les types analyse.
Analyse à la demande
Analyse automatique
  • La commande Google Cloud CLI gcloud container images inclut des options permettant d'afficher les résultats des analyses, y compris les failles et autres métadonnées.
  • Les analyses renvoient uniquement des informations sur les failles du système d'exploitation pour les images Container Registry avec systèmes d'exploitation compatibles.
Analyse les failles des packages de système d'exploitation et de langue à la demande et l'analyse automatique. En savoir plus sur les types d'analyses
Analyse à la demande
Analyse automatique
  • La commande Google Cloud CLI gcloud les artefacts Docker images qui incluent des options permettant d'afficher les résultats des analyses ; y compris les failles et autres métadonnées.
  • Les analyses renvoient des informations sur les failles de l'OS pour les images d'Artifact Registry avec systèmes d'exploitation et packages de langage compatibles des informations sur les failles concernant les systèmes d'exploitation systèmes.

Notifications Pub/Sub

Artifact Registry publie les modifications apportées dans le même sujet gcr que Container Registry. Aucune configuration supplémentaire n'est requise si vous utilisez déjà Pub/Sub avec Container Registry dans le même projet qu'Artifact Registry.

Si vous configurez Artifact Registry dans un projet distinct, le sujet gcr peut ne pas exister. Pour obtenir des instructions de configuration, consultez la section Configurer les notifications Pub/Sub.

Périmètres de service

VPC Service Controls vous permet de configurer des périmètres de sécurité autour des ressources de vos services gérés par Google et de contrôler le déplacement des données au-delà des limites des périmètres.

Pour savoir comment procéder, consultez la section Sécuriser les dépôts dans un périmètre de service.

Nettoyer les images Container Registry

Lorsque vous êtes prêt à arrêter d'utiliser Container Registry, supprimez les en supprimant les buckets de stockage pour Container Registry.

Pour supprimer chaque bucket de stockage Container Registry:

Console

  1. Accédez à la page Cloud Storage de la console Google Cloud.
  2. Sélectionnez le bucket de stockage à supprimer. Dans les noms des buckets, PROJECT-ID correspond à votre ID de projet Google Cloud.

    • gcr.io: artifacts.PROJECT-ID.appspot.com
    • asia.gcr.io : asia.artifacts.PROJECT-ID.appspot.com
    • eu.gcr.io : eu.artifacts.PROJECT-ID.appspot.com
    • us.gcr.io : us.artifacts.PROJECT-ID.appspot.com
  3. Cliquez sur Supprimer. Une boîte de dialogue de confirmation s'affiche.

  4. Pour confirmer la suppression, saisissez le nom du bucket, puis cliquez sur Supprimer.

gcloud

Si vous voulez supprimer de manière groupée cent mille images ou plus d'un bucket, évitez d'utiliser la gcloud CLI, car le processus de suppression prend beaucoup de temps et le temps d'exécution. Utilisez plutôt la console Google Cloud pour effectuer l'opération. Pour en savoir plus, consultez la section Supprimer des objets Cloud Storage de manière groupée.

Pour supprimer un bucket, utilisez la méthode gcloud storage rm avec l'option --recursive.

gcloud storage rm gs://BUCKET-NAME --recursive

Remplacez BUCKET-NAME par l'espace de stockage Container Registry nom du bucket. Dans les noms des buckets, PROJECT-ID correspond à votre ID de projet Google Cloud.

  • gcr.io: artifacts.PROJECT-ID.appspot.com
  • asia.gcr.io : asia.artifacts.PROJECT-ID.appspot.com
  • eu.gcr.io : eu.artifacts.PROJECT-ID.appspot.com
  • us.gcr.io: us.artifacts.PROJECT-ID.appspot.com

La réponse est semblable à ceci :

Removing gs://artifacts.my-project.appspot.com/...

Si d'autres services Google Cloud s'exécutent dans le même environnement Google Cloud dans votre projet, laissez l'API Container Registry activée. Si vous essayez de désactivez l'API Container Registry. Container Registry affiche un avertissement si d'autres services avec un sont activées dans le projet. La désactivation de l'API Container Registry désactive automatiquement tous les services du même projet avec une dépendance configurée, même si vous n'utilisez pas actuellement Container Registry avec ces services.

Étape suivante