Blog

Geheimnisse der Docker-Container auf AWS ECS

Armin Coralic

Aktualisiert Oktober 21, 2025
3 Minuten

Fast jede Anwendung benötigt eine Art von Geheimnis oder Geheimnissen, um ihre Arbeit zu erledigen. Es gibt alle möglichen Arten, diese den Containern zur Verfügung zu stellen, aber es läuft alles auf die folgenden fünf hinaus:

  1. Speichern Sie die Geheimnisse innerhalb des Bildes
  2. Liefern Sie die Geheimnisse über ENV-Variablen
  3. Geben Sie die Geheimnisse durch Volumenhalterungen an
  4. Verwenden Sie eine Datei zur Verschlüsselung von Geheimnissen
  5. Verwenden Sie einen Geheimnisspeicher

Eine vollständige Beschreibung und Erläuterung finden Sie im folgenden Beitrag . Je nach Kontext können alle fünf Optionen funktionieren oder als gut genug angesehen werden. Meiner Meinung nach können Sie sich nur für die Option 5 "Geheimnisse speichern" entscheiden, wenn Sie es richtig machen und sicher, flexibel und kontrolliert sein wollen. Wenn Sie sich für diese Methode entscheiden, haben Sie verschiedene Möglichkeiten, dies zu erreichen. Wie im obigen Beitrag erwähnt, läuft es auf Folgendes hinaus:

  1. Verwenden Sie eine Form von S3, mit oder ohne Verschlüsselung. Für mehr Informationen siehe
  2. HashiCorp Tresor

AWS hat einen Service namens Parameter Store veröffentlicht, der zwar nicht so ausgefeilt ist wie Vault, aber dennoch seinen Zweck erfüllt. Wenn Sie gerade erst anfangen oder die Dinge einfach halten wollen, sollten Sie den Parameter Store verwenden. Wenn Sie jedoch die volle Kontrolle benötigen und mehr Flexibilität wünschen, sollten Sie Vault verwenden.

Parameter speichern

Mit Parameter Store können Sie Schlüsselwertdaten in einem Schlüsselwertspeicher speichern, wobei die Werte mit KMS verschlüsselt werden. Da Parameter Store IAM verwendet, eignet er sich hervorragend für AWS ECS, da Sie den Zugriff auf die Secrets pro Container steuern können.Ich könnte Ihnen erklären, wie das geht, aber zum Glück hat AWS einen großartigen Beitrag dazu, den Sie hier finden. Der Blogbeitrag ist großartig, aber ich bin nicht wirklich beeindruckt von dem run.sh-Skript, in dem ich die Secrets ersetze und sie mit aws cli abrufe. Es muss doch einen besseren und saubereren Weg geben.... Das dachte ich wirklich, aber wir konnten keine finden, also haben wir uns entschieden, eine zu erstellen.

Dockerfy

Ohne das Rad neu erfinden zu wollen, haben wir die einfache, aber nützliche App "dockerfy" genommen und sie erweitert. Weitere Informationen zu Dockerfy finden Sie hier. Dockerfy verarbeitet bereits ENVs und geheime Dateien und verwendet Vorlagen für die einfache Verwendung von Geheimnissen. Leider hatte es keine AWS Parameter Store Integration, aber wir haben uns darum gekümmert, wie Sie in diesem PR sehen können. Sie können den Parameter Store verwenden und ihn mit den Funktionen von Dockerfy kombinieren, um Ihre Geheimnisse mit Hilfe einer Vorlage hinzuzufügen, aber wenn Sie ein einfaches Kommandozeilengeheimnis benötigen, finden Sie hier ein Beispiel. Dockerfile: FROM socialcode/nginx-with-dockerfy ENTRYPOINT [ "dockerfy", "--aws-secret-prefix", "PROD_" -- ] CMD [ "/bin/echo", "{{ AWS_Secret.db_password }}" ] Um den obigen Docker-Container zu verwenden, speichern Sie ein Passwort im Parameter Store mit dem Namen "PROD_db_password". Stellen Sie dann die AWS-Schlüssel zur Verfügung oder führen Sie ihn auf einer EC2-Instanz oder einem ECS-Service mit den entsprechenden IAM-Rechten aus und sehen Sie, wie das Geheimnis ausgegeben wird.

Verfasst von

Armin Coralic

Contact

Let’s discuss how we can support your journey.