Contrôles d'origine des groupes de packages - CodeArtifact

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Contrôles d'origine des groupes de packages

Les contrôles d'origine des packages sont utilisés pour configurer la manière dont les versions de package peuvent entrer dans un domaine. Vous pouvez configurer des contrôles d'origine sur un groupe de packages afin de configurer la manière dont les versions de chaque package associé au groupe de packages peuvent entrer dans les référentiels spécifiés du domaine.

Les paramètres de contrôle de l'origine des groupes de packages sont les suivants :

  • Paramètres de restriction: Ces paramètres définissent si les packages peuvent entrer dans un référentiel CodeArtifact depuis la publication, depuis des flux internes ou depuis des référentiels publics externes.

  • Listes de référentiels autorisés: Chaque paramètre de restriction peut être défini pour autoriser des référentiels spécifiques. Si un paramètre de restriction est défini pour autoriser des référentiels spécifiques, cette restriction sera associée à une liste de référentiels autorisés correspondante.

Note

Les paramètres de contrôle d'origine pour les groupes de packages sont légèrement différents des paramètres de contrôle d'origine pour les packages individuels. Pour plus d'informations sur les paramètres de contrôle d'origine des packages, consultezParamètres de contrôle de l'origine des packages.

Paramètres de restriction

Les paramètres de restriction des paramètres de contrôle d'origine d'un groupe de packages déterminent la manière dont les packages associés à ce groupe peuvent entrer dans les référentiels du domaine.

PUBLISH

Le PUBLISH paramètre définit si les versions de package peuvent être publiées directement dans n'importe quel référentiel du domaine à l'aide de gestionnaires de packages ou d'outils similaires.

  • AUTORISER : les versions des packages peuvent être publiées directement dans tous les référentiels.

  • BLOCK : Les versions des packages ne peuvent être publiées directement dans aucun référentiel.

  • ALLOW_SPECIFIC_REPOSITORIES : Les versions des packages ne peuvent être publiées directement que dans les référentiels spécifiés dans la liste des référentiels autorisés pour la publication.

  • INHERIT : le PUBLISH paramètre est hérité du premier groupe de packages parent avec un paramètre qui ne l'est pasINHERIT.

EXTERNAL_AMONT

Le EXTERNAL_UPSTREAM paramètre définit si les versions des packages peuvent être ingérées à partir de référentiels publics externes à la demande d'un gestionnaire de packages. Pour obtenir la liste des référentiels externes pris en charge, consultezRéférentiels de connexions externes pris en charge.

  • AUTORISER : Toute version de package peut être ingérée dans tous les référentiels à partir d'une source publique avec une connexion externe.

  • BLOCK : Les versions du package ne peuvent être ingérées dans aucun référentiel à partir d'une source publique dotée d'une connexion externe.

  • ALLOW_SPECIFIC_REPOSITORIES : Les versions des packages peuvent uniquement être ingérées à partir d'une source publique dans les référentiels spécifiés dans la liste des référentiels autorisés pour les flux ascendants externes.

  • INHERIT : le EXTERNAL_UPSTREAM paramètre est hérité du premier groupe de packages parent avec un paramètre qui ne l'est pasINHERIT.

INTERNE_AMONT

Le INTERNAL_UPSTREAM paramètre définit si les versions des packages peuvent être conservées à partir des référentiels internes en amont du même CodeArtifact domaine à la demande d'un gestionnaire de packages.

  • AUTORISER : Toute version de package peut être conservée à partir d'autres CodeArtifact référentiels configurés en tant que référentiels en amont.

  • BLOCK : Les versions des packages ne peuvent pas être conservées à partir d'autres CodeArtifact référentiels configurés comme référentiels en amont.

  • ALLOW_SPECIFIC_REPOSITORIES : Les versions des packages ne peuvent être conservées que depuis CodeArtifact d'autres référentiels configurés comme référentiels en amont vers des référentiels spécifiés dans la liste des référentiels autorisés pour les référentiels internes en amont.

  • INHERIT : le INTERNAL_UPSTREAM paramètre est hérité du premier groupe de packages parent avec un paramètre qui ne l'est pasINHERIT.

Listes de référentiels autorisés

Lorsqu'un paramètre de restriction est configuré comme suitALLOW_SPECIFIC_REPOSITORIES, le groupe de packages contient une liste de référentiels autorisés qui contient la liste des référentiels autorisés pour ce paramètre de restriction. Par conséquent, un groupe de packages contient de 0 à 3 listes de référentiels autorisés, une pour chaque paramètre configuré commeALLOW_SPECIFIC_REPOSITORIES.

Lorsque vous ajoutez un dépôt à la liste des référentiels autorisés d'un groupe de packages, vous devez spécifier à quelle liste de référentiels autorisés l'ajouter.

Les listes de référentiels autorisés possibles sont les suivantes :

  • EXTERNAL_UPSTREAM: autorisez ou bloquez l'ingestion de versions de packages provenant de référentiels externes dans le référentiel ajouté.

  • INTERNAL_UPSTREAM: autorisez ou bloquez l'extraction de versions de packages depuis un autre CodeArtifact référentiel dans le référentiel ajouté.

  • PUBLISH: autorisez ou bloquez la publication directe des versions de packages depuis les gestionnaires de packages vers le référentiel ajouté.

Modification des paramètres de contrôle d'origine des groupes de packages

Pour ajouter ou modifier des contrôles d'origine pour un groupe de packages, effectuez les étapes de la procédure suivante. Pour plus d'informations sur les paramètres de contrôle d'origine des groupes de packages, reportez-vous Paramètres de restriction aux sections etListes de référentiels autorisés.

Pour ajouter ou modifier des contrôles d'origine de groupes de packages (CLI)
  1. Si ce n'est pas le cas, configurez le AWS CLI en suivant les étapes décrites dansConfiguration avec AWS CodeArtifact.

  2. Utilisez la update-package-group-origin-configuration commande pour ajouter ou modifier les contrôles d'origine des packages.

    • Pour--domain, entrez le CodeArtifact domaine qui contient le groupe de packages que vous souhaitez mettre à jour.

    • Pour--domain-owner, entrez le numéro de compte du propriétaire du domaine.

    • Pour--package-group, entrez le groupe de packages que vous souhaitez mettre à jour.

    • Pour--restrictions, entrez des paires clé-valeur qui représentent les restrictions de contrôle d'origine.

    • Pour--add-allowed-repositories, entrez un objet JSON contenant le type de restriction et le nom du référentiel à ajouter à la liste des référentiels autorisés correspondante pour la restriction.

    • Pour--remove-allowed-repositories, entrez un objet JSON contenant le type de restriction et le nom du référentiel à supprimer de la liste des référentiels autorisés correspondant à la restriction.

    aws codeartifact update-package-group-origin-configuration \ --domain my_domain \ --domain-owner 111122223333 \ --package-group '/nuget/*' \ --restrictions INTERNAL_UPSTREAM=ALLOW_SPECIFIC_REPOSITORIES \ --add-allowed-repositories originRestrictionType=INTERNAL_UPSTREAM,repositoryName=my_repo \ --remove-allowed-repositories originRestrictionType=INTERNAL_UPSTREAM,repositoryName=my_repo2

    L'exemple suivant ajoute plusieurs restrictions et plusieurs référentiels dans une seule commande.

    aws codeartifact update-package-group-origin-configuration \ --domain my_domain \ --domain-owner 111122223333 \ --package-group '/nuget/*' \ --restrictions PUBLISH=BLOCK,EXTERNAL_UPSTREAM=ALLOW_SPECIFIC_REPOSITORIES,INTERNAL_UPSTREAM=ALLOW_SPECIFIC_REPOSITORIES \ --add-allowed-repositories originRestrictionType=INTERNAL_UPSTREAM,repositoryName=my_repo originRestrictionType=INTERNAL_UPSTREAM,repositoryName=my_repo2 \ --remove-allowed-repositories originRestrictionType=INTERNAL_UPSTREAM,repositoryName=my_repo2

Exemples de configuration du contrôle d'origine des groupes de packages

Les exemples suivants présentent les configurations de contrôle de l'origine des packages pour les scénarios courants de gestion des packages.

Autoriser la publication de packages avec des noms privés, mais pas leur ingestion

Ce scénario est probablement courant dans le domaine de la gestion des packages :

  • Autorisez la publication des packages avec des noms privés dans les référentiels de votre domaine à partir des gestionnaires de packages, et empêchez leur ingestion dans les référentiels de votre domaine à partir de référentiels publics externes.

  • Autorisez l'ingestion de tous les autres packages dans les référentiels de votre domaine à partir de référentiels publics externes, et bloquez leur publication dans les référentiels de votre domaine à partir des gestionnaires de packages.

Pour ce faire, vous devez configurer un groupe de packages avec un modèle incluant le ou les noms privés et les paramètres d'origine de PUBLISH : ALLOW, EXTERNAL_UPSTREAM : BLOCK et INTERNAL_UPSTREAM : ALLOW. Cela permettra de garantir que les packages avec des noms privés peuvent être publiés directement, mais ne peuvent pas être ingérés à partir de référentiels externes.

Les AWS CLI commandes suivantes créent et configurent un groupe de packages avec des paramètres de restriction d'origine correspondant au comportement souhaité :

Pour créer le groupe de packages :

aws codeartifact create-package-group \ --domain my_domain \ --package-group /npm/space/anycompany~ \ --domain-owner 111122223333 \ --contact-info contact@email.com | URL \ --description "my package group"

Pour mettre à jour la configuration d'origine du groupe de packages :

aws codeartifact update-package-group-origin-configuration \ --domain my_domain \ --domain-owner 111122223333 \ --package-group '/npm/space/anycompany~' \ --restrictions PUBLISH=ALLOW,EXTERNAL_UPSTREAM=BLOCK,INTERNAL_UPSTREAM=ALLOW

Autoriser l'ingestion à partir de référentiels externes via un seul référentiel

Dans ce scénario, votre domaine possède plusieurs référentiels. Parmi ces référentiels, repoA dispose d'une connexion en amont àrepoB, qui possède une connexion externe au référentiel publicnpmjs.com, comme indiqué :

repoA --> repoB --> npmjs.com

Vous souhaitez autoriser l'ingestion de packages provenant d'un groupe de packages spécifique, /npm/space/anycompany~ de destination npmjs.com àrepoA, mais uniquement de destinationrepoB. Vous souhaitez également bloquer l'ingestion de packages associés au groupe de packages dans tout autre référentiel de votre domaine et bloquer la publication directe de packages avec les gestionnaires de packages. Pour ce faire, vous devez créer et configurer le groupe de packages comme suit :

Paramètres de restriction d'origine pour PUBLISH : BLOCK, EXTERNAL_UPSTREAM : ALLOW_SPECIFIC_REPOSITORIES, et INTERNAL_UPSTREAM : ALLOW_SPECIFIC_REPOSITORIES.

repoAet repoB ajoutés à la liste des référentiels autorisés appropriée :

  • repoAdevrait être ajouté à la INTERNAL_UPSTREAM liste, car il obtiendra les packages depuis son amont interne,repoB.

  • repoBdoit être ajouté à la EXTERNAL_UPSTREAM liste, car il obtiendra les packages du référentiel externe,npmjs.com.

Les AWS CLI commandes suivantes créent et configurent un groupe de packages avec des paramètres de restriction d'origine correspondant au comportement souhaité :

Pour créer le groupe de packages :

aws codeartifact create-package-group \ --domain my_domain \ --package-group /npm/space/anycompany~ \ --domain-owner 111122223333 \ --contact-info contact@email.com | URL \ --description "my package group"

Pour mettre à jour la configuration d'origine du groupe de packages :

aws codeartifact update-package-group-origin-configuration \ --domain my_domain \ --domain-owner 111122223333 \ --package-group /npm/space/anycompany~ \ --restrictions PUBLISH=BLOCK,EXTERNAL_UPSTREAM=ALLOW_SPECIFIC_REPOSITORIES,INTERNAL_UPSTREAM=ALLOW_SPECIFIC_REPOSITORIES \ --add-allowed-repositories originRestrictionType=INTERNAL_UPSTREAM,repositoryName=repoA originRestrictionType=EXTERNAL_UPSTREAM,repositoryName=repoB

Comment les paramètres de contrôle d'origine des groupes de packages interagissent avec les paramètres de contrôle de l'origine des packages

Étant donné que les packages ont des paramètres de contrôle d'origine et que les groupes de packages associés ont des paramètres de contrôle d'origine, il est important de comprendre comment ces deux paramètres différents interagissent les uns avec les autres. Pour plus d'informations sur l'interaction entre les paramètres, consultezComment les contrôles d'origine des packages interagissent avec les contrôles d'origine des groupes de packages.