Créer des dépôts distants

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

Les dépôts distants stockent les artefacts des sources en amont suivantes:

  • Dépôts Artifact Registry standards.
  • Sources externes telles que Docker Hub, Maven Central, l'indice des paquets Python (PyPI), Debian ou CentOS

Un dépôt distant agit en tant que proxy pour la source en amont afin que vous ayez plus de contrôle sur vos dépendances. La première fois que vous demandez une version d'un package, Artifact Registry le télécharge et le met en cache dans le dépôt distant. La prochaine fois que vous demanderez la même version de package, Artifact Registry fournira la copie mise en cache.

Si vous demandez un artefact à partir d'une source en amont qui n'existe pas ou qui ne contient pas la version que vous avez spécifiée, la requête échoue.

Les autres modes de dépôt sont les suivants:

  • Standard: mode de dépôt par défaut. Vous mettez en ligne ou publiez des artefacts tels que des packages privés directement dans des dépôts standards. Bien que vous puissiez télécharger directement à partir de dépôts standards individuels, l'accès à des groupes de dépôts avec un dépôt virtuel simplifie la configuration de l'outil.
  • Virtuel: dépôt qui sert de point d'accès unique à plusieurs dépôts en amont, y compris des dépôts distants et standards.

Pour en savoir plus sur le fonctionnement des dépôts distants, consultez la section Présentation des dépôts distants.

Avant de commencer

  1. Activez Artifact Registry, ce qui inclut l'activation de l'API Artifact Registry et l'installation de la Google Cloud CLI.
  2. Facultatif: configurez des valeurs par défaut pour les commandes de la CLI gcloud.
  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, créez et activez une clé dans Cloud KMS pour le dépôt.
  4. Si vous souhaitez vous authentifier auprès d'un dépôt en amont, activez 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
    
  6. Si vous souhaitez définir un dépôt Artifact Registry comme source et qu'il se trouve dans un projet différent de votre dépôt distant, vous devez accorder au compte de service du projet de dépôt distant l'accès au projet de dépôt en amont avant de créer le dépôt distant.

    Attribuer le rôle d'agent de service

    Les dépôts distants utilisent l'agent de service Artifact Registry pour s'authentifier auprès des dépôts en amont d'Artifact Registry. Vous devez accorder à l'agent de service du dépôt distant un accès en lecture au dépôt en amont.

    Pour accorder au service agent du dépôt distant le rôle d'agent de service Artifact Registry sur le dépôt en amont, exécutez la commande suivante:

    
      gcloud projects add-iam-policy-binding UPSTREAM_REPOSITORY \
          --member serviceAccount:service-REMOTE_PROJECT_NUMBER@gcp-sa-artifactregistry.iam.gserviceaccount.com \
          --location=REGION \
          --project=UPSTREAM_PROJECT_ID \
          --role roles/artifactregistry.serviceAgent
      

    Remplacez les éléments suivants :

    • UPSTREAM_REPOSITORY est l'ID du dépôt en amont. Les dépôts en amont d'Artifact Registry doivent être des dépôts en mode standard.
    • REMOTE_PROJECT_NUMBER est le numéro de projet du projet Google Cloud pour votre dépôt distant.
    • REMOTE_PROJECT_ID est l'ID du projet Google Cloudpour votre dépôt distant.
    • REGION est la région dans laquelle vous souhaitez créer votre dépôt distant.
    • UPSTREAM_PROJECT_ID est l'ID du projet Google Cloudavec le dépôt en amont.

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 distants et accorder l'accès à des dépôts individuels : Administrateur d'Artifact Registry (roles/artifactregistry.admin) sur le projet
  • Enregistrez les identifiants de votre dépôt en amont dans une version de secret : Administrateur Secret Manager (roles/secretmanager.admin) sur le projet
  • Accordez l'accès aux sources en amont en dehors d'un périmètre de service VPC Service Controls : Éditeur Access Context Manager (roles/accesscontextmanager.policyEditor) sur le projet, le dossier ou l'organisation auxquels la règle d'accès s'applique.

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.

Créer un dépôt distant

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

  • Format de l'artefact
  • Mode du dépôt défini sur "Distant".
  • Source en amont du dépôt distant.
  • Emplacement du dépôt.
  • Chiffrement avec des Google-owned and Google-managed encryption keys clés de chiffrement ou des clés de chiffrement gérées par le client. Artifact Registry utiliseGoogle-owned and Google-managed encryption keys par défaut.

Artifact Registry applique les contraintes des règles d'administration qui exigent que CMEK chiffre les ressources ou limitent les clés Cloud KMS utilisables pour la protection CMEK.

Créer un dépôt distant à l'aide de la console Google Cloud

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

    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 le format du dépôt.

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

  6. Dans la section Source de dépôt distant, sélectionnez l'une des méthodes suivantes pour saisir l'URL de votre dépôt en amont:

    • Sélectionnez la source en amont prédéfinie listée pour votre type de format.
    • Sélectionnez Personnalisé pour spécifier l'URL complète d'un dépôt public ou privé pour les formats compatibles.
    • Sélectionnez Dépôt Artifact Registry pour sélectionner un dépôt Artifact Registry standard.
  7. Si vous avez sélectionné 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. Si vous avez sélectionné Dépôt Artifact Registry:

    1. Dans le champ Dépôt Artifact Registry, saisissez le nom complet du dépôt que vous souhaitez utiliser comme source ou cliquez sur Parcourir pour afficher la liste des dépôts auxquels vous avez accès. Seuls les dépôts du même format que votre dépôt distant sont listés.
    2. Cliquez sur le nom du dépôt que vous souhaitez utiliser comme source.
    3. Cliquez sur Sélectionner.
  9. Si vous avez sélectionné l'un des flux en amont prédéfinis ou saisi une URL complète à l'aide du bouton Personnalisé, dans le champ Mode d'authentification du dépôt distant, choisissez l'une des options suivantes:

    • Authentifié: pour saisir votre nom d'utilisateur et votre secret afin de vous authentifier auprès de votre dépôt en amont.
    • Non authentifié: pour ignorer l'authentification auprès du dépôt en amont.
  10. Si vous avez sélectionné Authentifié, saisissez les informations suivantes:

    • Dans le champ Nom d'utilisateur, saisissez votre nom d'utilisateur pour le dépôt en amont.
    • Dans le champ Secret, saisissez la version du secret dans laquelle vous avez enregistré votre mot de passe pour le dépôt en amont.

    Vous pouvez modifier ces valeurs après avoir créé le dépôt. Pour en savoir plus sur l'authentification aux sources d'un dépôt distant, consultez la section Configurer l'authentification aux sources d'un dépôt distant.

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

  12. 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 de dépôts ne sont pas chiffrées.

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

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

    • Google-managed encryption key : chiffrez le contenu du dépôt avec un Google-owned and Google-managed 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.
  15. Si vous souhaitez utiliser des règles de nettoyage pour supprimer les artefacts inutilisés, dans la section Règles de nettoyage:

    1. Sélectionnez Simulation pour tester votre stratégie avant de l'appliquer.
    2. Cliquez sur Ajouter une règle pour ajouter une règle de conservation ou de suppression à votre dépôt.
    3. Attribuez un nom descriptif à votre stratégie de nettoyage dans le champ Nom.
    4. Dans la section Type de règles, sélectionnez l'une des options suivantes:

      • Suppression conditionnelle: supprime les artefacts en fonction des conditions que vous définissez.
      • Conservation conditionnelle: conserve les artefacts en fonction des conditions que vous définissez.
      • Conserver les versions les plus récentes: conserve un nombre défini de versions les plus récentes par package.

      Pour en savoir plus sur les règles de nettoyage, consultez la section Configurer des règles de nettoyage.

  16. Dans la section Analyse des artefacts, choisissez les paramètres d'analyse des failles:

    • Enabled (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 que vous avez activé l'API Container Scanning sur un projet, l'analyse des failles est activée pour tous les nouveaux dépôts et les dépôts 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 dans d'autres dépôts. Ce dépôt sera exclu.

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

  17. Cliquez sur Créer.

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

Une fois le dépôt créé:

Créer un dépôt distant à l'aide de la gcloud CLI

Pour créer un dépôt, exécutez la commande correspondant au format de dépôt approprié:

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" \
    --disable-vulnerability-scanning \
    --remote-docker-repo=UPSTREAM

Options facultatives pour l'authentification auprès du dépôt en amont:

  • --remote-username=USERNAME
  • --remote-password-secret-version=SECRET_VERSION

Remplacez les éléments suivants :

  • REMOTE-REPOSITORY-NAME par 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.
  • PROJECT_ID par l'ID du projet. Si cette option est ignorée, le projet en cours ou par défaut est utilisé.
  • LOCATION avec 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 gcloud artifacts locations list.
  • DESCRIPTION avec une description facultative du dépôt. N'incluez pas de données sensibles, car les descriptions de dépôts ne sont pas chiffrées.
  • REMOTE-REPOSITORY-DESCRIPTION avec une description de la configuration du dépôt externe pour ce dépôt distant.
  • USERNAME, le cas échéant, si vous utilisez l'authentification, avec votre nom d'utilisateur pour vous authentifier auprès du dépôt en amont.
  • SECRET_VERSION, facultativement, si vous utilisez l'authentification, avec la version secrète contenant le mot de passe de votre dépôt en amont.
  • UPSTREAM avec le nom prédéfini en amont, le chemin d'accès au dépôt Artifact Registry ou l'URL définie par l'utilisateur du dépôt en amont.

    Pour les dépôts en amont d'Artifact Registry, formatez le chemin d'accès du dépôt comme suit :projects/UPSTREAM_PROJECT_ID/locations/REGION/repositories/UPSTREAM_REPOSITORY.

    Pour en savoir plus sur les flux en amont prédéfinis disponibles et les flux en amont définis par l'utilisateur compatibles, consultez la section Formats compatibles.

  • --disable-vulnerability-scanning: option facultative qui configure votre dépôt pour désactiver l'analyse automatique des failles.

  • --allow-vulnerability-scanning: option facultative qui configure votre dépôt pour autoriser l'analyse automatique des failles. Pour en savoir plus, consultez Activer ou désactiver l'analyse automatique.

Par exemple, la commande suivante crée un dépôt distant nommé my-repo dans la région us-east1 du projet my-project et peut s'authentifier auprès du dépôt en amont à l'aide du nom d'utilisateur my-username et de la version secrète projects/my-project/secrets/my-secret/versions/1. Google Cloud

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

Pour en savoir plus sur l'authentification sur les dépôts en amont de Docker Hub, consultez la page Configurer l'authentification des dépôts distants sur Docker Hub.

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" \
    --disable-vulnerability-scanning \
    --remote-mvn-repo=UPSTREAM

Options facultatives pour l'authentification auprès du dépôt en amont:

  • --remote-username=USERNAME
  • --remote-password-secret-version=SECRET_VERSION

Remplacez les éléments suivants :

  • REMOTE-REPOSITORY-NAME par 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.
  • PROJECT_ID par l'ID du projet. Si cette option est ignorée, le projet en cours ou par défaut est utilisé.
  • LOCATION avec 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 gcloud artifacts locations list.
  • DESCRIPTION avec une description facultative du dépôt. N'incluez pas de données sensibles, car les descriptions de dépôts ne sont pas chiffrées.
  • REMOTE-REPOSITORY-DESCRIPTION avec une description de la configuration du dépôt externe pour ce dépôt distant.
  • USERNAME, le cas échéant, si vous utilisez l'authentification, avec votre nom d'utilisateur pour vous authentifier auprès du dépôt en amont.
  • SECRET_VERSION, facultativement, si vous utilisez l'authentification, avec la version secrète contenant le mot de passe de votre dépôt en amont.
  • UPSTREAM avec le nom prédéfini en amont, le chemin d'accès au dépôt Artifact Registry ou l'URL définie par l'utilisateur du dépôt en amont.

    Pour les dépôts en amont d'Artifact Registry, formatez le chemin d'accès du dépôt comme suit :projects/UPSTREAM_PROJECT_ID/locations/REGION/repositories/UPSTREAM_REPOSITORY.

    Pour en savoir plus sur les flux en amont prédéfinis disponibles et les flux en amont définis par l'utilisateur compatibles, consultez la section Formats compatibles.

  • --disable-vulnerability-scanning: option facultative qui configure votre dépôt pour désactiver l'analyse automatique des failles.

  • --allow-vulnerability-scanning: option facultative qui configure votre dépôt pour autoriser l'analyse automatique des failles. Pour en savoir plus, consultez Activer ou désactiver l'analyse automatique.

Par exemple, la commande suivante crée un dépôt distant nommé my-repo dans la région us-east1 du projet my-project et peut s'authentifier auprès du dépôt en amont à l'aide du nom d'utilisateur my-username et de la version secrète projects/my-project/secrets/my-secret/versions/1. Google Cloud

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

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" \
    --disable-vulnerability-scanning \
    --remote-npm-repo=UPSTREAM

Options facultatives pour l'authentification auprès du dépôt en amont:

  • --remote-username=USERNAME
  • --remote-password-secret-version=SECRET_VERSION

Remplacez les éléments suivants :

  • REMOTE-REPOSITORY-NAME par 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.
  • PROJECT_ID par l'ID du projet. Si cette option est ignorée, le projet en cours ou par défaut est utilisé.
  • LOCATION avec 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 gcloud artifacts locations list.
  • DESCRIPTION avec une description facultative du dépôt. N'incluez pas de données sensibles, car les descriptions de dépôts ne sont pas chiffrées.
  • REMOTE-REPOSITORY-DESCRIPTION avec une description de la configuration du dépôt externe pour ce dépôt distant.
  • USERNAME, le cas échéant, si vous utilisez l'authentification, avec votre nom d'utilisateur pour vous authentifier auprès du dépôt en amont.
  • SECRET_VERSION, facultativement, si vous utilisez l'authentification, avec la version secrète contenant le mot de passe de votre dépôt en amont.
  • UPSTREAM avec le nom prédéfini en amont, le chemin d'accès au dépôt Artifact Registry ou l'URL définie par l'utilisateur du dépôt en amont.

    Pour les dépôts en amont d'Artifact Registry, formatez le chemin d'accès du dépôt comme suit :projects/UPSTREAM_PROJECT_ID/locations/REGION/repositories/UPSTREAM_REPOSITORY.

    Pour en savoir plus sur les flux en amont prédéfinis disponibles et les flux en amont définis par l'utilisateur compatibles, consultez la section Formats compatibles.

  • --disable-vulnerability-scanning: option facultative qui configure votre dépôt pour désactiver l'analyse automatique des failles.

  • --allow-vulnerability-scanning: option facultative qui configure votre dépôt pour autoriser l'analyse automatique des failles. Pour en savoir plus, consultez Activer ou désactiver l'analyse automatique.

Par exemple, la commande suivante crée un dépôt distant nommé my-repo dans la région us-east1 du projet my-project et peut s'authentifier auprès du dépôt en amont à l'aide du nom d'utilisateur my-username et de la version secrète projects/my-project/secrets/my-secret/versions/1. Google Cloud

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

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" \
    --disable-vulnerability-scanning \
    --remote-python-repo=UPSTREAM

Options facultatives pour l'authentification auprès du dépôt en amont:

  • --remote-username=USERNAME
  • --remote-password-secret-version=SECRET_VERSION

Remplacez les éléments suivants :

  • REMOTE-REPOSITORY-NAME par 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.
  • PROJECT_ID par l'ID du projet. Si cette option est ignorée, le projet en cours ou par défaut est utilisé.
  • LOCATION avec 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 gcloud artifacts locations list.
  • DESCRIPTION avec une description facultative du dépôt. N'incluez pas de données sensibles, car les descriptions de dépôts ne sont pas chiffrées.
  • REMOTE-REPOSITORY-DESCRIPTION avec une description de la configuration du dépôt externe pour ce dépôt distant.
  • USERNAME, le cas échéant, si vous utilisez l'authentification, avec votre nom d'utilisateur pour vous authentifier auprès du dépôt en amont.
  • SECRET_VERSION, facultativement, si vous utilisez l'authentification, avec la version secrète contenant le mot de passe de votre dépôt en amont.
  • UPSTREAM avec le nom prédéfini en amont, le chemin d'accès au dépôt Artifact Registry ou l'URL définie par l'utilisateur du dépôt en amont.

    Pour les dépôts en amont d'Artifact Registry, formatez le chemin d'accès du dépôt comme suit :projects/UPSTREAM_PROJECT_ID/locations/REGION/repositories/UPSTREAM_REPOSITORY.

    Pour en savoir plus sur les flux en amont prédéfinis disponibles et les flux en amont définis par l'utilisateur compatibles, consultez la section Formats compatibles.

  • --disable-vulnerability-scanning: option facultative qui configure votre dépôt pour désactiver l'analyse automatique des failles.

  • --allow-vulnerability-scanning: option facultative qui configure votre dépôt pour autoriser l'analyse automatique des failles. Pour en savoir plus, consultez Activer ou désactiver l'analyse automatique.

Par exemple, la commande suivante crée un dépôt distant nommé my-repo dans la région us-east1 du projet my-project et peut s'authentifier auprès du dépôt en amont à l'aide du nom d'utilisateur my-username et de la version secrète projects/my-project/secrets/my-secret/versions/1. Google Cloud

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

Remplacez les éléments suivants :

  • REMOTE_REPOSITORY_NAME par 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.
  • PROJECT_ID par l'ID du projet. Si cette option est ignorée, le projet en cours ou par défaut est utilisé.
  • LOCATION avec 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 gcloud artifacts locations list.
  • DESCRIPTION avec une description facultative du dépôt. N'incluez pas de données sensibles, car les descriptions de dépôts ne sont pas chiffrées.
  • REMOTE_REPOSITORY_DESCRIPTION avec une description facultative de la configuration du dépôt externe pour ce dépôt distant.
  • APT_REPOSITORY_BASE avec l'un des noms de base de dépôt compatibles listés dans les sources en amont compatibles avec le package d'OS pour les dépôts distants Apt.
  • APT_REPOSITORY_PATH avec le reste de l'URL du dépôt en amont que vous souhaitez mettre en cache dans votre dépôt distant après la base du dépôt.

Par exemple, la commande suivante crée un dépôt distant nommé my-repo pour mettre en cache le dépôt Debian buster dans la région us-east1 du projet my-project. Google Cloud L'URL complète du dépôt en amont est 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"

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"

Remplacez les éléments suivants :

  • REMOTE_REPOSITORY_NAME par 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.
  • PROJECT_ID par l'ID du projet. Si cette option est ignorée, le projet en cours ou par défaut est utilisé.
  • LOCATION avec 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 gcloud artifacts locations list.
  • DESCRIPTION avec une description facultative du dépôt. N'incluez pas de données sensibles, car les descriptions de dépôts ne sont pas chiffrées.
  • REMOTE_REPOSITORY_DESCRIPTION avec une description facultative de la configuration du dépôt externe pour ce dépôt distant.
  • YUM_REPOSITORY_BASE avec l'un des noms de base de dépôt compatibles listés dans les sources en amont compatibles avec le package d'OS pour les dépôts distants Yum.
  • YUM_REPOSITORY_PATH avec le reste de l'URL du dépôt en amont que vous souhaitez mettre en cache dans votre dépôt distant après la base du dépôt.

Par exemple, la commande suivante crée un dépôt distant pour les paquets Yum nommé my-repo dans la région us-east1 du projet my-project pour le dépôt en amont 9-stream/BaseOs/x86_64/os. Google Cloud L'URL complète du dépôt est https://mirror.stream.centos.org/9-stream/BaseOS/x86_64/os.

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_STREAM \
    --remote-yum-repo-path="9-stream/BaseOs/x86_64/os"

Artifact Registry crée votre dépôt. Exécutez la commande suivante pour afficher une description du dépôt:

gcloud artifacts repositories describe REMOTE_REPOSITORY_NAME \
    --location=LOCATION

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

Créer un dépôt distant à l'aide de Terraform

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

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

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

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"
    }
  }
  cleanup_policy_dry_run = DRY_RUN_STATUS
  cleanup_policies {
    id     = "POLICY_NAME"
    action = "DELETE"
    condition {
      tag_state    = "TAG_STATE"
      tag_prefixes = ["TAG_PREFIX", "TAG_PREFIX_N"]
      older_than   = "TIME_SINCE_UPLOAD"
    }
  }
  cleanup_policies {
    id     = "POLICY_NAME"
    action = "KEEP"
    condition {
      tag_state             = "TAG_STATE"
      tag_prefixes          = ["TAG_PREFIX", "TAG_PREFIX_N"]
      package_name_prefixes = ["PKG_PREFIX", "PKG_PREFIX_N"]
    }
  }
  cleanup_policies {
    id     = "POLICY_NAME"
    action = "KEEP"
    most_recent_versions {
      package_name_prefixes = ["PKG_PREFIX", "PKG_PREFIX_N"]
      keep_count            = KEEP_COUNT
    }
  }
}

  • PROJECT-ID est l'ID Google Cloud du projet.
  • LOCATION est l'emplacement du dépôt.
  • REPOSITORY_ID est l'ID du dépôt.
  • DESCRIPTION est la description facultative du dépôt. N'incluez pas de données sensibles, car les descriptions de dépôts ne sont pas chiffrées.
  • 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.
  • CONFIG_DESCRIPTION est la description facultative de la source distante.
  • DRY_RUN_STATUS détermine si les règles de nettoyage suppriment les artefacts ou si elles ne consignent que les artefacts qui seraient supprimés si des règles de nettoyage étaient définies sur le dépôt. Omettre si vous ne souhaitez pas ajouter de règles de nettoyage au dépôt. * true: définit les règles à exécuter en mode dry run. Aucun artefact n'est supprimé en mode simulation. * false: applique les règles de nettoyage. Les artefacts sont supprimés ou conservés en fonction des règles. Pour en savoir plus sur les règles de nettoyage, consultez la section Configurer des règles de nettoyage.
    • POLICY_NAME correspond au nom de la règle de nettoyage.
    • TAG_STATE correspond à l'état de la balise auquel appliquer la règle. Les valeurs sont tagged, untagged et any. any s'applique aux artefacts tagués et non tagués. Si des tags immuables sont activés dans un dépôt, les artefacts tagués ne peuvent pas être supprimés.
    • TAG_PREFIX et TAG_PREFIX_N sont des préfixes de balise auxquels appliquer la stratégie.
    • PKG_PREFIX et PKG_PREFIX_N sont des préfixes de paquets auxquels appliquer la règle.
    • TIME_SINCE_UPLOAD correspond au temps écoulé depuis l'importation d'une version d'artefact dans le dépôt, spécifié sous la forme d'une durée. Vous pouvez spécifier des durées en secondes, minutes, heures ou jours en ajoutant s, m, h ou d, respectivement.
    • KEEP_COUNT correspond au nombre de versions par package d'un artefact à conserver dans votre dépôt.

Si vous ne spécifiez pas de stratégie de version, Artifact Registry crée un dépôt Maven qui stocke à la fois les versions d'instantané et de version des packages par défaut.

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"
    }
  }
  cleanup_policy_dry_run = DRY_RUN_STATUS
  cleanup_policies {
    id     = "POLICY_NAME"
    action = "DELETE"
    condition {
      tag_state    = "TAG_STATE"
      tag_prefixes = ["TAG_PREFIX", "TAG_PREFIX_N"]
      older_than   = "TIME_SINCE_UPLOAD"
    }
  }
  cleanup_policies {
    id     = "POLICY_NAME"
    action = "KEEP"
    condition {
      tag_state             = "TAG_STATE"
      tag_prefixes          = ["TAG_PREFIX", "TAG_PREFIX_N"]
      package_name_prefixes = ["PKG_PREFIX", "PKG_PREFIX_N"]
    }
  }
  cleanup_policies {
    id     = "POLICY_NAME"
    action = "KEEP"
    most_recent_versions {
      package_name_prefixes = ["PKG_PREFIX", "PKG_PREFIX_N"]
      keep_count            = KEEP_COUNT
    }
  }
}

  • PROJECT-ID est l'ID Google Cloud du projet.
  • LOCATION est l'emplacement du dépôt.
  • REPOSITORY_ID est l'ID du dépôt.
  • DESCRIPTION est la description facultative du dépôt. N'incluez pas de données sensibles, car les descriptions de dépôts ne sont pas chiffrées.
  • 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.
  • CONFIG_DESCRIPTION est la description facultative de la source distante.
  • DRY_RUN_STATUS détermine si les règles de nettoyage suppriment les artefacts ou si elles ne consignent que les artefacts qui seraient supprimés si des règles de nettoyage étaient définies sur le dépôt. Omettre si vous ne souhaitez pas ajouter de règles de nettoyage au dépôt. * true: définit les règles à exécuter en mode dry run. Aucun artefact n'est supprimé en mode simulation. * false: applique les règles de nettoyage. Les artefacts sont supprimés ou conservés en fonction des règles. Pour en savoir plus sur les règles de nettoyage, consultez la section Configurer des règles de nettoyage.
    • POLICY_NAME correspond au nom de la règle de nettoyage.
    • TAG_STATE correspond à l'état de la balise auquel appliquer la règle. Les valeurs sont tagged, untagged et any. any s'applique aux artefacts tagués et non tagués. Si des tags immuables sont activés dans un dépôt, les artefacts tagués ne peuvent pas être supprimés.
    • TAG_PREFIX et TAG_PREFIX_N sont des préfixes de balise auxquels appliquer la stratégie.
    • PKG_PREFIX et PKG_PREFIX_N sont des préfixes de paquets auxquels appliquer la règle.
    • TIME_SINCE_UPLOAD correspond au temps écoulé depuis l'importation d'une version d'artefact dans le dépôt, spécifié sous la forme d'une durée. Vous pouvez spécifier des durées en secondes, minutes, heures ou jours en ajoutant s, m, h ou d, respectivement.
    • KEEP_COUNT correspond au nombre de versions par package d'un artefact à conserver dans votre dépôt.

Pour stocker des versions d'instantanés et de versions dans différents dépôts, spécifiez une stratégie 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 stratégie de version sur l'une des valeurs suivantes :
    • VERSION_POLICY_UNSPECIFIED: stocke les instantanés et les packages de publication. Il s'agit du paramètre par défaut.
    • VERSION: Packages de version du Play Store uniquement.
    • SNAPSHOT: stocke 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 du dépôt.

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

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

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"
    }
  }
  cleanup_policy_dry_run = DRY_RUN_STATUS
  cleanup_policies {
    id     = "POLICY_NAME"
    action = "DELETE"
    condition {
      tag_state    = "TAG_STATE"
      tag_prefixes = ["TAG_PREFIX", "TAG_PREFIX_N"]
      older_than   = "TIME_SINCE_UPLOAD"
    }
  }
  cleanup_policies {
    id     = "POLICY_NAME"
    action = "KEEP"
    condition {
      tag_state             = "TAG_STATE"
      tag_prefixes          = ["TAG_PREFIX", "TAG_PREFIX_N"]
      package_name_prefixes = ["PKG_PREFIX", "PKG_PREFIX_N"]
    }
  }
  cleanup_policies {
    id     = "POLICY_NAME"
    action = "KEEP"
    most_recent_versions {
      package_name_prefixes = ["PKG_PREFIX", "PKG_PREFIX_N"]
      keep_count            = KEEP_COUNT
    }
  }
}

  • PROJECT-ID est l' Google Cloud ID de projet.
  • LOCATION est l'emplacement du dépôt.
  • REPOSITORY_ID est l'ID du dépôt.
  • DESCRIPTION est la description facultative du dépôt. N'incluez pas de données sensibles, car les descriptions de dépôts ne sont pas chiffrées.
  • 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.
  • CONFIG_DESCRIPTION est la description facultative de la source distante.
  • DRY_RUN_STATUS détermine si les règles de nettoyage suppriment les artefacts ou si elles ne consignent que les artefacts qui seraient supprimés si des règles de nettoyage étaient définies sur le dépôt. Omettre si vous ne souhaitez pas ajouter de règles de nettoyage au dépôt. * true: définit les règles à exécuter en mode dry run. Aucun artefact n'est supprimé en mode simulation. * false: applique les règles de nettoyage. Les artefacts sont supprimés ou conservés en fonction des règles. Pour en savoir plus sur les règles de nettoyage, consultez la section Configurer des règles de nettoyage.
    • POLICY_NAME correspond au nom de la règle de nettoyage.
    • TAG_STATE correspond à l'état de la balise auquel appliquer la règle. Les valeurs sont tagged, untagged et any. any s'applique aux artefacts tagués et non tagués. Si des tags immuables sont activés dans un dépôt, les artefacts tagués ne peuvent pas être supprimés.
    • TAG_PREFIX et TAG_PREFIX_N sont des préfixes de balise auxquels appliquer la stratégie.
    • PKG_PREFIX et PKG_PREFIX_N sont des préfixes de paquets auxquels appliquer la règle.
    • TIME_SINCE_UPLOAD correspond au temps écoulé depuis l'importation d'une version d'artefact dans le dépôt, spécifié sous la forme d'une durée. Vous pouvez spécifier des durées en secondes, minutes, heures ou jours en ajoutant s, m, h ou d, respectivement.
    • KEEP_COUNT correspond au nombre de versions par package d'un artefact à conserver dans votre dépôt.

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"
    }
  }
  cleanup_policy_dry_run = DRY_RUN_STATUS
  cleanup_policies {
    id     = "POLICY_NAME"
    action = "DELETE"
    condition {
      tag_state    = "TAG_STATE"
      tag_prefixes = ["TAG_PREFIX", "TAG_PREFIX_N"]
      older_than   = "TIME_SINCE_UPLOAD"
    }
  }
  cleanup_policies {
    id     = "POLICY_NAME"
    action = "KEEP"
    condition {
      tag_state             = "TAG_STATE"
      tag_prefixes          = ["TAG_PREFIX", "TAG_PREFIX_N"]
      package_name_prefixes = ["PKG_PREFIX", "PKG_PREFIX_N"]
    }
  }
  cleanup_policies {
    id     = "POLICY_NAME"
    action = "KEEP"
    most_recent_versions {
      package_name_prefixes = ["PKG_PREFIX", "PKG_PREFIX_N"]
      keep_count            = KEEP_COUNT
    }
  }
}

  • PROJECT-ID est l'ID Google Cloud du projet.
  • LOCATION est l'emplacement du dépôt.
  • REPOSITORY_ID est l'ID du dépôt.
  • DESCRIPTION est la description facultative du dépôt. N'incluez pas de données sensibles, car les descriptions de dépôts ne sont pas chiffrées.
  • 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.
  • CONFIG_DESCRIPTION est la description facultative de la source distante.
  • DRY_RUN_STATUS détermine si les règles de nettoyage suppriment les artefacts ou si elles ne consignent que les artefacts qui seraient supprimés si des règles de nettoyage étaient définies sur le dépôt. Omettre si vous ne souhaitez pas ajouter de règles de nettoyage au dépôt. * true: définit les règles à exécuter en mode dry run. Aucun artefact n'est supprimé en mode simulation. * false: applique les règles de nettoyage. Les artefacts sont supprimés ou conservés en fonction des règles. Pour en savoir plus sur les règles de nettoyage, consultez la section Configurer des règles de nettoyage.
    • POLICY_NAME correspond au nom de la règle de nettoyage.
    • TAG_STATE correspond à l'état de la balise auquel appliquer la règle. Les valeurs sont tagged, untagged et any. any s'applique aux artefacts tagués et non tagués. Si des tags immuables sont activés dans un dépôt, les artefacts tagués ne peuvent pas être supprimés.
    • TAG_PREFIX et TAG_PREFIX_N sont des préfixes de balise auxquels appliquer la stratégie.
    • PKG_PREFIX et PKG_PREFIX_N sont des préfixes de paquets auxquels appliquer la règle.
    • TIME_SINCE_UPLOAD correspond au temps écoulé depuis l'importation d'une version d'artefact dans le dépôt, spécifié sous la forme d'une durée. Vous pouvez spécifier des durées en secondes, minutes, heures ou jours en ajoutant s, m, h ou d, respectivement.
    • KEEP_COUNT correspond au nombre de versions par package d'un artefact à conserver dans votre dépôt.

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

  • PROJECT-ID est l' Google Cloud ID de projet.
  • LOCATION est l'emplacement du dépôt.
  • REPOSITORY_ID est l'ID du dépôt.
  • DESCRIPTION est la description facultative du dépôt. N'incluez pas de données sensibles, car les descriptions de dépôts ne sont pas chiffrées.
  • CONFIG_DESCRIPTION est la description facultative de la source distante.
  • REPOSITORY_BASE est la base de dépôt public prédéfinie pour Apt. Les valeurs possibles sont DEBIAN et UBUNTU.
  • REPOSITORY_PATH est le dépôt spécifique de la base. Par exemple, debian/dists/buster.

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

  • PROJECT-ID est l' Google Cloud ID de projet.
  • LOCATION est l'emplacement du dépôt.
  • REPOSITORY_ID est l'ID du dépôt.
  • DESCRIPTION est la description facultative du dépôt. N'incluez pas de données sensibles, car les descriptions de dépôts ne sont pas chiffrées.
  • CONFIG_DESCRIPTION est la description facultative de la source distante.
  • REPOSITORY_BASE est la base de dépôt public prédéfinie pour Yum. Les valeurs possibles sont CENTOS, CENTOS_DEBUG, CENTOS_VAULT, CENTOS_STREAM, ROCKY et EPEL.
  • REPOSITORY_PATH est le dépôt spécifique de la base. Par exemple, "centos/8-stream/BaseOS/x86_64/os.

Artifact Registry crée votre dépôt. Exécutez la commande suivante pour afficher une description du dépôt:

gcloud artifacts repositories describe REPOSITORY \
    --location=LOCATION

Une fois le dépôt créé:

Modifier les descriptions des dépôts

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

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

    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.

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 Google Cloud. Si cette option est ignorée, le projet en cours ou par défaut est utilisé.
  • LOCATION est l'emplacement régional ou multiré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 situées en dehors du périmètre.

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

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 de projet et d'emplacement spécifique, 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 distants dans us-east1 dans le 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 à 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 distants dans us-east1 du 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

Lorsque vous refusez l'accès aux sources en amont, les artefacts mis en cache existants dans les dépôts distants restent disponibles.

Pour refuser l'accès aux sources en amont à 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 distants dans us-west1 du projet my-project:

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

Étape suivante