Sicheres Speichern von AWS-Anmeldeinformationen auf einem Personal Computer

10

Wie kann ich AWS-Anmeldeinformationen sicher auf PCs speichern?

Im Detail:

Jeder in unserem Team benötigt AWS-Sicherheitsanmeldeinformationen für Verwaltungsaufgaben (Anmeldeinformationen sind nach Rollen getrennt). Diese Anmeldeinformationen werden normalerweise in einigen Konfigurationsdateien auf der Festplatte im Klartext gespeichert. Ich denke, dies ist sehr unsicher, insbesondere wenn man bedenkt, dass Anmeldeinformationen über Teammitglieder verteilt werden, in Backups enden usw.

Ich würde es sehr bevorzugen, diese Anmeldeinformationen in verschlüsselter Form zu speichern (ähnlich wie z. B. SSH-Schlüssel). Gibt es eine automatisierte Möglichkeit, dies zu tun? Oder muss ich ein Bash-Skript hacken, das beispielsweise openssl zum Verschlüsseln von Daten verwendet?

Im Internet finden Sie viele Informationen zum Sichern von Anmeldeinformationen auf einer EC2-Instanz. Es gibt sogar diese Amazon IAM-Rollenfunktionalität , sie gilt jedoch auch nur für EC2.

Arnuschky
quelle
1
Dies ist eine großartige Frage und ich bin sehr interessiert an den Antworten.
Ceejayoz

Antworten:

4

https://github.com/realestate-com-au/credulous kann eine Untersuchung wert sein. Aus der Projektbeschreibung:

credulous ist ein Befehlszeilentool, das AWS (IAM) -Anmeldeinformationen sicher verwaltet . Ziel ist es, die Anmeldeinformationen mit dem öffentlichen SSH-Schlüssel eines Benutzers zu verschlüsseln, sodass nur der Benutzer, der über den entsprechenden privaten SSH-Schlüssel verfügt , diese sehen und verwenden kann. Darüber hinaus ermöglicht das Tool dem Benutzer das einfache Drehen seiner aktuellen Anmeldeinformationen, ohne den aktuellen Workflow des Benutzers zu unterbrechen.

Es gibt einen einführenden Blog-Artikel unter http://techblog.realestate.com.au/protecting-your-aws-keys-with-credulous/ .

mvermaes
quelle
Genial, genau das habe ich gesucht (und was ich alleine nicht gefunden habe ...)
Arnuschky
Siehe auch github.com/99designs/aws-vault
Yves M.
4

Tolle Frage - und abhängig von der antwortenden Person haben Sie wahrscheinlich noch ein paar Wege vor sich. Ich werde Ihnen ein Beispiel geben, was wir verwenden:

  1. Erstellen Sie IAM-Rollen basierend auf dem Benutzer (Entwickler, Infrastruktur, Sicherheit, Überwachung usw.). Passen Sie die Richtlinie an, um bestimmte Aktionen basierend auf dem Benutzerzugriff zuzulassen oder zu verweigern.

Beispiel: Alle ec2-Aktionen für den Administrator zulassen. Oder erlauben Sie einem Entwickler nur den Zugriff basierend auf einem Tag oder Subnetz usw.

  1. Starten Sie ec2 Linux-Instanzen mit bestimmten IAM-Rollen. Starten Sie eine Instanz für jede bestimmte Rolle oder jeden Benutzer (passen Sie die Größe / den Typ der Instanz je nach Bedarf, Budget usw. an).

  2. Konfigurieren Sie die Sicherheitsgruppe für jede Instanz so, dass nur bestimmte Subnetze oder einzelne IP-Adressen zugelassen werden, damit Sie den Datenverkehr zu SSH sperren können.

  3. Legen Sie einen benutzerdefinierten Benutzer / ein benutzerdefiniertes Kennwort für SSH fest oder treten Sie der Domäne bei.

  4. Lassen Sie jeden Benutzer bei der Linux-Instanz anmelden oder SSH seiner Rolle oder seinem Benutzerzugriff zuweisen.

  5. API-Schlüssel und Zugriff werden jetzt von der Instanz-IAM-Rolle selbst geerbt, sodass das Speichern von Benutzerschlüsseln irrelevant wird. Stellen Sie einfach sicher, dass die Sicherheitsgruppe gesperrt ist, und gewähren Sie nur bestimmten Benutzern auf der Linux-Box Zugriff. Der Benutzer sollte in der Lage sein, Skripte mit der AWS-API zu schreiben / die API-Tools wie gewohnt zu verwenden.

Wir verwenden diese Methode seit ungefähr einem Jahr - mit zusätzlichen Sicherheitsverbesserungen, wie z. B. der gemieteten Zugriffszeit, die in AWS HSM gekauft wurde, und sie funktioniert hervorragend.

Hoffe das hilft dir oder jemand anderem da draußen.

Scott Moore
quelle
Schöne Idee, danke! Daran habe ich nicht gedacht. Keine Option für uns im Moment aufgrund der damit verbundenen Kosten, aber ich werde es im Hinterkopf behalten.
Arnuschky