fragen stichworte

Sind die Umgebungsvariablen von Elastic Beanstalk ein geeigneter Ort zum Speichern geheimer Werte?

Ich habe meine Django-Anwendung für Elastic Beanstalk bereitgestellt, um die API-Schlüssel der Umgebungsvariablen zu verwenden, anstatt sie in meinem Quellcode zu speichern (wie hier https://stackoverflow.com/a beschrieben)/17878600).

Nachdem ich dies getan hatte, fand ich heraus, dass das, was Beanstalk Umgebungsvariablen nennt, keine Shell-Umgebungsvariablen ist (wie hier https://stackoverflow.com/a/24564832/378638 erwähnt) und gespeichert sind in der Instanz in einer Konfigurationsdatei (wie hier https://stackoverflow.com/a/24566283/378638 beschrieben).

Dies scheint mir eine Sicherheitslücke zu sein. Verliert dies nicht den Zweck, die geheimen Schlüssel von der Quelle fernzuhalten? Ich verstehe, dass sie nicht mehr im Repo sind, aber sie sind immer noch in der Instanz verfügbar.

Verstehe ich das Risiko falsch? Ich bin sysadminisch durch Erbschaft, bitte entschuldigen Sie bitte meine Unwissenheit hier. Soll ich die Beanstalk-Variablen einfach als Shell-Umgebungsvariable über die Konfigurationsdatei laden und fortfahren, da die Datei nur über root zugänglich ist, oder ist mein Anliegen gültig? Vielen Dank.

antworten

Der Grund, Geheimnisse aus dem Quellcode herauszuhalten, ist, damit sie nicht in die -Steuerung von Quellcode gelangen. Dies ist besonders nützlich bei Open Source-Projekten.

Bei der Bereitstellung spielt es keine Rolle, ob sich das Geheimnis in einer Datei oder in einer Envvar befindet. Wichtig ist, dass nur der Betriebssystembenutzer, den Ihr Programm ausführt, es lesen kann. Dies ist der Standard für envvars, was praktisch ist.

Root kann immer alles lesen. Amazon kann also Ihre geheimen Werte kennen, wenn sie wollen, weil sie root sind.

Sie unterstützen jedoch teure Hardware-Sicherheitsmodule (HSM), wodurch Ihre Schlüssel unlesbar werden. Natürlich können sie auch den HSM verwenden, um Ihre Sachen zu entschlüsseln. Sie erhalten nur den eigentlichen Schlüssel.

Entweder müssen Sie Amazon vertrauen oder sich selbst hosten oder Colocate betreiben.