Wie behebe ich Probleme im Zusammenhang mit AWS Secrets Manager-Geheimnissen in Amazon ECS?

Lesedauer: 4 Minute
0

Wenn ich versuche, eine Aufgabe, die AWS Secrets Manager-Geheimnisse verwendet, in Amazon Elastic Container Services (Amazon ECS) zu platzieren, erhalte ich eine Fehlermeldung.

Kurzbeschreibung

Wenn das Platzieren einer Aufgabe mit einem Secrets Manager-Geheimnis in Amazon ECS fehlschlägt, erhalten Sie möglicherweise eine der folgenden Fehlermeldungen:

„ResourceInitializationError error on AWS Fargate AccessDenied error on Amazon Elastic Compute Cloud (Amazon EC2)“

„The task is unable to retrieve secrets from Secrets Manager and fails.“

Sie erhalten diese Fehlermeldungen aus einem der folgenden Gründe:

  • Die Amazon ECS-Aufgabenausführungsrolle verfügt nicht über die erforderlichen Berechtigungen für den Zugriff auf Secrets Manager-Geheimnisse.
  • Secrets Manager kann das angegebene Geheimnis nicht finden.
  • Der Name des Geheimnisses endet mit einem Bindestrich, gefolgt von sechs Zeichen. Dies führt zu unerwarteten Ergebnissen, wenn Sie mithilfe eines partiellen ARN nach einem Geheimnis suchen.
  • Es bestehen Probleme mit Ihrer Amazon Virtual Private Cloud (Amazon VPC)-Netzwerkkonfiguration.

Verwenden Sie das AWSSupport-TroubleshootECSTaskFailedToStart-Runbook, um Fehler bei Amazon ECS-Aufgaben zu beheben, die nicht gestartet werden können. Lesen Sie dann die entsprechenden Schritte zur Fehlerbehebung für Ihr Problem.

Lösung

Wichtig:

  • Verwenden Sie das AWSSupport-TroubleshootECSTaskFailedToStart-Runbook in derselben AWS-Region, in der sich auch Ihre ECS-Cluster-Ressourcen befinden.
  • Wenn Sie das Runbook verwenden, müssen Sie die letzte fehlgeschlagene Aufgaben-ID verwenden. Wenn die fehlgeschlagene Aufgabe Teil eines Amazon ECS-Service ist, verwenden Sie die zuletzt fehlgeschlagene Aufgabe im Service. Die fehlgeschlagene Aufgabe muss während der Automatisierungsausführung in ECS:DescribeTasks sichtbar sein. Standardmäßig sind gestoppte ECS-Aufgaben 1 Stunde lang sichtbar, nachdem sie den Status Stopped erreicht haben. Durch die Verwendung der letzten fehlgeschlagenen Aufgaben-ID wird verhindert, dass die Aufgabenstatusbereinigung die Analyse während der Automatisierung unterbricht.

Anweisungen zum Initiieren des Runbooks finden Sie unter AWSSupport-TroubleshootECSTaskFailedToStart. Verwenden Sie auf der Grundlage der Ergebnisse der Automatisierung einen der folgenden manuellen Schritte zur Fehlerbehebung.

Sicherstellen, dass die ECS-Aufgabenausführungsrolle über die erforderlichen Berechtigungen verfügt

  1. Öffnen Sie die IAM-Konsole.
  2. Wählen Sie im Navigationsbereich Rollen aus.
  3. Suchen Sie in der Rollenliste nach der Aufgabenausführungsrolle, die Ihre ECS-Aufgaben verwenden.
  4. Stellen Sie sicher, dass die Aufgabenausführungsrolle über die erforderlichen Berechtigungen verfügt, um auf die benötigte Secrets Manager-Ressource zuzugreifen.

Überprüfen, ob das Secrets-Manager-Geheimnis existiert

  1. Öffnen Sie die AWS Secrets Manager-Konsole.
  2. Wählen Sie auf der Seite Geheimnisliste das Geheimnis aus, das Ihre ECS-Aufgaben verwenden.
  3. Stellen Sie sicher, dass Ihre ECS-Aufgabendefinition diese spezifischen Geheimnisnamen enthält. Wenn Sie zusätzliche Parameter im Geheimnis angegeben haben, stellen Sie sicher, dass Ihre Aufgabendefinition die im Geheimnis angegebene json-key/version-stage/version-id enthält.

Den Namen und den ARN des Secrets Manager-Geheimnisses überprüfen

Überprüfen Sie, ob Ihr Geheimnisname mit einem Bindestrich gefolgt von sechs Zeichen endet (Beispiel: myappsecret-xxxxxx). Secrets Manager fügt nach dem Geheimnisnamen am Ende des ARN automatisch einen Bindestrich und sechs zufällige Zeichen hinzu. Daher empfiehlt es sich, Ihren Geheimnisnamen nicht mit einem Bindestrich gefolgt von sechs Zeichen zu beenden. Dies kann zu unerwarteten Ergebnissen führen, wenn Sie mithilfe eines partiellen ARN nach einem Geheimnis suchen. Um dieses Problem zu lösen, stellen Sie sicher, dass Sie die vollständigen ARNs der Geheimnisse des Secrets Managers verwenden, einschließlich des zusätzlichen Bindestrichs und der sechs Zeichen.

Sicherstellen, dass Ihre VPC-Netzwerkkonfiguration es Ihrer Amazon ECS-Infrastruktur erlaubt, Secrets Manager zu erreichen

Erstellen Sie die Schnittstellen-VPC-Endpunkte für Secrets Manager, wenn die folgenden Bedingungen zutreffen:

  • Sie verwenden eine Aufgabendefinition, die auf die Secrets Manager-Geheimnisse verweist, um vertrauliche Daten für Ihre Container abzurufen.
  • Sie verwenden Schnittstellen-VPC-Endpunkte.

Stellen Sie außerdem sicher, dass die Sicherheitsgruppen für Ihre VPC-Endpunkte es der ECS-Infrastruktur erlauben, diese Endpunkte zu verwenden.

Gehen Sie wie folgt vor, um zu überprüfen, ob der VPC-Endpunkt für Secrets Manager vorhanden ist:

  1. Öffnen Sie die Amazon-VPC-Konsole.
  2. Wählen Sie im Navigationsbereich Endpunkte aus.
  3. Vergewissern Sie sich, dass der VPC-Endpunkt com.amazonaws.example-region.secretsmanager für Secrets Manager auf der Liste der Endpunkte steht.
  4. Wählen Sie den Endpunkt aus der Liste der Endpunkte aus und wählen Sie dann die Registerkarte Subnetze. Stellen Sie sicher, dass die Subnetze für diesen Endpunkt diejenigen enthalten, die von Ihrer ECS-Aufgabe verwendet werden.
    Hinweis: Wenn keine Subnetze aufgeführt sind, wählen Sie Subnetze verwalten aus. Wählen Sie das Subnetz auf der Grundlage seiner Availability Zone und anschließend Subnetze modifizieren aus.

Gehen Sie wie folgt vor, um zu überprüfen, ob die an den Endpunkt com.amazonaws.example-region.secretsmanager angehängte Sicherheitsgruppe eingehende Verbindungen über Port 443 von den Amazon-ECS-Aufgaben zulässt:

  1. Wählen Sie den Endpunkt aus der Liste der Endpunkte aus.
  2. Wählen Sie die Registerkarte Sicherheitsgruppen aus.
  3. Wählen Sie die Gruppen-ID für die Sicherheitsgruppe aus, die Sie überprüfen möchten.
  4. Wählen Sie die Registerkarte Regeln für eingehenden Datenverkehr aus.
  5. Stellen Sie sicher, dass die Liste der Regeln für eingehenden Datenverkehr eine Regel enthält, die 443-Verbindungen von Ihren ECS-Aufgaben aus zulässt.

Ähnliche Informationen

Wie kann ich in einer Amazon ECS-Aufgabe geheime oder vertrauliche Informationen sicher an Container weitergeben?

Problembehandlung für AWS Secrets Manager

AWS OFFICIAL
AWS OFFICIALAktualisiert vor 10 Monaten