Richtige Nutzung der Amazon AWS Command Line unter Einsatz von IAM

Um die Amazon AWS Command Line Tools (am besten zu nutzen über die Bitnami Cloud Tools, siehe diesen Artikel) nutzen zu können, muss man allerdings für die AWS Command Line Tools entsprechende Zertifikate hinterlegen, da die Authentifizierung der AWS Command Line Tools am entsprechenden Amazon AWS Account automatisiert über Zertifikate erfolgt.

In der Regel machen das die meisten Kunden, in dem sie sich mit dem Master Account User anmelden (das ist der User, der das entsprechende AWS Konto erstellt hat) und in der AWS Console rechts oben im Menü auf Security Credentials klicken.

  

Anschließend kann man sich dort im Bereich X.509 ein neues Zertifikat erstellen lassen und das Zertifikat und den Private Key herunterladen und diese entsprechend in den AWS Command Line Tools einbinden.

Diese beiden Dateien werden dann i.d.R. an die Programmierer und Administratoren verteilt und alle fangen an zu arbeiten. Funktioniert technisch prima, ist aber suboptimal … denn was passiert, wenn einer das Unternehmen verlässt … dann muss man eigentlich ein neues Zertifikat mit Private Key erstellen und wieder neu verteilen …

Besser macht man das über den Einsatz des AWS Moduls IAM … das kostet nichts extra … und erlaubt eine personenbezogene Verwaltung … jeder Programmierer / Admin bekommt seinen eigenen Account … Unternehmen verlassen … Account gelöscht.

In Amazon AWS IAM können sehr dedizierte User- oder Gruppen- bezogene Rechte pro AWS Modul oder API Aufruf definiert werden … hier soll es erstmal darum gehen, jedem Programmierer / Admin sein eigenes Set von Zertifikat / Private-Key zu geben, damit er damit seine AWS Command Line Tools entsprechend konfigurieren kann.

Wenn der entsprechende User in IAM angelegt wurde und über eine entsprechende Policy unter Permissions idealerweise „Administrator Access“ bekommen hat, so muss unter der Karteikarte „Security Credentials“ nun das entsprechende Signing-Zertifikat hinterlegt werden, damit dieses von den AWS Command Line Tools genutzt werden kann.

Leider können über IAM keine personenbezogenen Zertifikate und Private-Keys erzeugt werden, man muss das manuell über OpenSSL machen.

Unter http://slproweb.com/products/Win32OpenSSL.html kann eine Windows Version von OpenSSL heruntergeladen werden.

Über die Windows Command Line generiert man dann wie folgt den Private Key und das dazugehörige Zertifikat, alles komplett self-signed.

  • openssl genrsa -out UserName-iam.key 1024
  • openssl req -new -key UserName-iam.key -out UserName-iam.csr
  • openssl x509 -req -in UserName-iam.csr -signkey UserName-iam.key -out UserName-iam.pem -days 3650

Das Zertifikat wird dann im AWS IAM hochgeladen und ist somit dem entsprechenden User zugeordnet. Zertifikat und Private-Key werden dann noch entsprechend bei den AWS Command Line Tools des Users hinterlegt.

PS: OpenSSL unter Windows geht nur, wenn man eine Umgebungsvariable wie folgt definiert:

set OPENSSL_CONF=c:\[PATH TO YOUR OPENSSL DIRECTORY]\bin\openssl.cfg