AWS Lambda: Wie speichert man eine geheime externe API?
Baue ich ein monitoring-tool auf der Basis von AWS Lambda. Gegeben sei eine Menge von Metriken, die Lambdas sollten in der Lage sein, um SMS zu senden mit Twilio API. Um in der Lage sein, die API zu verwenden, Twilio zur Verfügung stellt ein Konto SID und ein auth-token.
Wie und wo Lagere ich diese Geheimnisse?
Ich bin derzeit denken zu verwenden AWS KMS, aber möglicherweise gibt es andere bessere Lösungen.
InformationsquelleAutor der Frage JonathanGailliez | 2015-03-31
Du musst angemeldet sein, um einen Kommentar abzugeben.
Hier ist, was ich mir ausgedacht habe. Ich bin mit AWS KMS zu verschlüsseln, meine Geheimnisse in einer Datei, die ich hochladen mit dem code auf AWS Lambda. Ich habe dann entschlüsseln, wenn ich Sie brauche, um Sie zu benutzen.
Hier sind die Schritte zu Folgen.
Erstellen Sie zuerst einen KMS-Schlüssel. Sie finden die Dokumentation hier: http://docs.aws.amazon.com/kms/latest/developerguide/create-keys.html
Dann verschlüsseln Sie Ihre geheimen, und stellen Sie das Ergebnis in eine Datei. Dies kann erreicht werden, von der CLI mit:
Müssen Sie dann zum hochladen dieser Datei als Teil des Lambda. Sie können entschlüsseln und verwenden Sie das Geheimnis in der Lambda wie folgt.
Ich hoffe, Sie finden diese nützlich.
InformationsquelleAutor der Antwort JonathanGailliez
Als der AWS Lambda-support für NodeJS 4.3, die richtige Antwort ist die Verwendung Umgebungsvariablen. Diese Funktion lässt sich mit AWS KMS verwenden, so können Sie Ihre eigenen master-Schlüssel, der zum verschlüsseln der Geheimnisse.
InformationsquelleAutor der Antwort Jamey
Es ist eine Blaupause für eine Nodejs-Lambda-Funktion, die beginnt mit der Entschlüsselung einen api-Schlüssel von kms. Es bietet eine einfache Möglichkeit, zu entschlüsseln, die mit einem Versprechen-Schnittstelle. Es gibt Ihnen auch die Rolle, die Berechtigungen, die Sie benötigen, zu geben, die lambda-Funktion, um Zugriff auf kms. Die Blaupause kann durch die Suche gefunden werden für "algorithmia-Blaupause"
InformationsquelleAutor der Antwort bernays
Gut...das ist was KM wurde gemacht 🙂 Und sicherlich sicherer als das speichern Sie Ihre Token im Klartext in der Lambda-Funktion oder die übertragung an einen Dritten-party-service.
Wenn Sie diesen Weg gehen, check-out in diesem blog-post für eine bestehende Nutzung Beispiel aufstehen und laufen schneller. Insbesondere müssen Sie die folgenden zu Ihrem Lambda-Ausführung Rolle der Politik:
Den rest des Codes für das oben genannte Beispiel ist ein wenig verworren; sollte man eigentlich nur brauchen
describeKey()
in diesem Fall.InformationsquelleAutor der Antwort William Gaul
Was auch immer Sie wählen, zu tun, sollten Sie ein tool wie GitMonkey zu überwachen, code-repositories, und stellen Sie sicher, Ihre Schlüssel sind nicht verpflichtet oder gedrängt zu Ihnen.
InformationsquelleAutor der Antwort shaharsol