

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
<a name="package-group-origin-controls"></a>

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](#package-group-origin-control-settings-restrictions): Queste impostazioni definiscono se i pacchetti possono accedere a un repository CodeArtifact da archivi di pubblicazione, interni o pubblici esterni.
+ [Elenchi di repository consentiti](#package-group-origin-control-settings-repositories): 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, vedere[Impostazioni di controllo dell'origine del pacchetto](package-origin-controls.md#package-origin-control-settings).

## Impostazioni di restrizione
<a name="package-group-origin-control-settings-restrictions"></a>

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
<a name="package-group-origin-control-settings-restrictions-publish"></a>

L'`PUBLISH`impostazione 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\$1SPECIFIC\$1REPOSITORIES**: le versioni dei pacchetti possono essere pubblicate direttamente solo nei repository specificati nell'elenco dei repository consentiti per la pubblicazione.
+ **INHERIT**: l'`PUBLISH`impostazione viene ereditata dal primo gruppo di pacchetti principale con un'impostazione che non lo è. `INHERIT`

### EXTERNAL\$1UPSTREAM
<a name="package-group-origin-control-settings-restrictions-ext-upstream"></a>

L'`EXTERNAL_UPSTREAM`impostazione 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](external-connection.md#supported-public-repositories)
+ **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\$1SPECIFIC\$1REPOSITORIES**: 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\$1UPSTREAM
<a name="package-group-origin-control-settings-restrictions-int-upstream"></a>

L'`INTERNAL_UPSTREAM`impostazione 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\$1SPECIFIC\$1REPOSITORIES: 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
<a name="package-group-origin-control-settings-repositories"></a>

Quando un'impostazione di restrizione è configurata come`ALLOW_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
<a name="package-group-edit-origin-controls"></a>

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](#package-group-origin-control-settings-restrictions) e[Elenchi di repository consentiti](#package-group-origin-control-settings-repositories).

**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](get-set-up-for-codeartifact.md)

1. 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
<a name="package-group-origin-control-examples"></a>

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
<a name="package-group-origin-control-examples-one"></a>

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\$1UPSTREAM: BLOCK e INTERNAL\$1UPSTREAM**: 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
<a name="package-group-origin-control-examples-ingestion-one-repo"></a>

In questo scenario, il dominio dispone di più repository. Di questi repository, `repoA` dispone di una connessione upstream a`repoB`, 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` in`repoA`, 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\$1UPSTREAM:** **ALLOW\$1SPECIFIC\$1REPOSITORIES e INTERNAL\$1UPSTREAM: ALLOW\$1SPECIFIC\$1REPOSITORIES**.**

`repoA`e aggiunto all'elenco di repository consentiti appropriato: `repoB`
+ `repoA`deve essere aggiunto alla `INTERNAL_UPSTREAM` lista, in quanto riceverà i pacchetti dal suo upstream interno,. `repoB`
+ `repoB`dovrebbe 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
<a name="package-group-origin-control-settings-interaction"></a>

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, vedere[In che modo i controlli di origine dei pacchetti interagiscono con i controlli di origine dei gruppi di pacchetti](package-origin-controls.md#package-origin-controls-interaction-package-groups).