Controlli dell'origine dei gruppi di pacchetti - CodeArtifact

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Controlli dell'origine dei gruppi di pacchetti

I controlli di origine dei pacchetti vengono utilizzati per configurare il modo in cui le versioni dei pacchetti possono entrare in un dominio. È possibile impostare i controlli di origine su un gruppo di pacchetti per configurare il modo in cui le versioni di ogni pacchetto associato al gruppo di pacchetti possono accedere a repository specifici nel dominio.

Le impostazioni di controllo dell'origine dei gruppi di pacchetti sono le seguenti:

  • Impostazioni di restrizione: Queste impostazioni definiscono se i pacchetti possono accedere a un repository CodeArtifact da archivi di pubblicazione, interni o pubblici esterni.

  • Elenchi di repository consentiti: Ogni impostazione di restrizione può essere impostata per consentire l'utilizzo di archivi specifici. Se un'impostazione di restrizione è impostata per consentire repository specifici, a tale restrizione verrà associato un elenco di repository consentiti corrispondente.

Nota

Le impostazioni di controllo dell'origine per i gruppi di pacchetti sono leggermente diverse dalle impostazioni di controllo dell'origine per i singoli pacchetti. Per ulteriori informazioni sulle impostazioni di controllo dell'origine per i pacchetti, vedereImpostazioni di controllo dell'origine del pacchetto.

Impostazioni di restrizione

Le impostazioni di restrizione delle impostazioni di controllo dell'origine di un gruppo di pacchetti determinano in che modo i pacchetti associati a quel gruppo possono entrare nei repository del dominio.

PUBLISH

L'PUBLISHimpostazione configura se le versioni dei pacchetti possono essere pubblicate direttamente in qualsiasi repository del dominio utilizzando gestori di pacchetti o strumenti simili.

  • ALLOW: le versioni dei pacchetti possono essere pubblicate direttamente in tutti gli archivi.

  • BLOCK: Le versioni dei pacchetti non possono essere pubblicate direttamente in nessun repository.

  • ALLOW_SPECIFIC_REPOSITORIES: le versioni dei pacchetti possono essere pubblicate direttamente solo nei repository specificati nell'elenco dei repository consentiti per la pubblicazione.

  • INHERIT: l'PUBLISHimpostazione viene ereditata dal primo gruppo di pacchetti principale con un'impostazione che non lo è. INHERIT

EXTERNAL_UPSTREAM

L'EXTERNAL_UPSTREAMimpostazione configura se le versioni dei pacchetti possono essere importate da archivi pubblici esterni quando richiesto da un gestore di pacchetti. Per un elenco dei repository esterni supportati, vedere. Archivi di connessioni esterne supportati

  • CONSENTI: Qualsiasi versione del pacchetto può essere inserita in tutti gli archivi da una fonte pubblica con una connessione esterna.

  • BLOCK: Le versioni dei pacchetti non possono essere inserite in alcun repository da una fonte pubblica con una connessione esterna.

  • ALLOW_SPECIFIC_REPOSITORIES: le versioni dei pacchetti possono essere importate solo da una fonte pubblica nei repository specificati nell'elenco dei repository consentiti per gli upstream esterni.

  • INHERIT: l'impostazione viene ereditata dal primo gruppo di pacchetti principale con EXTERNAL_UPSTREAM un'impostazione che non lo è. INHERIT

INTERNAL_UPSTREAM

L'INTERNAL_UPSTREAMimpostazione configura se le versioni dei pacchetti possono essere conservate dagli archivi upstream interni nello stesso CodeArtifact dominio quando richiesto da un gestore di pacchetti.

  • CONSENTI: Qualsiasi versione del pacchetto può essere conservata da altri CodeArtifact repository configurati come archivi upstream.

  • BLOCK: Le versioni dei pacchetti non possono essere conservate da altri CodeArtifact repository configurati come repository upstream.

  • ALLOW_SPECIFIC_REPOSITORIES: le versioni dei pacchetti possono essere conservate solo da CodeArtifact altri repository configurati come repository upstream nei repository specificati nell'elenco dei repository consentiti per gli upstream interni.

  • INHERIT: l'impostazione viene ereditata dal primo gruppo di pacchetti principale con un'impostazione che non lo èINTERNAL_UPSTREAM. INHERIT

Elenchi di repository consentiti

Quando un'impostazione di restrizione è configurata comeALLOW_SPECIFIC_REPOSITORIES, il gruppo di pacchetti contiene un elenco di repository consentiti che contiene un elenco di repository consentiti per tale impostazione di restrizione. Pertanto, un gruppo di pacchetti contiene da 0 a 3 elenchi di repository consentiti, uno per ogni impostazione configurata come. ALLOW_SPECIFIC_REPOSITORIES

Quando si aggiunge un repository all'elenco di repository consentiti di un gruppo di pacchetti, è necessario specificare a quale elenco di repository consentiti aggiungerlo.

I possibili elenchi di repository consentiti sono i seguenti:

  • EXTERNAL_UPSTREAM: consente o blocca l'inserimento delle versioni dei pacchetti da repository esterni nel repository aggiunto.

  • INTERNAL_UPSTREAM: consente o blocca l'estrazione delle versioni dei pacchetti da un altro CodeArtifact repository nel repository aggiunto.

  • PUBLISH: consente o blocca la pubblicazione diretta delle versioni dei pacchetti dai gestori di pacchetti nell'archivio aggiunto.

Modifica delle impostazioni di controllo dell'origine dei gruppi di pacchetti

Per aggiungere o modificare i controlli di origine per un gruppo di pacchetti, effettuate i passaggi indicati nella procedura seguente. Per informazioni sulle impostazioni del controllo dell'origine del gruppo di pacchetti, vedere Impostazioni di restrizione eElenchi di repository consentiti.

Per aggiungere o modificare i controlli di origine dei gruppi di pacchetti (CLI)
  1. In caso contrario, configurali AWS CLI seguendo la procedura riportata di seguito. Configurazione con AWS CodeArtifact

  2. Usa il update-package-group-origin-configuration comando per aggiungere o modificare i controlli di origine del pacchetto.

    • Per--domain, inserisci il CodeArtifact dominio che contiene il gruppo di pacchetti che desideri aggiornare.

    • Per--domain-owner, inserisci il numero di account del proprietario del dominio.

    • Per--package-group, inserisci il gruppo di pacchetti che desideri aggiornare.

    • Per--restrictions, inserisci coppie chiave-valore che rappresentano le restrizioni di controllo dell'origine.

    • Per--add-allowed-repositories, inserisci un oggetto JSON contenente il tipo di restrizione e il nome del repository da aggiungere all'elenco dei repository consentiti corrispondenti per la restrizione.

    • Ad esempio--remove-allowed-repositories, inserisci un oggetto JSON contenente il tipo di restrizione e il nome del repository da rimuovere dall'elenco dei repository consentiti corrispondente per la restrizione.

    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'esempio seguente aggiunge più restrizioni e più repository in un unico 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

Esempi di configurazione del controllo dell'origine dei gruppi di pacchetti

Gli esempi seguenti mostrano le configurazioni del controllo dell'origine dei pacchetti per scenari comuni di gestione dei pacchetti.

Consentire la pubblicazione ma non l'importazione di pacchetti con nomi privati

Questo scenario è probabilmente uno scenario comune nella gestione dei pacchetti:

  • Consenti la pubblicazione di pacchetti con nomi privati nei repository del tuo dominio dai gestori di pacchetti e impedisci che vengano importati nei repository del tuo dominio da repository pubblici esterni.

  • Consenti l'importazione di tutti gli altri pacchetti nei repository del tuo dominio da archivi pubblici esterni e impedisci che vengano pubblicati nei repository del tuo dominio dai gestori di pacchetti.

A tal fine, è necessario configurare un gruppo di pacchetti con uno schema che includa i nomi privati e le impostazioni di origine di PUBLISH: ALLOW, EXTERNAL_UPSTREAM: BLOCK e INTERNAL_UPSTREAM: ALLOW. Ciò garantirà che i pacchetti con nomi privati possano essere pubblicati direttamente, ma non possano essere importati da repository esterni.

I seguenti AWS CLI comandi creano e configurano un gruppo di pacchetti con impostazioni di restrizione dell'origine che corrispondono al comportamento desiderato:

Per creare il gruppo di pacchetti:

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"

Per aggiornare la configurazione di origine del gruppo di pacchetti:

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

Consentire l'importazione da repository esterni tramite un repository

In questo scenario, il dominio dispone di più repository. Di questi repository, repoA dispone di una connessione upstream arepoB, che dispone di una connessione esterna all'archivio pubblico, npmjs.com come illustrato di seguito:

repoA --> repoB --> npmjs.com

Si desidera consentire l'inserimento di pacchetti da un gruppo di pacchetti specifico, /npm/space/anycompany~ da npmjs.com inrepoA, ma solo tramite. repoB Volete anche bloccare l'inserimento dei pacchetti associati al gruppo di pacchetti in qualsiasi altro repository del vostro dominio e bloccare la pubblicazione diretta dei pacchetti con i gestori di pacchetti. A tal fine, create e configurate il gruppo di pacchetti come segue:

Impostazioni di restrizione dell'origine di PUBLISH: BLOCK e EXTERNAL_UPSTREAM: ALLOW_SPECIFIC_REPOSITORIES e INTERNAL_UPSTREAM: ALLOW_SPECIFIC_REPOSITORIES.

repoAe aggiunto all'elenco di repository consentiti appropriato: repoB

  • repoAdeve essere aggiunto all'INTERNAL_UPSTREAMelenco, in quanto riceverà i pacchetti dal suo upstream interno,. repoB

  • repoBdovrebbe essere aggiunto alla EXTERNAL_UPSTREAM lista, in quanto otterrà i pacchetti dal repository esterno,. npmjs.com

I seguenti AWS CLI comandi creano e configurano un gruppo di pacchetti con impostazioni di restrizione dell'origine che corrispondono al comportamento desiderato:

Per creare il gruppo di pacchetti:

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"

Per aggiornare la configurazione di origine del gruppo di pacchetti:

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

In che modo le impostazioni di controllo dell'origine del gruppo di pacchetti interagiscono con le impostazioni di controllo dell'origine dei pacchetti

Poiché i pacchetti hanno impostazioni di controllo dell'origine e i gruppi di pacchetti associati hanno impostazioni di controllo dell'origine, è importante capire come queste due diverse impostazioni interagiscono tra loro. Per informazioni sull'interazione tra le impostazioni, vedereIn che modo i controlli di origine dei pacchetti interagiscono con i controlli di origine dei gruppi di pacchetti.