Blog

Wie man Geheimnisse aus dem AWS Parameter Store in Container in ECS bekommt

Mark van Holsteijn

Aktualisiert Oktober 21, 2025
2 Minuten

Bei AWS verwenden wir oft den AWS Parameter Store, um Geheimnisse sicher zu speichern. Aber der Zugriff auf die Geheimnisse von einer Anwendung aus, die in ECS läuft, ist ziemlich umständlich. Sie müssen die AWS SSM API entweder in der Anwendung oder im Entrypoint-Skript des Containers aufrufen. In diesem Blog zeigen wir Ihnen, wie Sie mit einem einfachen Dienstprogramm die Verweise auf die Geheimnisse als Umgebungsvariablen angeben können. Dabei können Sie sogar sinnvolle Standardwerte festlegen.

Wie funktioniert das?

Um das Dienstprogramm zu verwenden, folgen Sie diesen beiden Schritten:

  1. binden Sie die ausführbare Datei in Ihren Container ein und machen Sie sie zu Ihrem Container-Einstiegspunkt
  2. Definieren Sie Umgebungsvariablen mit einem URI unter Verwendung des ssm: Protokolls

Einbinden der ausführbaren Datei

Um das Dienstprogramm in Ihren Container einzubinden und es zu Ihrem Einstiegspunkt zu machen, fügen Sie die folgenden Zeilen zu Ihrer Dockerdatei hinzu:

FROM docker.io/binxio/ssm-get-parameter:0.2.3 AS ssm

FROM alpine
COPY --from=ssm /ssm-get-parameter  /usr/local/bin
ENTRYPOINT [ "/usr/local/bin/entrypoint" ]

Stellen Sie sicher, dass Sie den alten Einstiegspunkt in die CMD des Containers verschieben.

Definieren Sie die Umgebungsvariable

Um die Geheimnisse in Ihrem Container abzurufen, definieren Sie eine oder mehrere Umgebungsvariablen mit einem URI, der das ssm: Protokoll verwendet:

ENV PGPASSWORD=ssm:///postgres/root/password

Wenn die Parameter nicht abgerufen werden können, wird der Container mit einer Fehlermeldung beendet. Wenn Sie fortfahren möchten, geben Sie einen default Parameter an:

ENV PGPASSWORD=ssm:///postgres/root/password?default=postgres

Damit können Sie den Container außerhalb von AWS ausführen. Sie können den Inhalt des geheimen auch in eine Datei schreiben, indem Sie den Parameter destination angeben.

ENV PRIVATE_KEY=ssm:///private-key?destination=/tmp/private-key

Der Wert der Umgebungsvariablen wird durch den Namen der Datei ersetzt, in diesem Fall /tmp/private-key. Wenn der Parameter nicht abgerufen werden kann und die Zieldatei bereits existiert, wird der Inhalt dieser Datei als Standardwert verwendet. Wenn Sie schließlich das Geheimnis in einer Zeichenfolge benötigen, können Sie den Parameter template verwenden:

ENV PGPASSFILE=ssm:///postgres/root/password?
template=localhost:5432:kong:kong:{{.}}%0a&
destination=$HOME/.pgpass&
default=postgres

Fazit

Mit dem Dienstprogramm ssm-get-parameter haben Sie eine nicht-intrusive Möglichkeit, Geheimnisse aus dem Parameterspeicher abzurufen und sie als Umgebungsvariablenwerte oder in einer Datei in Ihrem Container zu speichern. Mit der Option default können Sie sinnvolle Vorgaben machen, die es Ihnen ermöglichen, Ihren Container unabhängig von AWS zu betreiben. Wenn Sie dasselbe in Google Cloud Platform suchen, lesen Sie , wie Sie Geheimnisse aus dem Google Secret Manager in Ihren Container bekommen.

Verfasst von

Mark van Holsteijn

Mark van Holsteijn is a senior software systems architect at Xebia Cloud-native solutions. He is passionate about removing waste in the software delivery process and keeping things clear and simple.

Contact

Let’s discuss how we can support your journey.