22. Nov 2018 08:11
Keine Kommentare

AWS Secrets Manager und PHP

Wer kennt nicht dieses mulmige Gefühl, wenn man Zugangsdaten für Datenbanken, Caches und APIs in seiner Webanwendung speichert. Nicht nur stellen Konfigurationsfehler erhebliche Sicherheitsrisiken dar, sondern auch einfache Änderungen der Zugangsdaten können schnell zur Gratwanderung beim Deployment werden. Bei AWS wird hierfür mit dem AWS Secrets Manager Abhilfe geschaffen.

AWS Secrets Manager

Die Struktur des AWS Secrets Manager ist recht einfach gehalten. Jedes "Geheimnis" (engl. "Secret") beinhaltet einen Namen sowie einen Wert. Der Wert beinhaltet mehrere Schlüssel-Werte-Paare (Key-Value-Pairs). Über eine API bzw. den AWS SDK können Gehemnisse dann abgerufen werden.

Secrets aus AWS Secrets Manager mit PHP abfragen

Meine Website, welche Du hier gerade benutzt, verfügt über zwei Geheimnisse. Zum Einen ist dies der MySQL Datenbankserver samt Zugangsdaten und zum Anderen diverse Key-Value-Pairs mit Zugangsdaten zur Google API, Bitbucket, Facebook und vielem mehr. Die vereinfachte Abfrage mit PHP, unter Verwendung des AWS PHP SDK, sieht dann wie folgt aus.

Es wird, kurz gesagt, eine Instanz des SecretManager erstellt, das Secret mit "getSecretValue" abgefragt und anschließend dekodiert. Die Variable "app_credentials_data" beinhaltet dann einen assoziativen Array mit den Konfigurationswerten, die ich im Secrets Manager angegeben habe.

Sichere Systemarchitektur mit AWS Secrets Manager

Grundsätzlich sollen sich auf EC2 Instanzen niemals Zugangsdaten für irgendwelche Dienste, AWS selbst eingeschlossen, befinden. Für AWS-eigene Dienste wie S3, CodeDeploy oder Secrets Manager weißt man hierfür den EC2-Instanzen eine IAM-Rolle zu. In dieser IAM-Rolle definiert man in den Richtlinien (engl. "Policies"), dass die Rolle die Methode "GetSecretValue" für die jeweiligen "Secrets" verwenden darf.

IAM Role für EC2 zur Verwendung des Secrets Manager

Auf dem lokalen Entwicklungssystem kann man etwaige Zugangsdaten entweder in eine Konfigurationsdatei, Umgebungsvariablen oder mittels AWS SDK auch über Secrets Manager abfragen. Grundsätzlich sollte man in Applikationen, die innerhalb von AWS laufen sollen, niemals AWS API-Zugangsdaten hinterlegen. Die Zugriffe sollten immer über IAM-Rollen und deren Richtlinien definiert sein. Auf lokalen Entwicklungssystemen oder Containern kann man die AWS API-Zugangsdaten auch auf dem System hinterlegen (Stichwort "Profile"). Es gibt eine ganze Reihe Nutzer, die "versehentlich" Ihre AWS API-Zugangsdaten z.B. auf GitHub veröffentlicht haben.

Fazit zum AWS Secrets Manager

Der AWS Secrets Manager ist, zum Zeitpunkt des Verfassens dieses Artikels, noch nicht einmal ein Jahr alt und damit ziemlich jungfräulich. Dennoch, meiner Meinung nach, vollkommen ausgereift und ein absolutes Must-Have für jede Anwendung in AWS. Mein Fazit: Cloud-Entwickler und Security-Auditoren sollten darauf bestehen, dass Anwendungen in AWS keinerlei Geheimnisse bzw. applikationsspezifische Zugangsdaten beinhalten. Datenbankzugänge, API-Tokens, Autorisierung für externe Systeme sollten alle in Secrets Manager gespeichert werden, wenn der Zugang nicht über IAM-Rollen definiert werden kann. Damit erhöht man nicht nur die Sicherheit der Applikation, sondern auch dessen Konfigurierbarkeit. Klare Empfehlung für AWS Secrets Manager: ein Must-Have!

Bücher zum Thema „Cloud Computing“

Die nachfolgenden Bücher behandeln das Thema "Cloud Computing" und werden von Amazon empfohlen. Viele dieser Bücher habe ich selbst gelesen und teilweise auch zur Recherche für diesen Artikel genutzt.
49,90 €
Jetzt bestellen »
Hacking & Security: Das umfassende Handbuch
Michael Kofler, Rheinwerk Computing
29,90 €
Jetzt bestellen »
Serverless Computing in der AWS Cloud
Niko Köbler, entwickler.press
23,00 €
Jetzt bestellen »
Cloud Computing: Chancen und Risiken aus technischer und unternehmerischer Sicht (Print-on-Demand)
Christian Metzger, Carl Hanser Verlag GmbH & Co. KG
14,99 €
Jetzt bestellen »
Cloud Computing als neue Herausforderung für Management und IT (essentials)
Gerald Münzl, Springer Vieweg

Diese Artikel könnten Dich auch interessieren

Besucher, die diesen Beitrag gelesen haben, haben sich auch die unten aufgeführten Beiträge angesehen. Schau' doch einfach mal in die Artikel rein.
12 Besucher haben auch das gelesen
7 Besucher haben auch das gelesen
5 Besucher haben auch das gelesen
2 Besucher haben auch das gelesen
1 Besucher haben auch das gelesen
1 Besucher haben auch das gelesen

Kommentare zum Thema „AWS Secrets Manager und PHP“

Wenn Du möchtest, kannst Du hier Kommentare zum Thema hinterlassen und Dich mit anderen Nutzern austauschen. Damit Du kommentieren kannst, musst Du Dich nur anmelden und schon kann es losgehen.
Jetzt zum Kommentieren anmelden