Controles de origem do grupo de pacotes - CodeArtifact

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Controles de origem do grupo de pacotes

Os controles de origem do pacote são usados para configurar como as versões do pacote podem entrar em um domínio. Você pode configurar controles de origem em um grupo de pacotes para configurar como as versões de cada pacote associado ao grupo de pacotes podem entrar em repositórios específicos no domínio.

As configurações de controle de origem do grupo de pacotes consistem no seguinte:

  • Configurações de restrição: essas configurações definem se os pacotes podem entrar em um repositório a CodeArtifact partir da publicação, de upstreams internos ou de repositórios públicos externos.

  • Listas de repositórios permitidos: cada configuração de restrição pode ser definida para permitir repositórios específicos. Se uma configuração de restrição for definida para permitir repositórios específicos, essa restrição terá uma lista correspondente de repositórios permitidos.

nota

As configurações de controle de origem para grupos de pacotes são ligeiramente diferentes das configurações de controle de origem para pacotes individuais. Para obter mais informações sobre as configurações de controle de origem para pacotes, consulteConfigurações de controle de origem do pacote.

Configurações de restrição

As configurações de restrição das configurações de controle de origem de um grupo de pacotes determinam como os pacotes associados a esse grupo podem entrar nos repositórios no domínio.

PUBLISH

A PUBLISH configuração configura se as versões do pacote podem ser publicadas diretamente em qualquer repositório no domínio usando gerenciadores de pacotes ou ferramentas similares.

  • PERMITIR: As versões do Package podem ser publicadas diretamente em todos os repositórios.

  • BLOCO: As versões do Package não podem ser publicadas diretamente em nenhum repositório.

  • ALLOW_SPECIFIC_REPOSITORIES: As versões do pacote só podem ser publicadas diretamente nos repositórios especificados na lista de repositórios permitidos para publicação.

  • INHERIT: A PUBLISH configuração é herdada do primeiro grupo de pacotes pai com uma configuração que não é. INHERIT

EXTERNAL_UPSTREAM

A EXTERNAL_UPSTREAM configuração configura se as versões do pacote podem ser ingeridas de repositórios públicos externos quando solicitadas por um gerenciador de pacotes. Para ver uma lista dos repositórios externos, consulte Repositórios de conexão externa compatíveis.

  • PERMITIR: Qualquer versão do pacote pode ser ingerida em todos os repositórios a partir de uma fonte pública com uma conexão externa.

  • BLOCO: As versões do Package não podem ser ingeridas em nenhum repositório de uma fonte pública com uma conexão externa.

  • ALLOW_SPECIFIC_REPOSITORIES: as versões do pacote só podem ser ingeridas de uma fonte pública em repositórios especificados na lista de repositórios permitidos para upstreams externos.

  • INHERIT: A EXTERNAL_UPSTREAM configuração é herdada do primeiro grupo de pacotes pai com uma configuração que não é. INHERIT

INTERNAL_UPSTREAM

A INTERNAL_UPSTREAM configuração configura se as versões do pacote podem ser retidas dos repositórios upstream internos no mesmo CodeArtifact domínio quando solicitadas por um gerenciador de pacotes.

  • PERMITIR: Qualquer versão do pacote pode ser retida de outros CodeArtifact repositórios configurados como repositórios upstream.

  • BLOCO: As versões do Package não podem ser retidas de outros CodeArtifact repositórios configurados como repositórios upstream.

  • ALLOW_SPECIFIC_REPOSITORIES: As versões do pacote só podem ser retidas de CodeArtifact outros repositórios configurados como repositórios upstream em repositórios especificados na lista de repositórios permitidos para upstreams internos.

  • INHERIT: A INTERNAL_UPSTREAM configuração é herdada do primeiro grupo de pacotes pai com uma configuração que não é. INHERIT

Listas de repositórios permitidos

Quando uma configuração de restrição é definida comoALLOW_SPECIFIC_REPOSITORIES, o grupo de pacotes contém uma lista de repositórios permitidos que contém uma lista de repositórios permitidos para essa configuração de restrição. Portanto, um grupo de pacotes contém de 0 a 3 listas de repositórios permitidos, uma para cada configuração configurada comoALLOW_SPECIFIC_REPOSITORIES.

Ao adicionar um repositório à lista de repositórios permitidos de um grupo de pacotes, você deve especificar em qual lista de repositórios permitidos adicioná-lo.

As possíveis listas de repositórios permitidos são as seguintes:

  • EXTERNAL_UPSTREAM: permitir ou bloquear a ingestão de versões de pacotes de repositórios externos no repositório adicionado.

  • INTERNAL_UPSTREAM: permita ou bloqueie a extração de versões de pacotes de outro CodeArtifact repositório no repositório adicionado.

  • PUBLISH: permita ou bloqueie a publicação direta de versões de pacotes dos gerenciadores de pacotes no repositório adicionado.

Editando configurações de controle de origem do grupo de pacotes

Para adicionar ou editar controles de origem para um grupo de pacotes, execute as etapas no procedimento a seguir. Para obter informações sobre as configurações de controle de origem do grupo de pacotes, consulte Configurações de restrição Listas de repositórios permitidos e.

Para adicionar ou editar controles de origem do grupo de pacotes (CLI)
  1. Caso não tenha feito isso, configure o AWS CLI seguindo as etapas emConfigurando com AWS CodeArtifact.

  2. Use o comando update-package-group-origin-configuration para adicionar ou editar controles de origem do pacote.

    • Para--domain, insira o CodeArtifact domínio que contém o grupo de pacotes que você deseja atualizar.

    • Para--domain-owner, insira o número da conta do proprietário do domínio.

    • Para--package-group, insira o grupo de pacotes que você deseja atualizar.

    • Para--restrictions, insira pares de valores-chave que representem as restrições de controle de origem.

    • Para--add-allowed-repositories, insira um objeto JSON contendo o tipo de restrição e o nome do repositório para adicionar à lista correspondente de repositórios permitidos para a restrição.

    • Para--remove-allowed-repositories, insira um objeto JSON contendo o tipo de restrição e o nome do repositório a serem removidos da lista de repositórios permitidos correspondente à restrição.

    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

    O exemplo a seguir adiciona várias restrições e vários repositórios em um 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

Exemplos de configuração do controle de origem do grupo de pacotes

Os exemplos a seguir mostram configurações de controle de origem de pacotes para cenários comuns de gerenciamento de pacotes.

Permitindo que pacotes com nomes privados sejam publicados, mas não ingeridos

Esse cenário é provavelmente um cenário comum no gerenciamento de pacotes:

  • Permita que pacotes com nomes privados sejam publicados em repositórios em seu domínio a partir de gerenciadores de pacotes e impeça que sejam ingeridos em repositórios em seu domínio a partir de repositórios públicos externos.

  • Permita que todos os outros pacotes sejam ingeridos em repositórios em seu domínio a partir de repositórios públicos externos e impeça que sejam publicados em repositórios em seu domínio a partir de gerenciadores de pacotes.

Para fazer isso, você deve configurar um grupo de pacotes com um padrão que inclua os nomes privados e as configurações de origem de PUBLISH: ALLOW, EXTERNAL_UPSTREAM: BLOCK e INTERNAL_UPSTREAM: ALLOW. Isso garantirá que pacotes com nomes privados possam ser publicados diretamente, mas não possam ser ingeridos de repositórios externos.

Os AWS CLI comandos a seguir criam e configuram um grupo de pacotes com configurações de restrição de origem que correspondem ao comportamento desejado:

Para criar o grupo de pacotes:

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 atualizar a configuração de origem do grupo de pacotes:

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

Permitindo a ingestão de repositórios externos por meio de um repositório

Nesse cenário, seu domínio tem vários repositórios. Desses repositórios, repoA tem uma conexão upstream comrepoB, que tem uma conexão externa com o repositório públiconpmjs.com, conforme mostrado:

repoA --> repoB --> npmjs.com

Você deseja permitir a ingestão de pacotes de um grupo de pacotes específico, /npm/space/anycompany~ de npmjs.com dentrorepoA, mas somente por meio repoB de. Você também deseja bloquear a ingestão de pacotes associados ao grupo de pacotes em qualquer outro repositório em seu domínio e bloquear a publicação direta de pacotes com gerenciadores de pacotes. Para fazer isso, você cria e configura o grupo de pacotes da seguinte forma:

Configurações de restrição de origem de PUBLISH: BLOCK e EXTERNAL_UPSTREAM: ALLOW_SPECIFIC_REPOSITORIES e INTERNAL_UPSTREAM: ALLOW_SPECIFIC_REPOSITORIES.

repoAe repoB adicionado à lista apropriada de repositórios permitidos:

  • repoAdeve ser adicionado à INTERNAL_UPSTREAM lista, pois obterá pacotes de seu upstream interno,repoB.

  • repoBdeve ser adicionado à EXTERNAL_UPSTREAM lista, pois obterá pacotes do repositório externo,npmjs.com.

Os AWS CLI comandos a seguir criam e configuram um grupo de pacotes com configurações de restrição de origem que correspondem ao comportamento desejado:

Para criar o grupo de pacotes:

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 atualizar a configuração de origem do grupo de pacotes:

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

Como as configurações de controle de origem do grupo de pacotes interagem com as configurações de controle de origem do pacote

Como os pacotes têm configurações de controle de origem e seus grupos de pacotes associados têm configurações de controle de origem, é importante entender como essas duas configurações diferentes interagem umas com as outras. Para obter informações sobre a interação entre as configurações, consulteComo os controles de origem do pacote interagem com os controles de origem do grupo de pacotes.