AWS CodeArtifact Authentifizierung und Tokens - CodeArtifact

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.

AWS CodeArtifact Authentifizierung und Tokens

CodeArtifact erfordert, dass sich Benutzer beim Dienst authentifizieren, um Paketversionen zu veröffentlichen oder zu nutzen. Sie müssen sich beim CodeArtifact Dienst authentifizieren, indem Sie mit Ihren AWS Anmeldeinformationen ein Autorisierungstoken erstellen. Um ein Autorisierungstoken zu erstellen, müssen Sie über die richtigen Berechtigungen verfügen. Informationen zu den Berechtigungen, die zum Erstellen eines Autorisierungstokens erforderlich sind, finden Sie im GetAuthorizationToken Eintrag in derAWS CodeArtifact Referenz zu Berechtigungen. Weitere allgemeine Informationen zu CodeArtifact Berechtigungen finden Sie unterWie AWS CodeArtifact funktioniert mit IAM.

Um ein Autorisierungstoken von abzurufen CodeArtifact, müssen Sie den GetAuthorizationToken APIaufrufen. Wenn Sie den verwenden AWS CLI, können Sie GetAuthorizationToken mit dem get-authorization-token Befehl login oder aufrufen.

Anmerkung

Root-Benutzer können nicht anrufenGetAuthorizationToken.

  • aws codeartifact login: Dieser Befehl macht es einfach, gängige Paketmanager für die Verwendung CodeArtifact in einem einzigen Schritt zu konfigurieren. Beim login Aufrufen wird ein Token mit dem Token GetAuthorizationToken und dem richtigen CodeArtifact Repository-Endpunkt abgerufen und Ihr Paketmanager wird mit diesem konfiguriert. Die Support-Paketmanager lauten wie folgt:

    • dotnet

    • npm

    • Nuget

    • pip

    • schnell

    • binden

  • aws codeartifact get-authorization-token: Für Paketmanager, die nicht von unterstützt werdenlogin, können Sie Ihren Paketmanager get-authorization-token direkt aufrufen und dann nach Bedarf mit dem Token konfigurieren, indem Sie es beispielsweise zu einer Konfigurationsdatei hinzufügen oder es als Umgebungsvariable speichern.

CodeArtifact Autorisierungstoken sind standardmäßig für einen Zeitraum von 12 Stunden gültig. Token können mit einer Lebensdauer zwischen 15 Minuten und 12 Stunden konfiguriert werden. Wenn die Gültigkeitsdauer abläuft, müssen Sie ein anderes Token abrufen. Die Gültigkeitsdauer des Tokens beginnt danach login oder get-authorization-token wird aufgerufen.

Wenn login oder während der Übernahme einer Rolle aufgerufen get-authorization-token wird, können Sie die Lebensdauer des Tokens so konfigurieren, dass sie der verbleibenden Zeit in der Sitzungsdauer der Rolle entspricht, indem Sie den Wert --duration-seconds auf setzen0. Andernfalls ist die Lebensdauer des Tokens unabhängig von der maximalen Sitzungsdauer der Rolle. Angenommen, Sie rufen an sts assume-role und geben eine Sitzungsdauer von 15 Minuten an und rufen dann an, login um ein CodeArtifact Autorisierungstoken abzurufen. In diesem Fall ist das Token für den gesamten Zeitraum von 12 Stunden gültig, auch wenn dieser länger als die Sitzungsdauer von 15 Minuten ist. Informationen zur Steuerung der Sitzungsdauer finden Sie unter Verwenden von IAM Rollen im IAMBenutzerhandbuch.

Mit dem login Befehl erstellte Tokens

Der aws codeartifact login Befehl ruft ein Token mit dem Token ab GetAuthorizationToken und konfiguriert Ihren Paketmanager mit dem Token und dem richtigen CodeArtifact Repository-Endpunkt.

In der folgenden Tabelle werden die Parameter für den login Befehl beschrieben.

Parameter Erforderlich Beschreibung

--tool

Ja

Der Paketmanager, bei dem Sie sich authentifizieren möchten. Mögliche Werte sinddotnet,npm, nugetpip, swift undtwine.

--domain

Ja

Der Domainname, zu dem das Repository gehört.

--domain-owner

Nein

Die ID des Besitzers der Domain. Dieser Parameter ist erforderlich, wenn Sie auf eine Domain zugreifen, die einem AWS Konto gehört, für das Sie nicht authentifiziert sind. Weitere Informationen finden Sie unter Kontenübergreifende Domänen.

--repository

Ja

Der Name des Repositorys, für das Sie sich authentifizieren möchten.

--duration-seconds

Nein

Die Zeit in Sekunden, in der die Anmeldeinformationen gültig sind. Der Mindestwert ist 900* und der Höchstwert ist 43200.

--namespace

Nein

Ordnet Ihrem Repository-Tool einen Namespace zu.

--dry-run

Nein

Drucken Sie nur die Befehle aus, die ausgeführt würden, um Ihr Tool mit Ihrem Repository zu verbinden, ohne Änderungen an Ihrer Konfiguration vorzunehmen.

*Ein Wert von 0 ist auch gültig, wenn Sie anrufen login und gleichzeitig eine Rolle übernehmen. Wenn Sie login mit aufrufen, --duration-seconds 0 wird ein Token erstellt, dessen Lebensdauer der verbleibenden Zeit in der Sitzungsdauer einer übernommenen Rolle entspricht.

Das folgende Beispiel zeigt, wie ein Autorisierungstoken mit dem login Befehl abgerufen wird.

aws codeartifact login \ --tool dotnet | npm | nuget | pip | swift | twine \ --domain my_domain \ --domain-owner 111122223333 \ --repository my_repo

Spezifische Anleitungen zur Verwendung des login Befehls mit npm finden Sie unter. Konfigurieren und verwenden Sie npm mit CodeArtifact Informationen zu Python finden Sie unter CodeArtifact Mit Python verwenden.

Zum Aufrufen von sind Berechtigungen erforderlich GetAuthorizationToken API

Zum Aufrufen von sind sts:GetServiceBearerToken sowohl die als auch die codeartifact:GetAuthorizationToken Berechtigungen erforderlich CodeArtifact GetAuthorizationTokenAPI.

Um einen Paketmanager mit einem CodeArtifact Repository zu verwenden, muss Ihr IAM Benutzer oder Ihre Rolle dies zulassensts:GetServiceBearerToken. Die Berechtigung sts:GetServiceBearerToken kann zwar zu einer CodeArtifact Domänenressourcenrichtlinie hinzugefügt werden, hat jedoch keine Auswirkung auf diese Richtlinie.

Tokens, die mit dem erstellt wurden GetAuthorizationToken API

Sie können aufrufenget-authorization-token, um ein Autorisierungstoken von CodeArtifact abzurufen.

aws codeartifact get-authorization-token \ --domain my_domain \ --domain-owner 111122223333 \ --query authorizationToken \ --output text

Mit dem --duration-seconds Argument können Sie ändern, wie lange ein Token gültig ist. Der Mindestwert ist 900 und der Höchstwert ist 43200. Im folgenden Beispiel wird ein Token erstellt, das 1 Stunde (3600 Sekunden) gültig ist.

aws codeartifact get-authorization-token \ --domain my_domain \ --domain-owner 111122223333 \ --query authorizationToken \ --output text \ --duration-seconds 3600

Wenn Sie aufrufen, get-authorization-token während Sie eine Rolle übernehmen, ist die Lebensdauer des Tokens unabhängig von der maximalen Sitzungsdauer der Rolle. Sie können das Token so konfigurieren, dass es abläuft, wenn die Sitzungsdauer der angenommenen Rolle abläuft, indem Sie --duration-seconds es auf 0 setzen.

aws codeartifact get-authorization-token \ --domain my_domain \ --domain-owner 111122223333 \ --query authorizationToken \ --output text \ --duration-seconds 0

Weitere Informationen finden Sie in der folgenden Dokumentation:

Übergeben Sie ein Authentifizierungstoken mithilfe einer Umgebungsvariablen

AWS CodeArtifact verwendet von der zur Verfügung gestellte Autorisierungstoken GetAuthorizationTokenAPI, um Anfragen von Build-Tools wie Maven und Gradle zu authentifizieren und zu autorisieren. Weitere Informationen zu diesen Authentifizierungstoken finden Sie unter. Tokens, die mit dem erstellt wurden GetAuthorizationToken API

Sie können diese Authentifizierungstoken in einer Umgebungsvariablen speichern, die von einem Build-Tool gelesen werden kann, um das Token zu erhalten, das zum Abrufen von Paketen aus einem CodeArtifact Repository oder zum Veröffentlichen von Paketen in diesem Repository benötigt wird.

Aus Sicherheitsgründen ist dieser Ansatz dem Speichern des Tokens in einer Datei vorzuziehen, wo es von anderen Benutzern oder Prozessen gelesen oder versehentlich in die Quellcodeverwaltung eingecheckt werden kann.

  1. Konfigurieren Sie Ihre AWS Anmeldeinformationen wie unter beschriebenInstallieren oder aktualisieren Sie und konfigurieren Sie dann das AWS CLI.

  2. Legen Sie die CODEARTIFACT_AUTH_TOKEN-Umgebungsvariable fest:

    Anmerkung

    In einigen Szenarien müssen Sie das --domain-owner Argument nicht angeben. Weitere Informationen finden Sie unter Kontenübergreifende Domänen.

    • macOS oder Linux:

      export CODEARTIFACT_AUTH_TOKEN=`aws codeartifact get-authorization-token --domain my_domain --domain-owner 111122223333 --query authorizationToken --output text`
    • Windows (unter Verwendung der Standard-Befehlsshell):

      for /f %i in ('aws codeartifact get-authorization-token --domain my_domain --domain-owner 111122223333 --query authorizationToken --output text') do set CODEARTIFACT_AUTH_TOKEN=%i
    • Windows PowerShell:

      $env:CODEARTIFACT_AUTH_TOKEN = aws codeartifact get-authorization-token --domain my_domain --domain-owner 111122223333 --query authorizationToken --output text

Widerrufen von CodeArtifact Autorisierungstoken

Wenn ein authentifizierter Benutzer ein Token für den Zugriff auf CodeArtifact Ressourcen erstellt, ist dieses Token gültig, bis der anpassbare Zugriffszeitraum abgelaufen ist. Die Standardzugriffsdauer beträgt 12 Stunden. Unter bestimmten Umständen möchten Sie möglicherweise den Zugriff auf ein Token widerrufen, bevor der Zugriffszeitraum abgelaufen ist. Sie können den Zugriff auf CodeArtifact Ressourcen widerrufen, indem Sie diese Anweisungen befolgen.

Wenn Sie das Zugriffstoken mit temporären Sicherheitsanmeldedaten wie übernommenen Rollen oder Verbundbenutzerzugriff erstellt haben, können Sie den Zugriff widerrufen, indem Sie eine IAM Richtlinie aktualisieren, um den Zugriff zu verweigern. Weitere Informationen finden Sie im IAMBenutzerhandbuch unter Deaktivieren von Berechtigungen für temporäre Sicherheitsanmeldeinformationen.

Wenn Sie bei der Erstellung des Zugriffstokens langfristige IAM Benutzeranmeldedaten verwendet haben, müssen Sie die Benutzerrichtlinie ändern, um den Zugriff zu verweigern oder den IAM Benutzer zu löschen. Weitere Informationen finden Sie unter Berechtigungen für einen IAM Benutzer ändern oder IAMBenutzer löschen.