Private Registrierungsauthentifizierung für Aufgaben - Amazon Elastic Container Service

Private Registrierungsauthentifizierung für Aufgaben

Die private Registrierungsauthentifizierung für Aufgaben mit AWS Secrets Manager ermöglicht es Ihnen, Ihre Anmeldeinformationen sicher zu speichern und dann auf diese in Ihrer Containerdefinition zu verweisen. Auf diese Weise können Ihre Aufgaben Abbilder aus privaten Repositorys verwenden. Diese Funktion wird von Aufgaben unterstützt, die entweder den Fargate oder den EC2-Starttyp verwenden.

Wichtig

Wenn Ihre Aufgabendefinition auf ein im Amazon ECR gespeichertes Image verweist, trifft dieses Thema nicht zu. Weitere Informationen finden Sie unter Amazon ECR-Images mit Amazon ECS im Amazon Elastic Container-Registry-Benutzerhandbuch.

Für Aufgaben, die den Starttyp EC2 verwenden, erfordert diese Funktion Version 1.19.0 oder höher des Container-Agenten. Wir empfehlen jedoch, die aktuelle Version des Container-Agenten zu verwenden. Informationen zum Überprüfen Ihrer Agenten-Version und zum Aktualisieren auf die neueste Version finden Sie unter Überprüfen des Amazon ECS-Container-Agenten.

Für Aufgaben mit dem Starttyp Fargate erfordert diese Funktion die Plattformversion 1.2.0 oder höher. Weitere Informationen finden Sie unter AWS Fargate-Plattformversionen.

Geben Sie innerhalb Ihrer Containerdefinition repositoryCredentials mit dem vollständigen ARN des Secrets an, das Sie erstellt haben. Das Geheimnis, das Sie referenzieren, kann aus einer anderen Region stammen als die Aufgabe, die es verwendet, muss aber innerhalb desselben Kontos liegen.

Anmerkung

Wenn Sie die Amazon ECS-API, AWS CLI oder das AWS-SDK verwenden und das Geheimnis sich in derselben Region befindet wie die gestartete Aufgabe, können Sie entweder den vollständigen ARN oder den Namen des Geheimnisses angeben. Bei Verwendung der AWS Management Console müssen Sie den vollständigen ARN des Secrets angeben.

Im Folgenden finden Sie einen Ausschnitt einer Aufgabendefinition, welche die erforderlichen Parameter zeigt:

"containerDefinitions": [ { "image": "private-repo/private-image", "repositoryCredentials": { "credentialsParameter": "arn:aws:secretsmanager:region:aws_account_id:secret:secret_name" } } ]
Anmerkung

Eine weitere Methode zur Aktivierung der privaten Registrierungsauthentifikation verwendet Umgebungsvariablen von Amazon ECS-Container-Agenten für die Authentifizierung bei privaten Registrierungen. Diese Methode wird nur für Aufgaben unterstützt, die den Starttyp EC2 verwenden. Weitere Informationen finden Sie unter Private Registrierungsauthentifizierung für Container-Instances.

Erforderliche IAM-Berechtigungen für die private Registrierungsauthentifizierung

Die Amazon ECS-Aufgabenausführungsrolle ist erforderlich, um diese Funktion zu verwenden. Auf diese Weise kann der Container-Agent das Container-Image abrufen. Weitere Informationen finden Sie unter IAM-Rolle für die Amazon ECS-Aufgabenausführung.

Um Zugriff auf Secrets zu gewähren, die Sie erstellen, müssen Sie die folgenden Berechtigungen manuell als eingebundene Richtlinie zur Aufgabendefinitionsrolle hinzufügen. Weitere Informationen finden Sie unter Hinzufügen und Entfernen von IAM-Richtlinien.

  • secretsmanager:GetSecretValue

  • kms:Decrypt: Nur erforderlich, wenn Ihr Schlüssel einen benutzerdefinierten KMS-Schlüssel verwendet und nicht den Standard-Schlüssel. Der ARN für Ihren benutzerdefinierten Schlüssel sollte als Ressource hinzugefügt werden.

Ein Beispiel für eine eingebundene Richtlinie, die die Berechtigungen hinzufügt, wird unten angezeigt.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "kms:Decrypt", "secretsmanager:GetSecretValue" ], "Resource": [ "arn:aws:secretsmanager:<region>:<aws_account_id>:secret:secret_name", "arn:aws:kms:<region>:<aws_account_id>:key/key_id" ] } ] }

Aktivieren der privaten Registrierungsauthentifikation

So erstellen Sie ein Basis-Secret

Verwenden Sie AWS Secrets Manager zum Erstellen eines Secrets für Ihre privaten Registrierungsanmeldeinformationen.

  1. Öffnen Sie die AWS Secrets Manager-Konsole bei https://console.aws.amazon.com/secretsmanager/.

  2. Wählen Sie Store a new secret (Ein neues Secret speichern).

  3. Wählen Sie für Select secret type (Secret-Typ auswählen) die Option Other type of secrets (Anderer Secret-Typ) aus.

  4. Wählen Sie Plaintext (Klartext) aus und geben Sie Ihre privaten Registrierungsanmeldeinformationen in folgendem Format ein:

    { "username" : "privateRegistryUsername", "password" : "privateRegistryPassword" }
  5. Wählen Sie Next.

  6. Geben Sie für Secret name (Secret-Name) einen optionalen Pfad und Namen ein, z. B. production/MyAwesomeAppSecret oder development/TestSecret, und wählen Sie Next (Weiter) aus. Optional können Sie eine Beschreibung hinzufügen. Mit dieser können Sie sich später besser an den Zweck dieses Secrets erinnern.

    Der Secret-Name darf nur ASCII-Zeichen, Ziffern oder eines der folgenden Zeichen enthalten: /_+=.@-

  7. (Optional) Jetzt können Sie die Rotation für Ihr Secret konfigurieren. Belassen Sie die Option für dieses Verfahren auf Disable automatic rotation (Automatisches Rotieren deaktivieren) und klicken Sie auf Next (Weiter).

    Informationen darüber, wie Sie die Rotation für neue oder bestehende Geheimnisse konfigurieren, finden Sie unter Rotieren Ihrer AWS Secrets Manager-Geheimnisse.

  8. Überprüfen Sie die Einstellungen, und wählen Sie dann Store secret (Secret speichern) aus, um Ihre gesamte Eingabe als neues Secret im Secrets Manager zu speichern.

So erstellen Sie eine Aufgabendefinition, die die private Registrierungsauthentifizierung verwendet

  1. Öffnen Sie die Amazon ECS-Konsole unter https://console.aws.amazon.com/ecs/.

  2. Wählen Sie im Navigationsbereich Task Definitions aus.

  3. Wählen Sie auf der Seite Task Definitions Create new Task Definition aus.

  4. Wählen Sie auf der Seite Select launch type compatibility (Starttypkompatibilität auswählen) den Starttyp, den Ihre Aufgaben verwenden sollen, und wählen Sie dann Next step (Nächster Schritt) aus.

    Anmerkung

    Dieser Schritt gilt nur für Regionen, die derzeit Amazon ECS mit AWS-Fargate unterstützen. Weitere Informationen finden Sie unter Amazon ECS auf AWS Fargate.

  5. Geben Sie unter Task Definition Name (Aufgabendefinitionsname) einen Namen für Ihre Aufgabendefinition ein. Bis zu 255 Buchstaben (Groß- und Kleinbuchstaben), Ziffern, Bindestriche und Unterstriche sind zulässig.

  6. Wählen Sie für Task execution role (Aufgabenausführungsrolle) entweder Ihre vorhandene Aufgabenausführungsrolle aus oder wählen Sie Create new role (Neue Rolle erstellen), damit eine für Sie erstellt wird. Diese Rolle autorisiert Amazon ECS zum Abrufen von privaten Images für Ihre Aufgabe. Weitere Informationen finden Sie unter Erforderliche IAM-Berechtigungen für die private Registrierungsauthentifizierung.

    Wichtig

    Wenn das Feld Task execution role (Ausführungsrolle der Aufgabe) nicht angezeigt wird, wählen Sie Configure via JSON (Konfiguration über JSON) und fügen Sie executionRoleArn manuell in das Feld hinzu, um Ihre Aufgabenausführungsrolle anzugeben. Nachfolgend wird die Syntax dargestellt:

    "executionRoleArn": "arn:aws:iam::aws_account_id:role/ecsTaskExecutionRole"
  7. Führen Sie für jeden Container, der in Ihrer Aufgabendefinition erstellt werden soll, die folgenden Schritte aus:

    1. Wählen Sie im Abschnitt Container Definitions (Containerdefinitionen) die Option Add Container (Container hinzufügen) aus.

    2. Geben Sie für Container name (Containername) den Namen für Ihren Container ein. Bis zu 255 Buchstaben (Groß- und Kleinbuchstaben), Ziffern, Bindestriche und Unterstriche sind zulässig.

    3. Geben Sie für Image (Abbild) den Image-Namen oder Pfad zu Ihrem privaten Image ein. Bis zu 255 Buchstaben (Groß- und Kleinbuchstaben), Ziffern, Bindestriche und Unterstriche sind zulässig.

    4. Wählen Sie die Option Private repository authentication (Private Repository-Authentifizierung) aus.

    5. Geben Sie für Secrets manager ARN (Secrets Manager-ARN) den vollständige Amazon-Ressourcennamen (ARN) für das Secret ein, das Sie zuvor erstellt haben. Der Wert muss zwischen 20 und 2048 Zeichen haben.

    6. Füllen Sie die verbleibenden Pflichtfelder und beliebige optionale Felder aus, die Sie in Ihren Containerdefinitionen verwenden möchten. Weitere Containerdefinitionsparameter sind im Menü Advanced container configuration (Erweiterte Containerkonfiguration) verfügbar. Weitere Informationen finden Sie unter Aufgabendefinitionsparameter.

    7. Wählen Sie Add (Hinzufügen) aus.

  8. Wenn Ihre Container hinzugefügt werden, wählen Sie Create (Erstellen) aus.