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 no CodeArtifact por meio de publicação, upstreams internos ou 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, consulte Configuraçõ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 configuração PUBLISH define se as versões do pacote podem ser publicadas diretamente em qualquer repositório no domínio usando gerenciadores de pacotes ou ferramentas similares.
ALLOW: as versões do pacote podem ser publicadas diretamente em todos os repositórios.
BLOCK: as versões do pacote 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 configuração
PUBLISHé herdada do primeiro grupo de pacotes principal com uma configuração que não éINHERIT.
EXTERNAL_UPSTREAM
A configuração EXTERNAL_UPSTREAM define se as versões do pacote podem ser ingeridas de repositórios externos públicos quando solicitadas por um gerenciador de pacotes. Para ver uma lista dos repositórios externos, consulte Repositórios de conexão externa compatíveis.
ALLOW: qualquer versão do pacote pode ser ingerida em todos os repositórios de uma fonte pública com uma conexão externa.
BLOCK: as versões do pacote 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 configuração
EXTERNAL_UPSTREAMé herdada do primeiro grupo de pacotes principal com uma configuração que não éINHERIT.
INTERNAL_UPSTREAM
A configuração INTERNAL_UPSTREAM define se as versões do pacote podem ser retidas de repositórios upstream internos no mesmo domínio do CodeArtifact quando solicitadas por um gerenciador de pacotes.
ALLOW: qualquer versão do pacote pode ser retida de outros repositórios do CodeArtifact configurados como repositórios upstream.
BLOCK: as versões do pacote não podem ser retidas de outros repositórios do CodeArtifact configurados como repositórios upstream.
ALLOW_SPECIFIC_REPOSITORIES: as versões do pacote só podem ser retidas de outros repositórios do CodeArtifact configurados como repositórios upstream em repositórios especificados na lista de repositórios permitidos para upstreams internos.
INHERIT: a configuração
INTERNAL_UPSTREAMé herdada do primeiro grupo de pacotes principal com uma configuração que não éINHERIT.
Listas de repositórios permitidos
Quando uma configuração de restrição é definida como ALLOW_SPECIFIC_REPOSITORIES, o grupo de pacotes passa a incluir uma lista de repositórios permitidos, que contém os 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 definida como ALLOW_SPECIFIC_REPOSITORIES.
Ao adicionar um repositório à lista de repositórios permitidos de um grupo de pacotes, é necessário especificar em qual lista adicioná-lo.
As possíveis listas de repositórios permitidos são as seguintes:
EXTERNAL_UPSTREAM: permite ou bloqueia a ingestão de versões de pacotes de repositórios externos no repositório adicionado.INTERNAL_UPSTREAM: permite ou bloqueia a extração de versões de pacotes de outro repositório do CodeArtifact no repositório adicionado.PUBLISH: permite ou bloqueia a publicação direta de versões de pacotes dos gerenciadores de pacotes no repositório adicionado.
Editar configurações de controle de origem do grupo de pacotes
Para adicionar ou editar controles de origem de 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 e Listas de repositórios permitidos.
Como adicionar ou editar controles de origem do grupo de pacotes (CLI)
Caso não tenha feito isso, configure a AWS CLI seguindo as etapas emConfigurando com AWS CodeArtifact.
Use o comando
update-package-group-origin-configurationpara adicionar ou editar controles de origem do pacote.Para
--domain, insira o domínio do CodeArtifact que contém o grupo de pacotes que 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 deseja atualizar.Para
--restrictions, insira pares de chave-valor que representam 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 correspondente de repositórios permitidos para a restrição.
aws codeartifact update-package-group-origin-configuration \ --domainmy_domain\ --domain-owner111122223333\ --package-group'/nuget/*'\ --restrictionsINTERNAL_UPSTREAM=ALLOW_SPECIFIC_REPOSITORIES\ --add-allowed-repositories originRestrictionType=INTERNAL_UPSTREAM,repositoryName=my_repo\ --remove-allowed-repositories originRestrictionType=INTERNAL_UPSTREAM,repositoryName=my_repo2O exemplo a seguir adiciona várias restrições e vários repositórios em um comando.
aws codeartifact update-package-group-origin-configuration \ --domainmy_domain\ --domain-owner111122223333\ --package-group'/nuget/*'\ --restrictionsPUBLISH=BLOCK,EXTERNAL_UPSTREAM=ALLOW_SPECIFIC_REPOSITORIES,INTERNAL_UPSTREAM=ALLOW_SPECIFIC_REPOSITORIES\ --add-allowed-repositories originRestrictionType=INTERNAL_UPSTREAM,repositoryName=my_repooriginRestrictionType=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.
Permitir que pacotes com nomes privados sejam publicados, mas não ingeridos
Este cenário provavelmente é comum no gerenciamento de pacotes:
Permita que pacotes com nomes privados sejam publicados em repositórios em seu domínio por meio de gerenciadores de pacotes e impeça que sejam ingeridos em repositórios em seu domínio por meio de repositórios públicos externos.
Permita que todos os outros pacotes sejam ingeridos em repositórios em seu domínio por meio de repositórios públicos externos e impeça que sejam publicados em repositórios em seu domínio por meio 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 seguintes comandos da AWS CLI 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 \ --domainmy_domain\ --package-group/npm/space/anycompany~\ --domain-owner111122223333\ --contact-infocontact@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 \ --domainmy_domain\ --domain-owner111122223333\ --package-group'/npm/space/anycompany~'\ --restrictionsPUBLISH=ALLOW,EXTERNAL_UPSTREAM=BLOCK,INTERNAL_UPSTREAM=ALLOW
Permitir a ingestão de repositórios externos por meio de um repositório
Neste cenário, seu domínio tem vários repositórios. Desses repositórios, repoA tem uma conexão upstream com repoB, que tem uma conexão externa com o repositório público, npmjs.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 para repoA, mas somente por meio de repoB. 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, EXTERNAL_UPSTREAM: ALLOW_SPECIFIC_REPOSITORIES e INTERNAL_UPSTREAM: ALLOW_SPECIFIC_REPOSITORIES.
repoA e repoB adicionados à lista apropriada de repositórios permitidos:
repoAdeve ser adicionado à listaINTERNAL_UPSTREAM, pois obterá pacotes de seu upstream interno,repoB.repoBdeve ser adicionado à listaEXTERNAL_UPSTREAM, pois obterá pacotes do repositório externo,npmjs.com.
Os seguintes comandos da AWS CLI 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 \ --domainmy_domain\ --package-group/npm/space/anycompany~\ --domain-owner111122223333\ --contact-infocontact@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 \ --domainmy_domain\ --domain-owner111122223333\ --package-group/npm/space/anycompany~\ --restrictionsPUBLISH=BLOCK,EXTERNAL_UPSTREAM=ALLOW_SPECIFIC_REPOSITORIES,INTERNAL_UPSTREAM=ALLOW_SPECIFIC_REPOSITORIES\ --add-allowed-repositories originRestrictionType=INTERNAL_UPSTREAM,repositoryName=repoAoriginRestrictionType=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 tanto os pacotes quanto os grupos de pacotes associados têm configurações de controle de origem, é importante entender como essas duas configurações diferentes interagem entre si. Para obter mais informações sobre a interação entre as configurações, consulte Como os controles de origem do pacote interagem com os controles de origem do grupo de pacotes.