0

Ich bin ein Gitlab ci-Skript zum Bereitstellen meiner Multi-Container-App bei Amazon ECS und im Upgrade-Service-Teil muss ich einen Json für die Task-Definition mit allen verwenden meine Containerdefinitionen (Bild, Name, Speicher, ...).AWS ECS: ENV vars aus Task-Definition JSON

Ich brauche Umgebungsvariablen (Datenbank-Passwort, E-Mails, ...), aber ich möchte nicht in diese JSON-Datei (es wird im gitlab Repository gespeichert werden), was ist die beste Lösung für die Speicherung dieser Variablen aus dem Repository?

AWS empfiehlt, bei S3-Volume zu speichern (https://aws.amazon.com/es/blogs/security/how-to-manage-secrets-for-amazon-ec2-container-service-based-applications-by-using-amazon-s3-and-docker/), aber ich weiß nicht, ob es eine bessere Option gibt.

Danke!

Antwort

-1

Sie haben Recht, die Cloud-Vorlage in git zu speichern, da es sich ändern wird und Sie diese Änderungen verfolgen müssen. Aber Geheimnisse haben natürlich keinen Platz in der Quellcodeverwaltung! In diesem Fall ist es meine bevorzugte Option, die Cloud-Vorlage mit dem Code unter Versionskontrolle zu behalten und sie an einem sicheren Ort wie S3 oder einer privaten Datenbank zu speichern.

In dieser Situation können Sie das CI-System den Code aus Ihrem GitLab-Repository abrufen, um die Anwendung zu erstellen und die Tests auszuführen, und dann die Konfiguration vom ausgewählten Speicherort abrufen, um für die Bereitstellung bereit zu sein.

Wenn Sie die Secrets beispielsweise in einer Datei in S3 speichern, verwenden Sie ein Skript, das diese Werte liest und sie in die richtigen Felder in der JSON- (oder Yaml-) Datei für die Taskdefinition einfügt. Auf diese Weise halten Sie den Code vollständig getrennt von der Konfiguration und Sie können sie unabhängig verwalten.

+1

danke! also noch einmal, amazon hatte recht .... "$%/&% (% &/· hahaha :) – mbellido

Verwandte Themen