

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

# Einstellungen zur Paketherkunft bearbeiten
<a name="package-origin-controls"></a>

In können Paketversionen einem Repository hinzugefügt werden AWS CodeArtifact, indem sie direkt veröffentlicht, aus einem Upstream-Repository heruntergeladen oder aus einem externen, öffentlichen Repository aufgenommen werden. Wenn Sie zulassen, dass Paketversionen eines Pakets sowohl durch direkte Veröffentlichung als auch durch Aufnahme aus öffentlichen Repositorys hinzugefügt werden, sind Sie anfällig für Angriffe, die Abhängigkeiten ersetzen. Weitere Informationen finden Sie unter [Angriffe zur Substitution von Abhängigkeiten](dependency-substitution-attacks.md). Um sich vor einem Angriff durch die Substitution von Abhängigkeiten zu schützen, können Sie die Kontrolle des Paketursprungs für ein Paket in einem Repository konfigurieren, um einzuschränken, wie Versionen dieses Pakets dem Repository hinzugefügt werden können.

Die Konfiguration von Kontrollen zur Paketherkunft sollte von jedem Team in Betracht gezogen werden, das zulassen möchte, dass neue Versionen verschiedener Pakete sowohl aus internen Quellen wie Direktveröffentlichungen als auch aus externen Quellen wie öffentlichen Repositorien stammen. Standardmäßig werden die Kontrollen für den Paketursprung darauf konfiguriert, wie die erste Version eines Pakets zum Repository hinzugefügt wird. Hinweise zu den Einstellungen für die Steuerung des Paketursprungs und deren Standardwerte finden Sie unter[Einstellungen zur Kontrolle des Paketursprungs](#package-origin-control-settings).

Um den Paketdatensatz nach der Verwendung des `put-package-origin-configuration` API-Vorgangs zu entfernen, verwenden Sie `delete-package` (siehe[Löschen Sie ein Paket oder eine Paketversion](delete-package.md)).

## Allgemeine Szenarien zur Paketzugriffskontrolle
<a name="package-origin-control-scenarios"></a>

Dieser Abschnitt enthält einige allgemeine Szenarien, wenn eine Paketversion zu einem CodeArtifact Repository hinzugefügt wird. Die Einstellungen zur Kontrolle des Paketursprungs werden für neue Pakete festgelegt, je nachdem, wie die erste Paketversion hinzugefügt wird.

In den folgenden Szenarien ist ein *internes Paket* ein Paket, das direkt von einem Paketmanager in Ihrem Repository veröffentlicht wird, z. B. ein Paket, das Sie oder Ihr Team erstellen und verwalten. Ein *externes Paket* ist ein Paket, das in einem öffentlichen Repository vorhanden ist und über eine externe Verbindung in Ihr Repository aufgenommen werden kann.

**Eine externe Paketversion wird für ein vorhandenes internes Paket veröffentlicht**

Stellen Sie sich in diesem Szenario ein internes Paket, *PackageA*, vor. Ihr Team veröffentlicht die erste Paketversion für *PackageA in einem Repository*. CodeArtifact Da dies die erste Paketversion für dieses Paket ist, werden die Einstellungen für die Kontrolle des Paketursprungs automatisch auf **Veröffentlichen: Zulassen und **Upstream:**** Blockieren gesetzt. Sobald das Paket in Ihrem Repository vorhanden ist, wird ein Paket mit demselben Namen in einem öffentlichen Repository veröffentlicht, das mit Ihrem CodeArtifact Repository verbunden ist. Dies könnte ein versuchter Angriff zur Substitution von Abhängigkeiten auf das interne Paket sein, oder es könnte auch einfach ein Zufall sein. Unabhängig davon sind die Kontrollen zur Paketherkunft so konfiguriert, dass sie die Aufnahme der neuen externen Version blockieren, um sich vor einem möglichen Angriff zu schützen.

In der folgenden Abbildung ist *RepoA* Ihr CodeArtifact Repository mit einer externen Verbindung zu einem öffentlichen Repository. Ihr Repository enthält die Versionen 1.1 und 2.1 von *PackageA*, aber Version 3.0 ist im öffentlichen Repository veröffentlicht. Normalerweise würde *RepoA* Version 3.0 aufnehmen, nachdem das Paket von einem Paketmanager angefordert wurde. Da die Paketaufnahme auf **Blockieren** gesetzt ist, wird Version 3.0 nicht in Ihr CodeArtifact Repository aufgenommen und steht den damit verbundenen Paketmanagern nicht zur Verfügung.

![\[Einfache Grafik, die zeigt, dass eine neue externe Paketversion aus einem öffentlichen Repository blockiert wird.\]](http://docs.aws.amazon.com/de_de/codeartifact/latest/ug/images/package-origin-controls-one.png)


**Eine interne Paketversion wird für ein vorhandenes externes Paket veröffentlicht**

In diesem Szenario existiert ein Paket, *PackageB*, extern in einem öffentlichen Repository, das Sie mit Ihrem Repository verbunden haben. Wenn ein mit Ihrem Repository verbundener Paketmanager *PackageB* anfordert, wird die Paketversion aus dem öffentlichen Repository in Ihr Repository aufgenommen. **Da dies die erste Paketversion von *PackageB* ist, die zu Ihrem Repository hinzugefügt wurde, sind die Einstellungen für den Paketursprung auf **Publish: BLOCK und Upstream:** ALLOW konfiguriert.** Später versuchen Sie, eine Version mit demselben Paketnamen im Repository zu veröffentlichen. Entweder kennen Sie das öffentliche Paket nicht und versuchen, ein Paket, das nichts damit zu tun hat, unter demselben Namen zu veröffentlichen, oder Sie versuchen, eine gepatchte Version zu veröffentlichen, oder Sie versuchen, genau die Paketversion, die bereits extern existiert, direkt zu veröffentlichen. CodeArtifact lehnt die Version ab, die Sie veröffentlichen möchten, ermöglicht es Ihnen jedoch, die Ablehnung explizit zu überschreiben und die Version bei Bedarf zu veröffentlichen.

In der folgenden Abbildung ist *RepoA* Ihr CodeArtifact Repository mit einer externen Verbindung zu einem öffentlichen Repository. Ihr Repository enthält Version 3.0, die es aus dem öffentlichen Repository aufgenommen hat. Sie möchten Version 1.1 in Ihrem Repository veröffentlichen. Normalerweise könnten Sie Version 1.2 in *RepoA* veröffentlichen, aber da die Veröffentlichung auf **Blockieren** eingestellt ist, kann Version 1.2 nicht veröffentlicht werden.

![\[Einfache Grafik, die zeigt, dass eine neue externe Paketversion aus einem öffentlichen Repository blockiert wird.\]](http://docs.aws.amazon.com/de_de/codeartifact/latest/ug/images/package-origin-controls-two.png)


**Veröffentlichung einer gepatchten Paketversion eines vorhandenen externen Pakets**

In diesem Szenario existiert ein Paket, *PackageB*, extern in einem öffentlichen Repository, das Sie mit Ihrem Repository verbunden haben. Wenn ein mit Ihrem Repository verbundener Paketmanager *PackageB* anfordert, wird die Paketversion aus dem öffentlichen Repository in Ihr Repository aufgenommen. **Da dies die erste Paketversion von *PackageB* ist, die zu Ihrem Repository hinzugefügt wurde, sind die Einstellungen für den Paketursprung auf **Publish: BLOCK und Upstream:** ALLOW konfiguriert.** Ihr Team entscheidet, dass es gepatchte Paketversionen dieses Pakets im Repository veröffentlichen muss. Um Paketversionen direkt veröffentlichen zu können, ändert Ihr Team die Einstellungen zur Kontrolle des Paketursprungs in **Publish: ALLOW** und **Upstream: BLOCK**. Versionen dieses Pakets können jetzt direkt in Ihrem Repository veröffentlicht und aus öffentlichen Repositorys aufgenommen werden. **Nachdem Ihr Team die gepatchten Paketversionen veröffentlicht hat, setzt Ihr Team die Einstellungen für den Paketursprung auf **Publish: BLOCK und Upstream: ALLOW** zurück.**

## Einstellungen zur Kontrolle des Paketursprungs
<a name="package-origin-control-settings"></a>

Mit den Kontrollen zur Paketherkunft können Sie konfigurieren, wie Paketversionen zu einem Repository hinzugefügt werden können. Die folgenden Listen enthalten die verfügbaren Einstellungen und Werte für die Steuerung des Paketursprungs.

**Anmerkung**  
Die verfügbaren Einstellungen und Werte unterscheiden sich bei der Konfiguration der Ursprungskontrollen für Paketgruppen. Weitere Informationen finden Sie unter [Herkunftskontrollen für Paketgruppen](package-group-origin-controls.md).

**Veröffentlichen**

Diese Einstellung konfiguriert, ob Paketversionen mithilfe von Paketmanagern oder ähnlichen Tools direkt im Repository veröffentlicht werden können.
+ **ZULASSEN**: Paketversionen können direkt veröffentlicht werden.
+ **BLOCK**: Paketversionen können nicht direkt veröffentlicht werden.

**Upstream**

Diese Einstellung konfiguriert, ob Paketversionen aus externen, öffentlichen Repositorys aufgenommen oder von Upstream-Repositorys beibehalten werden können, wenn dies von einem Paketmanager angefordert wird.
+ **ALLOW**: Jede Paketversion kann aus anderen CodeArtifact Repositorys beibehalten werden, die als Upstream-Repositorys konfiguriert sind, oder von einer öffentlichen Quelle mit einer externen Verbindung aufgenommen werden.
+ **BLOCKIEREN**: Paketversionen können nicht aus anderen CodeArtifact Repositorys aufbewahrt werden, die als Upstream-Repositorys konfiguriert sind, oder von einer öffentlichen Quelle mit einer externen Verbindung aufgenommen werden.

## Standardeinstellungen für die Kontrolle des Paketursprungs
<a name="default-package-origin-control-settings"></a>

Die Standardeinstellungen für die Kontrolle des Paketursprungs werden auf der Grundlage der Einstellungen für die Ursprungskontrolle der Paketgruppe konfiguriert, die dem Paket zugeordnet ist. Weitere Informationen zu Paketgruppen und zur Kontrolle der Herkunft von Paketgruppen finden Sie unter [Arbeiten mit Paketgruppen in CodeArtifact](package-groups.md) und[Herkunftskontrollen für Paketgruppen](package-group-origin-controls.md).

Wenn ein Paket mit einer Paketgruppe verknüpft ist, deren Einschränkungseinstellungen `ALLOW` für jeden Einschränkungstyp aktiviert sind, basieren die Standardsteuerungen für den Paketursprung für ein Paket darauf, wie die erste Version dieses Pakets dem Repository hinzugefügt wurde.
+ Wenn die erste Paketversion direkt von einem Paketmanager veröffentlicht wird, lauten die Einstellungen **Publish: ALLOW und Upstream****: BLOCK**.
+ Wenn die erste Paketversion aus einer öffentlichen Quelle aufgenommen wurde, lauten die Einstellungen **Publish: BLOCK und **Upstream: ALLOW****.

**Anmerkung**  
Für Pakete, die vor etwa Mai 2022 in CodeArtifact Repositorys existierten, gelten standardmäßig die Einstellungen **Publish: ALLOW und Upstream:** **ALLOW**. Die Kontrolle des Paketursprungs muss für solche Pakete manuell festgelegt werden. Die aktuellen Standardwerte wurden seitdem für neue Pakete festgelegt und ab dem Start der Funktion am 14. Juli 2022 durchgesetzt. Weitere Informationen zur Einstellung von Kontrollen zur Herkunft von Paketen finden Sie unter[Die Einstellungen für den Paketursprung werden bearbeitet](#edit-package-origin-controls).

Andernfalls, wenn ein Paket einer Paketgruppe zugeordnet ist, die mindestens eine Einschränkungseinstellung von `BLOCK` oder hat`ALLOW_SPECIFIC_REPOSITORIES`, dann werden die Standardeinstellungen für die Ursprungskontrolle für dieses Paket auf **Publish: ALLOW und Upstream:** **ALLOW gesetzt**.

## Wie die Kontrollen zur Herkunft von Paketen mit den Ursprungskontrollen für Paketgruppen interagieren
<a name="package-origin-controls-interaction-package-groups"></a>

Da Pakete über Einstellungen für die Ursprungskontrolle und die zugehörigen Paketgruppen über Einstellungen für die Ursprungskontrolle verfügen, ist es wichtig zu verstehen, wie diese beiden unterschiedlichen Einstellungen miteinander interagieren.

Die Wechselwirkung zwischen den beiden Einstellungen besteht darin, dass eine Einstellung von `BLOCK` immer Vorrang vor einer Einstellung von hat`ALLOW`. In der folgenden Tabelle sind einige Beispielkonfigurationen und ihre effektiven Origin Control-Einstellungen aufgeführt.


| Einstellung zur Kontrolle des Paketursprungs | Einstellung zur Kontrolle des Ursprungs von Paketgruppen | Effektive Einstellung für die Ursprungskontrolle | 
| --- | --- | --- | 
| VERÖFFENTLICHEN: ZULASSENSTROMAUFWÄRTS: ZULASSEN | VERÖFFENTLICHEN: ZULASSENSTROMAUFWÄRTS: ZULASSEN | VERÖFFENTLICHEN: ZULASSENSTROMAUFWÄRTS: ZULASSEN | 
| VERÖFFENTLICHEN: BLOCKIERENSTROMAUFWÄRTS: ZULASSEN | VERÖFFENTLICHEN: ZULASSENSTROMAUFWÄRTS: ZULASSEN | VERÖFFENTLICHEN: BLOCKIERENSTROMAUFWÄRTS: ZULASSEN | 
| VERÖFFENTLICHEN: ZULASSENSTROMAUFWÄRTS: ZULASSEN | VERÖFFENTLICHEN: ZULASSENSTROMAUFWÄRTS: BLOCKIEREN | VERÖFFENTLICHEN: ZULASSENSTROMAUFWÄRTS: BLOCKIEREN | 

Das bedeutet, dass ein Paket mit den Ursprungseinstellungen **Publish: ALLOW** und **Upstream:** ALLOW quasi auf die Origin-Control-Einstellungen der zugehörigen Paketgruppe zurückstellt.

## Die Einstellungen für den Paketursprung werden bearbeitet
<a name="edit-package-origin-controls"></a>

Die Kontrollen zur Paketherkunft werden automatisch konfiguriert, je nachdem, wie die erste Paketversion eines Pakets zum Repository hinzugefügt wurde. Weitere Informationen finden Sie unter[Standardeinstellungen für die Kontrolle des Paketursprungs](#default-package-origin-control-settings). Gehen Sie wie folgt vor, um Steuerungen für den Paketursprung für ein Paket in einem CodeArtifact Repository hinzuzufügen oder zu bearbeiten.

**Um Steuerelemente für den Paketursprung hinzuzufügen oder zu bearbeiten (Konsole)**

1. Öffnen Sie die AWS CodeArtifact Konsole unter [https://console.aws.amazon.com/codesuite/codeartifact/home](https://console.aws.amazon.com/codesuite/codeartifact/home).

1. Wählen Sie im Navigationsbereich **Repositories** und dann das Repository aus, das das Paket enthält, das Sie bearbeiten möchten. 

1. Suchen Sie in der Tabelle **Pakete** nach dem Paket, das Sie bearbeiten möchten, und wählen Sie es aus.

1. Wähle auf der Seite mit der Paketübersicht in **Origin Controls** die Option **Bearbeiten** aus.

1. Wählen **Sie unter „Ursprungskontrollen bearbeiten“** die Kontrollen für den Paketursprung aus, die Sie für dieses Paket festlegen möchten. Beide Einstellungen für die Steuerung des Paketursprungs, Publish und Upstream, müssen gleichzeitig festgelegt werden.
   + Um das direkte Veröffentlichen von Paketversionen zuzulassen, wählen Sie unter **Veröffentlichen** die Option **Zulassen** aus. Um die Veröffentlichung von Paketversionen zu blockieren, wählen Sie **Blockieren** aus.
   + **Um die Aufnahme von Paketen aus externen Repositorys und das Abrufen von Paketen aus Upstream-Repositorys zuzulassen, wählen Sie unter **Upstream-Quellen** die Option Zulassen aus.** **Um die gesamte Aufnahme und das Abrufen von Paketversionen aus externen und Upstream-Repositorys zu blockieren, wählen Sie Blockieren.**

**Um Kontrollen zur Paketherkunft hinzuzufügen oder zu bearbeiten ()AWS CLI**

1. Falls nicht, konfigurieren Sie das, AWS CLI indem Sie die Schritte unter befolgen[Einrichtung mit AWS CodeArtifact](get-set-up-for-codeartifact.md).

1. Verwenden Sie den `put-package-origin-configuration` Befehl, um Steuerelemente für den Paketursprung hinzuzufügen oder zu bearbeiten. Ersetzen Sie die folgenden Felder:
   + *my\$1domain*Ersetzen Sie es durch die CodeArtifact Domain, die das Paket enthält, das Sie aktualisieren möchten.
   + *my\$1repo*Ersetzen Sie es durch das CodeArtifact Repository, das das Paket enthält, das Sie aktualisieren möchten.
   + *npm*Ersetzen Sie es durch das Paketformat des Pakets, das Sie aktualisieren möchten.
   + *my\$1package*Ersetzen Sie es durch den Namen des Pakets, das Sie aktualisieren möchten.
   + Ersetzen Sie *ALLOW* und *BLOCK* durch Ihre gewünschten Einstellungen für die Kontrolle des Paketursprungs.

   ```
   aws codeartifact put-package-origin-configuration --domain my_domain \
   --repository my_repo --format npm --package my_package \ 
   --restrictions publish=ALLOW,upstream=BLOCK
   ```

## Veröffentlichungs- und Upstream-Repositorys
<a name="package-publishing-upstreams"></a>

CodeArtifact erlaubt nicht das Veröffentlichen von Paketversionen, die in erreichbaren Upstream-Repositorys oder öffentlichen Repositorys vorhanden sind. Nehmen wir zum Beispiel an, Sie möchten ein Maven-Paket `com.mycompany.mypackage:1.0` in einem Repository `myrepo` veröffentlichen und `myrepo` haben ein Upstream-Repository mit einer externen Verbindung zu Maven Central. Betrachten Sie die folgenden Szenarien.

1. Die Einstellungen für die Kontrolle des Paketursprungs `com.mycompany.mypackage` lauten **Publish: ALLOW** und **Upstream: ALLOW**. Wenn im Upstream-Repository oder in Maven Central vorhanden `com.mycompany.mypackage:1.0` ist, wird jeder Versuch, darin zu veröffentlichen, `myrepo` mit einem 409-Konfliktfehler CodeArtifact zurückgewiesen. Sie könnten immer noch eine andere Version veröffentlichen, z. B. `com.mycompany.mypackage:1.1`

1. Die Einstellungen für die Kontrolle des Paketursprungs `com.mycompany.mypackage` lauten **Publish: ALLOW** und **Upstream: BLOCK**. Sie können jede Version von `com.mycompany.mypackage` in Ihrem Repository veröffentlichen, die noch nicht existiert, da auf Paketversionen nicht zugegriffen werden kann.

1. Die Einstellungen zur Kontrolle des Paketursprungs `com.mycompany.mypackage` lauten **Publish: BLOCK** und **Upstream: ALLOW**. Sie können keine Paketversionen direkt in Ihrem Repository veröffentlichen.