Verwalten von IAM-Sicherheitsanmeldeinformationen für mehrere Docker-Container


11

In einer einfachen EC2-Umgebung ist die Verwaltung des Zugriffs auf andere AWS-Ressourcen mit IAM-Rollen und Anmeldeinformationen (die automatisch aus Instanzmetadaten abgerufen werden) recht einfach. Noch einfacher mit CloudFormation, bei dem Sie Rollen im laufenden Betrieb erstellen können, wenn Sie einer Instanz eine bestimmte Anwendungsrolle zuweisen.

Wenn ich auf Docker migrieren und eine Art M-to-N-Bereitstellung durchführen möchte, auf der M-Computer und N Anwendungen ausgeführt werden, wie sollte ich den Zugriff auf AWS-Ressourcen pro Anwendung einschränken? Auf Instanzmetadaten kann jeder auf dem Host zugreifen, sodass jede Anwendung Daten jeder anderen Anwendung in derselben Bereitstellungsumgebung anzeigen / ändern kann.

Was sind die Best Practices für die Bereitstellung von Sicherheitsanmeldeinformationen für Anwendungscontainer, die in einer solchen Umgebung ausgeführt werden?

Antworten:


5

Es gibt dieses Projekt: https://github.com/dump247/docker-ec2-metadata

Es fungiert als Proxy für den Instanz-Metadaten-Endpunkt und gibt eine für den Container spezifische Rolle zurück. Ich habe es noch nicht benutzt, aber es scheint den von Ihnen beschriebenen Anwendungsfall zu lösen.


1

Das Anwenden der geringsten Berechtigungen mithilfe von Rollen und Sicherheitsgruppen (obwohl Sie diese nicht erwähnt haben) in AWS mit EC2 ist eine bewährte Methode, um eine sichere Umgebung für Ihre Hosting-Anwendungen bereitzustellen, insbesondere bei Verwendung von CloudFormation. Wenn Sie jedoch eine Docker-Umgebung mit mehreren Mandanten darüber legen, beginnen die Dinge auseinanderzufallen.

Die derzeit beste Antwort, um weiterhin die Vorteile von Rollen zu nutzen und gleichzeitig die geringsten Berechtigungen anzuwenden, besteht darin, keinen mandantenfähigen Ansatz zu verwenden. Verwenden Sie grundsätzlich eine Eins-zu-Eins-Zuordnung zwischen EC2-Instanz und Anwendung, Sie können jedoch weiterhin Cluster / ASGs verwenden. Docker ist nach wie vor ein äußerst nützliches und leistungsstarkes Tool, mit dem Sie Ihre Anwendungen verwalten und bereitstellen können. Derzeit gelten Rollen jedoch für die EC2-Instanz und nicht für den Container. Das bedeutet, dass für jede Anwendung vorerst separate VMs verwendet werden.

Wenn es wichtiger ist, mehrere Mandanten zu haben als Rollen, besteht die Antwort darin, keine Rollen zu verwenden und AWS-Anmeldeinformationen mithilfe einer anderen Methode an Ihre Anwendungen zu verteilen.

Leider ist keine dieser Lösungen sehr wünschenswert, und ich gehe davon aus, dass AWS diesen spezifischen Schmerzpunkt in Zukunft hauptsächlich aufgrund der wachsenden Beliebtheit von Containern angehen wird.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.