Verwaltetes Signieren - Amazon ECR

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.

Verwaltetes Signieren

Die von Amazon ECR verwaltete Signatur signiert Ihre Container-Images automatisch, indem kryptografische Signaturen mithilfe von AWS Signer generiert werden, wenn Bilder an Amazon ECR übertragen werden. Dadurch entfällt die Notwendigkeit, clientseitige Tools zu installieren und zu konfigurieren, und Sie können das Signieren als Registrierungskonfiguration zentral steuern.

Voraussetzungen

Um verwaltetes Signieren zu konfigurieren, erstellen Sie mit Amazon ECR eine Signaturkonfiguration, die auf ein oder mehrere Unterzeichner-Signaturprofile und optional auf Repository-Filter verweist, die einschränken, welche Repositorys ihre Bilder signieren sollen. Nach der Konfiguration signiert Amazon ECR Managed Signing Bilder automatisch, wenn sie übertragen werden. Dabei wird die Identität der Entität verwendet, die das Bild überträgt.

Bevor Sie die verwaltete Signatur konfigurieren können, müssen Sie über Folgendes verfügen:

  • Ein Signaturprofil für Unterzeichner — Erstellen Sie mindestens ein Signaturprofil für Unterzeichner. Ein AWS Signaturprofil ist eine einzigartige Unterzeichnerressource, mit der Sie Signaturvorgänge in Amazon ECR ausführen können. Mit Signaturprofilen können Sie Codeartefakte wie Container-Images und AWS Lambda Bereitstellungspakete signieren und verifizieren. Jedes Signaturprofil gibt die Signaturplattform an, für die signiert werden soll, eine Plattform-ID und andere plattformspezifische Informationen. Ein ARN für ein Signaturprofil sieht beispielsweise so aus:arn:partition:signer:region:account-id:/signing-profiles/profile-name.

  • IAM-Berechtigungen — Der IAM-Principal, der das Image überträgt, muss über die erforderlichen IAM-Berechtigungen für den Zugriff auf das entsprechende Signaturprofil des Unterzeichners und das entsprechende ECR-Repository verfügen. Sie müssen die identitätsbasierte Richtlinie für den IAM-Prinzipal so ändern, dass sie Berechtigungen sowohl für ECR-Repository-Operationen als auch für Signaturvorgänge des Unterzeichners umfasst. Die folgende Beispielrichtlinie zeigt die erforderlichen Berechtigungen:

{ "Version": "2012-10-17", "Statement": [ { "Sid":"UploadSignaturePermissions", "Effect":"Allow", "Action":[ "ecr:CompleteLayerUpload", "ecr:UploadLayerPart", "ecr:InitiateLayerUpload", "ecr:BatchCheckLayerAvailability", "ecr:PutImage" ], "Resource":"arn:aws:ecr:region:account-id:repository/repository-name" }, { "Sid": "SignPermissions", "Effect": "Allow", "Action": [ "signer:SignPayload" ], "Resource": "arn:aws:signer:region:account-id:/signing-profiles/signing-profile-name" } ] }

Mit Amazon ECR Managed Signing können Sie mehrere Signaturregeln (bis zu 10 pro Registrierung) erstellen, um stärkere Sicherheitsgrenzen zu schaffen. Sie könnten beispielsweise mehrere Build-Pipelines ausführen und einschränken wollen, welche Repositorys jede Pipeline signieren kann. In jeder Regel konfigurieren Sie ein Signaturprofil und geben Repository-Namensfilter an. Wenn ein neues Bild übertragen wird, passt Amazon ECR an, welche Signaturregel und welches Signaturprofil das Bild signieren können. Wenn es mehrere Übereinstimmungen gibt, generiert Amazon ECR mehrere Signaturen.

Anmerkung

Wenn Sie Signaturen manuell verifizieren, müssen Sie trotzdem die Notation CLI installieren.

Anmerkung

Die von Amazon ECR verwaltete Signatur ist in allen AWS Regionen verfügbar, in denen das Signieren von Container-Images mit AWS Signer verfügbar ist.

Erste Schritte

Gehen Sie wie folgt vor, um die verwaltete Signatur zu konfigurieren. Sie stellen Amazon ECR einen Verweis auf ein Signaturprofil eines Unterzeichners und optional Filter zur Verfügung, die einschränken, welche Repositorys ihre Bilder signieren sollen.

AWS-Managementkonsole

Verwenden Sie die folgenden Schritte, um das verwaltete Signieren mithilfe von zu konfigurieren. AWS-Managementkonsole

  1. Öffnen Sie die Amazon ECR-Konsole. Wählen Sie im linken Navigationsbereich Private Registrierung, Funktionen und Einstellungen, Verwaltete Signatur aus.

  2. Wählen Sie auf der Seite Signaturregeln die Option Regel erstellen aus.

  3. Wählen Sie auf der Seite AWS Signaturprofil unter Unterzeichnerprofil auswählen die Option Neues AWS Unterzeichnerprofil erstellen aus, geben Sie einen Profilnamen ein und ändern Sie optional die Gültigkeitsdauer der Signatur. Wählen Sie dann Weiter aus.

  4. Geben Sie auf der Seite Filter unter Repositorys auswählen einen Repository-Namensfilter ein. Wählen Sie dann Weiter aus.

  5. Überprüfen Sie auf der Seite Überprüfen und erstellen die von Ihnen eingegebenen Filter für das AWS Unterzeichnerprofil und den Namen des Repositorys. Wenn alles korrekt aussieht, wählen Sie Speichern aus.

AWS CLI

Verwenden Sie die folgenden AWS CLI Befehle, um die verwaltete Signatur zu konfigurieren.

  • Erstellen Sie eine Signaturregel

    Erstellen Sie eine Signaturkonfiguration mit Ihrem Signierprofil ARN. Erstellen Sie eine JSON-Datei mit folgendem Inhalt:

    { "rules": [ { "signingProfileArn": "arn:aws:signer:region:account-id:/signing-profiles/profile-name", "repositoryFilters": [ { "filter": "test*", "filterType": "WILDCARD_MATCH" } ] } ] }

    Führen Sie anschließend den folgenden Befehl aus:

    aws ecr --region region \ put-signing-configuration \ --signing-configuration file://signing-config.json

    Sie sollten die API-Antwort sehen, die die Signaturkonfiguration enthält.

  • Sehen Sie sich Ihre Signaturkonfiguration an

    Rufen Sie Ihre Signaturkonfiguration ab:

    aws ecr --region region \ get-signing-configuration

    Sie sollten die API-Antwort sehen, die die Signaturkonfiguration enthält.

  • Überprüfen Sie den Status der Bildsignierung

    Schieben Sie ein Bild in Ihr Repository. Zum Beispiel:

    docker pull ubuntu IMAGE_NAME="account-id.dkr.ecr.region.amazonaws.com/repository-name" IMAGE_TAG="${IMAGE_NAME}:test-1" docker tag ubuntu $IMAGE_TAG docker push $IMAGE_TAG

    Verwenden Sie nach dem Push Ihr Image-Tag, um den Signaturstatus zu überprüfen:

    aws ecr --region region \ describe-image-signing-status \ --repository-name repository-name \ --image-id imageTag=test-1

    Wenn der Repository-Name mit dem in der Signaturkonfiguration definierten Repository-Filter übereinstimmt, sollte in der API-Antwort der Signaturstatus angezeigt werden. Wenn der Status erfolgreich ist, solltest du sehen, dass eine Signatur an dein Repository gesendet wird.

  • Löschen Sie Ihre Signaturkonfiguration

    Löschen Sie Ihre Signaturkonfiguration:

    aws ecr --region region \ delete-signing-configuration

    Sie sollten die API-Antwort sehen, die die gelöschte Signaturkonfiguration enthält.

Überlegungen

Die folgenden Einschränkungen und Funktionen gelten für verwaltetes Signieren:

  • Regionsübergreifendes Signieren wird nicht unterstützt — Signaturprofile müssen sich in derselben Region wie Ihre Amazon ECR-Registrierung befinden. Sie können kein Signaturprofil aus einer Region verwenden, um Bilder in einer Registry in einer anderen Region zu signieren.

  • Kontoübergreifendes Signieren wird unterstützt — Signaturprofile können sich auf anderen Konten als Ihrer Amazon ECR-Registrierung befinden. Auf diese Weise können Unternehmen Signierprofile zentral verwalten und gleichzeitig Entwicklern mit anderen Konten ermöglichen, sie zu verwenden. Weitere Informationen finden Sie im AWS Signer Entwicklerhandbuch unter Kontenübergreifendes Signieren für Unterzeichner einrichten.

  • Signaturen können nicht signiert werden — Sie können Signaturen nicht selbst signieren. Nur Container-Images können signiert werden.