Zwei-Faktor-Authentifizierung auf EC2

7

Ich muss Sachen für ein Finanzinstitut auf EC2 hosten. Die Bank möchte eine vollständige Zwei-Faktor-Authentifizierung, also Dinge wie SSH mit einem Schlüssel mit Passwort. So etwas wie SecureID oder ähnliches wäre großartig. Wie kann ich effektiv eine Zwei-Faktor-Authentifizierung über SSH in meiner EC2-Umgebung erstellen?

Könnte ich OpenVPN auch als Teil der Zwei-Faktoren-Enzyklation betrachten?

Stewart Robinson
quelle
Der Blog unter aws.amazon.com/blogs/startups/… erklärt dies ausführlich.
Kpythontist

Antworten:

5

Mit duo_unix können Sie für jede SSH-Anmeldemethode eine Zwei-Faktor-Authentifizierung hinzufügen, und mit der Duo OpenVPN-Integration können Sie OpenVPN eine Zwei-Faktor-Authentifizierung hinzufügen.

Haftungsausschluss, ich arbeite für Duo.

Karl Anderson
quelle
2
Haftungsausschluss, Duo == Super Hawt Sauce. Das ist 1+ für Sie, Sir.
Amateur Barista
Implementieren Sie einen bastionDocker-Container, der implementiert duo_unix(und sogar SSH-Überwachungsprotokolle und Anmeldungsbenachrichtigungen über Slack): github.com/cloudposse/bastion
Erik Osterman
2

Aktualisieren

AWS hat kürzlich Berechtigungen auf Ressourcenebene für Amazon EC2 und Amazon RDS angekündigt , um diesen langjährigen Mangel an IAM-Unterstützung innerhalb von EC2 und RDS zu beheben, der in meiner ursprünglichen Antwort unten erwähnt wurde:

Heute machen wir IAM mit der Einführung von Berechtigungen auf Ressourcenebene für Amazon EC2 und Amazon RDS noch leistungsfähiger . [...]

Auf der EC2-Seite können Sie jetzt IAM-Richtlinien erstellen und verwenden, um den Zugriff auf EC2-Instanzen, EBS-Volumes, Images und elastische IP-Adressen zu steuern. [...]

Hier sind nur einige Dinge, die Sie tun können:

  • Ermöglichen Sie Benutzern, auf eine begrenzte Anzahl von Ressourcen in einer größeren EC2-Umgebung mit mehreren Benutzern zu reagieren.
  • Legen Sie unterschiedliche Berechtigungen für "Entwicklungs" - und "Test" -Ressourcen fest.
  • Steuern Sie, welche Benutzer welche Instanzen beenden können.
  • Erfordern zusätzliche Sicherheitsmaßnahmen, wie z. B. die MFA-Authentifizierung, wenn auf bestimmte Ressourcen reagiert wird. [Hervorhebung von mir]

Wie bereits erwähnt, ist die Verwendung von MFA bei der Bearbeitung bestimmter Ressourcen jetzt auch für EC2-Instanzen möglich. Sie können beispielsweise das Stoppen und Beenden einer EC2-Instanz auf einen Benutzer beschränken, der durch Benutzername / Kennwort und einen Authentifizierungscode von einem MFA-Gerät authentifiziert ist.


Erste Antwort

Die SecurID-ähnliche Zwei-Faktor-Authentifizierung ist über AWS Identity and Access Management (IAM) mithilfe der AWS-Multi-Faktor-Authentifizierung verfügbar . Ob dies tatsächlich für Ihre Frage gilt, hängt jedoch von Ihrem speziellen Anwendungsfall ab, dh davon, welche Szenarien Sie mit einer Zwei-Faktor-Authentifizierung schützen müssen (z. B. der erwähnte SSH-Zugriff im Vergleich zum Zugriff auf die AWS Management Console im Vergleich zum Zugriff auf Websites, die Sie im Gegenzug auf EC2 hosten usw.).

Insbesondere deckt IAM den Zugriff auf die AWS Management Console ab, jedoch offensichtlich nicht auf SSH. Außerdem ist EC2 eines der AWS-Produkte, bei denen IAM nicht auf Ressourcenebene, sondern nur auf Serviceebene angewendet wird (siehe Integration in andere AWS-Produkte und Verwendung) AWS Identity and Access Management mit EC2 , insbesondere der folgende Haftungsausschluss:

Wichtig

Amazon EC2 verwendet SSH-Schlüssel, Windows-Kennwörter und Sicherheitsgruppen, um zu steuern, wer Zugriff auf bestimmte Amazon EC2-Instanzen hat. Sie können das IAM-System nicht verwenden, um den Zugriff auf eine bestimmte Instanz zuzulassen oder zu verweigern.

Bitte beachten Sie, dass die Verwendung von IAM für alle AWS unabhängig von der Multifaktorauthentifizierung dringend empfohlen wird.

Abschließend möchte ich zwei neuere Ergänzungen zu IAM hervorheben, die möglicherweise auch in Bezug auf Ihren Anwendungsfall hilfreich sind:

  • AWS Identity and Access Management - jetzt mit Identity Federation - Mit dieser neuen Funktion können vorhandene Identitäten (z. B. Benutzer) in Ihrem Unternehmen mithilfe der detaillierten Zugriffssteuerung von IAM auf AWS-APIs und -Ressourcen zugreifen, ohne für jede Identität einen IAM-Benutzer erstellen zu müssen.
  • AWS Virtual (Software) Multi-Factor-Authentifizierung - RFC 6238-Unterstützung - Wir unterstützen Hardware-MFA-Geräte, die Sie erwerben können, um Ihre MFA-Authentifizierungscodes zu generieren. [...] Wir freuen uns, Ihnen heute mitteilen zu können, dass wir eine zusätzliche Option einführen, das Virtual MFA-Gerät. Sie können jetzt MFA-Authentifizierungscodes auf Ihrem Smartphone oder Tablet generieren.
Steffen Opel
quelle
1

Sie müssen den Zugriff auf die EC2-Konsole mit zwei Faktoren sichern. Dort sind Sie Amazon ausgeliefert. Für den SSH-Zugriff können Sie viele Optionen ausführen. Sie können SSH-Schlüssel ausführen und benötigen ein Kennwort. Beachten Sie jedoch, dass nichts jemanden davon abhält, einen SSH-Client zu schreiben, der über das Zertifikat mit einem Kennwort lügt. SSH eignet sich hervorragend für einen Sicherheits-PoV, erfüllt jedoch nicht immer die gesetzlichen Anforderungen. Beispielsweise müssen die Schlüssel möglicherweise regelmäßig neu generiert werden. SSH unterstützt das nicht.

Der PAM-Radius ist Ihr Freund, wenn Sie sich für ein Zwei-Faktor-Authentifizierungssystem entscheiden: http://www.wikidsystems.com/support/wikid-support-center/how-to/pam-radius-how-to

hth,

nowen
quelle
1

EC2 verfügt jetzt über eine 2-Faktor-Authentifizierung für seine Dienste, was ein wichtiger erster Schritt ist.

Alles, was auf einem Cloud-Dienst gehostet wird, den Sie nicht besitzen, sollte bestenfalls als unsicher angesehen werden.

Der Grund dafür ist, dass Sie eine virtuelle Maschine mit gemeinsam genutztem Speicher und gemeinsam genutzten Ressourcen haben. Mit EC2 wissen Sie nicht, wo sich die Daten befinden oder wie sie effektiv gespeichert werden. Möglicherweise stellen Sie fest, dass Ihr VPS mit anderen VPS anderer Organisationen geteilt wird.

Wenn Sie also Finanzdaten auf EC2 in einem EBS-Laufwerk speichern möchten, sollten Sie diese verschlüsseln.

Obwohl Sie vielleicht denken, dass dies sicher ist, sind Sie nur so sicher wie Ihr schwächstes Glied.

Um eine andere Quelle zu zitieren, weil er es gut sagt.

... aber VM-Instanzen teilen häufig physische Hardware mit anderen Instanzen, und da EC2 ein öffentlicher Dienst ist, sind diese gemeinsam residenten VMs möglicherweise nicht ganz freundlich. Die größte Bedrohung sind natürlich Software-Schwachstellen - Dinge, die einen Angreifer von einer VM in eine andere ausbrechen lassen können. Aber selbst wenn Sie die Software perfektionieren, gibt es eine weitere heimtückischere Bedrohung: nämlich, dass die Angreifer-VM-Instanz einen Seitenkanalangriff auf die mitresidente VM ausführen kann .

Dies würde die 2-Faktor-Authentifizierung gegen diese Art von Angriff unbrauchbar machen.

Wenn du damit leben kannst, wie machst du das? Diese Frage / Antwort zum Stackoverflow bietet Ihnen einige Antworten zur Verwendung von Google Authenticator, einem der besseren.

Es gibt jedoch viele 2-Faktor-Authentifizierungsoptionen. Einige erfordern Hardware-Schlüsselanhänger, andere wie Google Authenticator verwenden Ihr Mobiltelefon. Die Bank oder das Finanzinstitut kann tatsächlich vorschreiben, welche 2-Faktor-Authentifizierungsmethode sie zulassen.

OpenID ist insofern eine großartige Idee, als Sie sich mit Ihrer openid bei vielen Diensten anmelden können. Es ist aber auch fehlerhaft, weil es einem einzelnen Login ermöglicht, auf viele Dinge zuzugreifen. Ein schnelles Google und ich fanden http://wikid.com/ , das OpenID und 2-Faktor-Authentifizierung verwendet. Ich würde zögern, es in Ihrem speziellen Fall zu verwenden.

Akzeptieren Sie übrigens Zahlungen von Kreditkarten? Möglicherweise müssen Sie PCI- kompatibel sein, und ich bin mir nicht ganz sicher, ob Sie auf einer EC2-Instanz kompatibel sein können. Sie sind ziemlich streng, aber aus gutem Grund. Es gibt Möglichkeiten, Ihre Risiken zu verringern, indem Sie Kartenzahlungen nicht direkt akzeptieren und keine Kreditkartendaten speichern, sondern einen Zahlungsdienst eines Drittanbieters in Anspruch nehmen, mit dem Ihre Website interagieren kann.

Wenn Sie ein Händler sind, der Zahlungskarten akzeptiert, müssen Sie den PCI Data Security Standard einhalten. Ihre genauen Compliance-Anforderungen können Sie nur von Ihrer Zahlungsmarke oder Ihrem Acquirer erfahren. Bevor Sie jedoch Maßnahmen ergreifen, möchten Sie möglicherweise Hintergrundinformationen und ein allgemeines Verständnis dessen, was Sie tun müssen, anhand der Informationen und Links hier erhalten.

Matt
quelle
-2

Mit EC2 können Sie Ihre Computer mit verschiedenen SSH-Zertifikaten einrichten, die Sie erstellen können. Die einfachste Lösung für Sie besteht darin, nur eines zu erstellen, für das ein Kennwort erforderlich ist.

Beachten Sie auch die Sicherheitsbeschränkungen von EC2, die Sicherheit ist peripher und Sie wissen nicht, welche Computer was im Inneren tun. Stellen Sie daher eine strenge Sicherheit für die Kommunikation zwischen Computern her. Hierfür ist ein starkes Verschlüsselungs-VPN (OpenVPN oder Stunnel) sehr erwünscht.

Luchsmann
quelle
Sie können einen SSH-Schlüssel jedoch nicht zwingen, eine Passphrase zu haben.
Stewart Robinson
Wenn Sie den Schlüssel erstellen, können Sie ihn so erstellen, dass die EC2-Weboberfläche dies nicht zulässt, aber Sie können dies über die Befehlszeile tun
Lynxman
Ja, aber ein authentifizierter Benutzer kann einfach einen Schlüssel mit einer leeren Phrase erstellen und den verwenden, der mir nicht wirklich hilft, "bank" sicher zu sein.
Stewart Robinson
Also
besiegst
1
Ich glaube nicht, dass SSH hier das Ticket ist. Es sei denn, Sie machen SSH -> Radius für die Authentifizierung und haben 2 Faktoren auf dem Radius-Server ...
Jonesome Reinstate Monica