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

Letzte Aktualisierung: 30.03.2022

Wenn ich versuche, eine Aufgabe zu platzieren, die Geheimnisse von AWS Secrets Manager in Amazon Elastic Container Services (Amazon ECS) verwendet, erhalte ich einen der folgenden Fehler:

  • ResourceInitializationError-Fehler in AWS Fargate
  • AccessDenied-Fehler in Amazon Elastic Compute Cloud (Amazon EC2)

Die Aufgabe kann keine Geheimnisse aus Secrets Manager abrufen und schlägt fehl.

Kurzbeschreibung

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

  • Die Aufgabenausführungsrolle von Amazon ECS 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 gibt Probleme mit Ihrer Amazon Virtual Private Cloud (Amazon VPC)-Netzwerkkonfiguration.

Auflösung

Prüfen, ob die Aufgabenausführungsrolle von ECS über die erforderlichen Berechtigungen verfügt

  1. Öffnen Sie die IAM-Konsole.
  2. Wählen Sie im Navigationsbereich Rollen aus.
  3. Durchsuchen Sie die Liste der Rollen nach der Aufgabenausführungsrolle, die Ihre ECS-Aufgaben verwenden.
  4. Bestätigen Sie, dass die Aufgabenausführungsrolle über die erforderlichen Berechtigungen für den Zugriff auf die erforderliche Secrets-Manager-Ressource verfügt.

Prüfen, ob das Secrets-Manager-Geheimnis existiert

  1. Gehen Sie zur Secrets-Manager-Konsole.
  2. Wählen Sie auf der Seite Geheimnis-Liste das Geheimnis aus, das Ihre ECS-Aufgaben verwenden.
  3. Bestätigen Sie, dass Ihre ECS-Aufgabendefinition diese spezifischen Geheimnis-Namen enthält. Wenn Sie im Geheimnis zusätzliche Parameter angegeben haben, bestätigen Sie, dass Ihre Aufgabendefinition den im Geheimnis angegebenen json-key/version-stage/version-id enthält.

Prüfen des Namens und des ARNs des Secrets-Manager-Geheimnisses

Prüfen Sie, ob Ihr geheimer Name mit einem Bindestrich gefolgt von sechs Zeichen endet (Beispiel: myappsecret-xxxxxx). Secrets Manager fügt automatisch einen Bindestrich und sechs zufällige Zeichen nach dem Geheimnis-Namen am Ende des ARN hinzu. Es ist daher eine bewährte Methode, Ihren Geheimnis-Namen 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 beheben, verwenden Sie unbedingt die vollständigen ARNs, einschließlich des zusätzlichen Bindestrichs und der sechs Zeichen, der Geheimnisse von Secrets Manager.

Überprüfen, ob Ihre VPC-Netzwerkkonfiguration es Ihrer Amazon-ECS-Infrastruktur ermöglicht, 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 sensible 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 ermöglichen, diese Endpunkte zu verwenden.

Überprüfen Sie das Vorhandensein des VPC-Endpunkts für Secrets Manager wie folgt:

  1. Öffnen Sie die Amazon-VPC-Konsole.
  2. Wählen Sie Endpunkte im Navigationsbereich aus.
  3. Stellen Sie sicher, 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 und wählen Sie dann die Registerkarte Subnetze aus. Stellen Sie sicher, dass die Subnetze für diesen Endpunkt diejenigen enthalten, die von Ihrer ECS-Aufgabe verwendet werden.
    Hinweis: Wenn keine Subnetze aufgelistet sind, wählen Sie Subnetze verwalten aus. Wählen Sie das Subnetz basierend auf seiner Availability Zone aus und wählen Sie dann Subnetze ändern.

Bestätigen Sie, dass die an den Endpunkt angefügte Sicherheitsgruppe com.amazonaws.example-region.secretsmanager eingehende Verbindungen auf Port 443 von den Amazon-ECS-Aufgaben zulässt, wie folgt:

  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 Eingehende Regeln aus.
  5. Stellen Sie sicher, dass die Liste der eingehenden Regeln eine Regel enthält, die 443-Verbindungen von Ihren ECS-Aufgaben zulässt.