Controles de origen de los grupos de paquetes - CodeArtifact

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Controles de origen de los grupos de paquetes

Los controles de origen de los paquetes se utilizan para configurar la forma en que las versiones de los paquetes pueden entrar en un dominio. Puede configurar los controles de origen en un grupo de paquetes para configurar cómo las versiones de cada paquete asociado al grupo de paquetes pueden entrar en los repositorios específicos del dominio.

La configuración del control de origen del grupo de paquetes consta de lo siguiente:

  • Configuración de restricciones: Esta configuración define si los paquetes pueden entrar en un repositorio CodeArtifact desde repositorios públicos de publicación, internos o externos, públicos.

  • Listas de repositorios permitidos: Cada configuración de restricción se puede configurar para permitir repositorios específicos. Si se establece una configuración de restricción para permitir repositorios específicos, esa restricción tendrá la lista de repositorios permitidos correspondiente.

nota

La configuración de control de origen de los grupos de paquetes es ligeramente diferente de la configuración de control de origen de los paquetes individuales. Para obtener más información sobre la configuración de control de origen de los paquetes, consulteConfiguración de control de origen del paquete.

Configuración de restricciones

La configuración de restricción de la configuración de control de origen de un grupo de paquetes determina cómo los paquetes asociados a ese grupo pueden entrar en los repositorios del dominio.

PUBLISH

La PUBLISH configuración configura si las versiones de los paquetes se pueden publicar directamente en cualquier repositorio del dominio mediante administradores de paquetes o herramientas similares.

  • ALLOW: Las versiones de los paquetes se pueden publicar directamente en todos los repositorios.

  • BLOQUE: Las versiones de los paquetes no se pueden publicar directamente en ningún repositorio.

  • ALLOW_SPECIFIC_REPOSITORIES: Las versiones de los paquetes solo se pueden publicar directamente en los repositorios especificados en la lista de repositorios permitidos para su publicación.

  • INHERIT: la PUBLISH configuración se hereda del primer grupo de paquetes principal con una configuración que no lo es. INHERIT

EXTERNAL_UPSTREAM

La EXTERNAL_UPSTREAM configuración configura si las versiones de los paquetes se pueden ingerir desde repositorios públicos externos cuando lo solicite un administrador de paquetes. Para ver una lista de los repositorios externos admitidos, consulte Repositorios de conexiones externas compatibles.

  • PERMITIR: cualquier versión del paquete se puede ingerir en todos los repositorios desde una fuente pública con una conexión externa.

  • BLOCK: Las versiones de los paquetes no se pueden ingerir en ningún repositorio desde una fuente pública con una conexión externa.

  • ALLOW_SPECIFIC_REPOSITORIES: Las versiones de paquetes solo se pueden ingerir desde una fuente pública a los repositorios especificados en la lista de repositorios permitidos para flujos ascendentes externos.

  • INHERIT: la EXTERNAL_UPSTREAM configuración se hereda del primer grupo de paquetes principal con una configuración que no lo es. INHERIT

INTERNAL_UPSTREAM

La INTERNAL_UPSTREAM configuración configura si las versiones de los paquetes se pueden conservar en los repositorios ascendentes internos del mismo CodeArtifact dominio cuando lo solicite un administrador de paquetes.

  • PERMITIR: Se puede conservar cualquier versión del paquete de otros CodeArtifact repositorios configurados como repositorios ascendentes.

  • BLOQUE: Las versiones de los paquetes no se pueden conservar de otros CodeArtifact repositorios configurados como repositorios ascendentes.

  • ALLOW_SPECIFIC_REPOSITORIES: Las versiones de los paquetes solo se pueden conservar de CodeArtifact otros repositorios configurados como repositorios ascendentes en los repositorios especificados en la lista de repositorios permitidos para los upstream internos.

  • INHERIR: la INTERNAL_UPSTREAM configuración se hereda del primer grupo de paquetes principal con una configuración que no lo es. INHERIT

Listas de repositorios permitidos

Cuando una configuración de restricción se configura comoALLOW_SPECIFIC_REPOSITORIES, el grupo de paquetes contiene una lista de repositorios permitidos adjunta que contiene una lista de los repositorios permitidos para esa configuración de restricción. Por lo tanto, un grupo de paquetes contiene entre 0 y 3 listas de repositorios permitidos, una para cada configuración configurada como. ALLOW_SPECIFIC_REPOSITORIES

Al agregar un repositorio a la lista de repositorios permitidos de un grupo de paquetes, debe especificar a qué lista de repositorios permitidos desea agregarlo.

Las posibles listas de repositorios permitidos son las siguientes:

  • EXTERNAL_UPSTREAM: Permita o bloquee la ingesta de versiones de paquetes desde repositorios externos en el repositorio agregado.

  • INTERNAL_UPSTREAM: Permite o bloquea la extracción de versiones de paquetes de otro CodeArtifact repositorio del repositorio agregado.

  • PUBLISH: Permita o bloquee la publicación directa de las versiones de los paquetes desde los administradores de paquetes al repositorio agregado.

Edición de la configuración de control de origen del grupo de paquetes

Para añadir o editar los controles de origen de un grupo de paquetes, lleve a cabo los pasos del siguiente procedimiento. Para obtener información sobre la configuración de control de origen del grupo de paquetes, consulte Configuración de restricciones yListas de repositorios permitidos.

Para agregar o editar controles de origen de grupos de paquetes (CLI)
  1. Si no lo ha hecho, configúrelos AWS CLI siguiendo los pasos que se indican enConfiguración con AWS CodeArtifact.

  2. Utilice el comando update-package-group-origin-configuration para añadir o editar los controles de origen de los paquetes.

    • Para--domain, introduzca el CodeArtifact dominio que contiene el grupo de paquetes que desea actualizar.

    • Para--domain-owner, introduzca el número de cuenta del propietario del dominio.

    • Para--package-group, introduzca el grupo de paquetes que desea actualizar.

    • Para--restrictions, introduzca los pares clave-valor que representen las restricciones de control de origen.

    • Para ello--add-allowed-repositories, introduzca un objeto JSON que contenga el tipo de restricción y el nombre del repositorio para añadirlo a la lista de repositorios permitidos correspondiente a la restricción.

    • Para ello--remove-allowed-repositories, introduce un objeto JSON que contenga el tipo de restricción y el nombre del repositorio para eliminarlo de la lista de repositorios permitidos correspondiente a la restricción.

    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

    En el siguiente ejemplo, se añaden varias restricciones y varios repositorios en un solo comando.

    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

Ejemplos de configuración de control de origen de grupos de paquetes

Los siguientes ejemplos muestran las configuraciones de control del origen de los paquetes para escenarios comunes de administración de paquetes.

Permitir que los paquetes con nombres privados se publiquen, pero no se ingieran

Es probable que este escenario sea común en la administración de paquetes:

  • Permite que los paquetes con nombres privados se publiquen en los repositorios de tu dominio desde los gestores de paquetes e impide que se transfieran a los repositorios de tu dominio desde repositorios públicos externos.

  • Permite que todos los demás paquetes se transfieran a los repositorios de tu dominio desde repositorios públicos externos y bloquea su publicación en los repositorios de tu dominio desde los gestores de paquetes.

Para ello, debes configurar un grupo de paquetes con un patrón que incluya los nombres privados y la configuración de origen de PUBLISH: ALLOW, EXTERNAL_UPSTREAM: BLOCK e INTERNAL_UPSTREAM: ALLOW. Esto garantizará que los paquetes con nombres privados se puedan publicar directamente, pero no se puedan ingerir desde repositorios externos.

Los siguientes AWS CLI comandos crean y configuran un grupo de paquetes con ajustes de restricción de origen que coinciden con el comportamiento deseado:

Para crear el grupo de paquetes:

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"

Para actualizar la configuración de origen del grupo de paquetes:

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

Permitir la ingestión desde repositorios externos a través de un repositorio

En este escenario, tu dominio tiene varios repositorios. De esos repositorios, repoA tiene una conexión ascendente arepoB, que tiene una conexión externa al repositorio públiconpmjs.com, como se muestra a continuación:

repoA --> repoB --> npmjs.com

Desea permitir la ingestión de paquetes de un grupo de paquetes específico, /npm/space/anycompany~ desde npmjs.com dentrorepoA, pero solo a través. repoB También quieres bloquear la entrada de paquetes asociados al grupo de paquetes en cualquier otro repositorio de tu dominio y bloquear la publicación directa de paquetes con los gestores de paquetes. Para ello, debe crear y configurar el grupo de paquetes de la siguiente manera:

Configuración de restricción de origen de PUBLISH: BLOCK y EXTERNAL_UPSTREAM: ALLOW_SPECIFIC_REPOSITORIES e INTERNAL_UPSTREAM: ALLOW_SPECIFIC_REPOSITORIES.

repoAy se agregó a la lista de repositorios permitidos correspondiente: repoB

  • repoAdebería añadirse a la INTERNAL_UPSTREAM lista, ya que recibirá los paquetes de su fuente interna,repoB.

  • repoBdebería añadirse a la EXTERNAL_UPSTREAM lista, ya que obtendrá paquetes del repositorio externo,npmjs.com.

Los siguientes AWS CLI comandos crean y configuran un grupo de paquetes con ajustes de restricción de origen que coinciden con el comportamiento deseado:

Para crear el grupo de paquetes:

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"

Para actualizar la configuración de origen del grupo de paquetes:

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

Cómo interactúa la configuración de control de origen del grupo de paquetes con la configuración de control de origen del paquete

Como los paquetes tienen una configuración de control de origen y sus grupos de paquetes asociados tienen una configuración de control de origen, es importante entender cómo interactúan esas dos configuraciones diferentes entre sí. Para obtener información sobre la interacción entre los ajustes, consulteCómo interactúan los controles de origen de los paquetes con los controles de origen de los grupos de paquetes.