2017-02-23 2 views
1

Ich habe vor kurzem meine App nach elasticbeanstalk verschoben, und ich verwende Symfony3, gibt es eine obligatorische Parameter.yml-Datei, die mit Umgebungsvariablen aufgefüllt werden muss.wget parameters.yml von nicht-öffentlichen S3 Bucket

ID möchte wget die Parameter.yml aus einem privaten S3-Bucket, den Zugriff auf Instanzen nur beschränken.

Ich weiß, dass ich die Umgebungsvariablen direkt auf die Umgebung setzen kann, aber ich habe einige sehr sehr sensible Sachen dort, und Umgebungsvariablen werden in mein Protokollierungssystem geleckt, was sehr schlecht ist.

Ich habe auch mehrere Umgebungen wie Arbeiter mit den gleichen Umgebungsvariablen, und kopieren sie einfügen ist ziemlich ärgerlich.

Also frage ich mich, ob es möglich ist, die App wget es bei der Bereitstellung, ich weiß, wie das zu tun, aber ich kann nicht scheinen, den S3-Bucket zu konfigurieren, nur Zugriff von Instanzen zu erlauben.

+0

Verwenden 'aws s3 cp' um die Datei herunterzuladen und eine Instanz Rolle ausführen, um die Anforderung zu authentifizieren? –

Antwort

1

Ja, das kann definitiv getan werden, es gibt verschiedene Möglichkeiten, dies je nach Ansatz zu tun. Ich würde vorschlagen, .ebextentions verwenden IAM Rolle zu erstellen -> Zugriff gewähren für diese Rolle auf dem Eimer -> nach Paket auf der Instanz entpacken ist -> Kopieren Objekt aus s3 Instanz Rolle

  1. Erstellen von benutzerdefinierten IAM Rolle mit Verwendung AWS-Konsole oder verwenden Sie .ebextentionscustom resources und gewähren Sie den Objekten in Ihrem Bucket Zugriff für diese Rolle. Verwandte read

  2. oben unter Verwendung erwähnten .ebextentions gesetzt aws:autoscaling:launchconfiguration in options_setting angeben Instanz, die Sie zuvor erstellten Profil.

  3. Wieder mit .ebxtentions Verwendung container_commands Option aws s3 cp command