vSphere-Rechte sicher delegieren (3)
In virtuellen Umgebungen gibt es viele Nutzer mit unterschiedlichen Berechtigungen. Von besonderer Bedeutung ist das Delegieren der Verwaltungsaufgaben direkt an die Besitzer der VMs und vApps – auch um IT-Teams zu entlasten. VMware vSphere bietet hierfür ein Rechte- und Rollenmodell. Im dritten und letzten Teil schildern wir, wie Sie auf dem Hostclient die gesamte Palette an Berechtigungen administrieren und wie Ihnen die PowerShell bei dieser Aufgabe hilft.
Bereits seit einigen vSphere-Versionen ist das Bedienen der Infrastruktur mithilfe des Browsers nicht länger auf vCenter beschränkt. Jeder ESXi-Host verfügt über eine eigene HTML5-basierte Weboberfläche, den "Hostclient". Mit dieser lassen sich die meisten für einen Host relevanten Operationen grafisch durchführen. Die Performanceüberwachung des Hosts und der VMs darauf ist darüber ebenfalls möglich – natürlich nur in Echtzeit, denn ESXi verfügt über keine Datenbank, um historische Daten zu speichern. Doch auch andere Verwaltungsschnittstellen wie beispielsweise die PowerCLI können Sie mit einem einzelnen Host verwenden und dort Konfigurationsänderungen vornehmen, VMs verwalten oder beispielsweise den Host herunterfahren.
Arbeiten auf dem Host
Auch für diese Tätigkeiten sieht die vSphere-API von ESXi die rollenbasierte Zugriffssteuerung vor. Die möglichen Rollendefinitionen sind zwar genauso umfangreich wie im vCenter, einzelne Berechtigungen finden jedoch auf einem Standalone-Host keine Anwendung. Die zur Verfügung stehenden Identitätsquellen beschränken sich auf die lokale Benutzerdatenbank des ESXi und eine AD-Domäne, falls Sie beschlossen haben, Ihre ESXi-Hosts als Mitglieder ins AD aufzunehmen.
Ordner als Hilfsmittel zur Gliederung der Objekte stehen Ihnen innerhalb eines Hosts ebenfalls nicht zur Verfügung. Bei alleinstehenden Hosts, die nicht von einem vCenter verwaltet werden, können Sie dennoch vom RBAC profitieren und beispielsweise Konsolenverbindungen oder das Neustarten von VMs delegieren. Auch das Anhängen und Trennen eines bestimmten Datastores an einen Anwendungsadministrator zu delegieren, kann in manchen Fällen nützlich sein.
Denken Sie daran, dass jegliche Berechtigungsvergabe auf Hosts, die von einem vCenter verwaltet werden, nur dann greift, wenn der Sperrmodus die Anmeldung des jeweiligen Benutzers überhaupt erst zulässt. Dies ist entweder bei deaktiviertem Sperrmodus oder beim Sperrmodus der Stufe "Normal" möglich, falls sich der User auf der Ausnahmeliste befindet. Im strengen Sperrmodus lässt sich der Host nur über vCenter verwalten.
Berechtigungen per PowerShell verwalten
So mächtig die Berechtigungsvergabe in vSphere sein mag, so mühsam ist ihre praktische Umsetzung, wenn Sie im vCenter-Webclient alles händisch zusammenklicken müssen. Sie sollten sich daher unbedingt mit den von PowerCLI angebotenen Möglichkeiten vertraut machen, um die Berechtigungsvergabe zu automatisieren. Die Terminologie ist hier wie folgt:
- Einzelne Berechtigungen sind "Privileges", der substantivische Teil der entsprechenden PowerCLI-Cmdlets ist "VIPrivilege".
- Rollen verbergen sich hinter dem Nomen "VIRole".
- Zuweisungen von Rollen an Objekte und Sicherheitsprinzipale sind "Berechtigungen", das PowerCLI-Substantiv dazu "VIPermission".
Wie bereits erwähnt, dürfte ein häufiger Vorgang im Betrieb das Klonen einer Rolle sein. Dafür benötigen Sie als Erstes die Liste der Berechtigungen der ursprünglichen Rolle:
$privs = Get-VIPrivilege -Id (Get-VIRole <Name>).PrivilegeList
Anschließend erzeugen Sie eine neue Rolle mit dieser Liste:
New-VIRole -Name <Neuer Name> -Privilege $privs
Sie können so allerdings nicht die Beschreibung der Rolle kopieren; es gibt dafür auch keine einfachere Methode als den direkten Zugriff auf die vSphere-API.
Um die Berechtigungen anzeigen zu lassen, die für ein Objekt, einen Prinzipal oder global in der ganzen Umgebung gelten, hilft das Cmdlet Get-VIPermission. Eine neue Rollenzuweisung setzen Sie mit New-VIPermission. Beide Cmdlets akzeptieren das Argument "-Entity", dieses erwartet allerdings das komplette Objekt des jeweiligen Typs. Haben Sie in Ihrem vCenter-Inventar mehrere Objekte des gleichen Namens (beispielsweise Ordner "Dev" und "Prod", die in jedem Anwendungsordner vorkommen), reicht die Schreibweise
Get-VIPermission -Entity Dev -Principal <DOMAIN\User>
nicht aus, denn Sie erhalten Ergebnisse zu allen Vorkommen des Namens im Inventar. Filtern Sie das gewünschte Objekt zuerst heraus, beispielsweise mit
$folder = Get-Folder Dev | Where-Object {$_.Parent.Name -eq "App-4711"}
und übergeben Sie es an die VIPermission-Befehle:
Get-VIPermission -Entity $folder -Principal DOMAIN\User
Eine Besonderheit hält das Cmdlet Remove-VIPermission für Sie bereit. Dieser Befehl hält sich nicht mit Entities oder Principals auf, sondern erwartet von Ihnen ein fertiges VIPermission-Objekt, das Sie zuerst mit Get-VIPermission aus der Umgebung holen und an Remove-VIPermission übergeben müssen – mittels der Pipeline oder über den Parameter "-Permission".
Wenn Sie etwas Erfahrung im Hantieren mit Rollen, Berechtigungen und Rollenzuweisungen mittels PowerShell gesammelt haben, werden Ihnen auch komplexere Aufgaben leichtfallen, wie zum Beispiel die Übertragung der kompletten Berechtigungsstruktur vom Produktions- auf das Test-vCenter.
Fazit
VMware hat der gesamten vSphere-Verwaltung bereits sehr früh ein striktes rollenbasiertes Zugriffsmodell zugrunde gelegt. Dieses zieht sich durch alle Verwaltungswerkzeuge und greift sogar auf Standalone-ESXi-Hosts. Damit können Sie Berechtigungen sowohl für Administratoren als auch für Anwendungsverwalter gezielt delegieren und so zumindest in diesem Punkt dem Anspruch an eine Private Cloud gerecht werden.
Machen Sie sich hierfür mit der genauen Funktionsweise der Berechtigungsüberlagerung vertraut, damit Ihr Konzept auch möglichst präzise und flexibel ausfällt. Erschließen Sie sich außerdem die Funktionsweise der entsprechenden PowerCLI-Cmdlets und erforschen Sie auch deren Grenzen, um so die nötige Trittsicherheit zu erhalten. (dr/ln)
Im ersten Teil sind wir kurz auf das Konzept von Objekten und Rollen eingegangen und haben erklärt, wie Sie mit passgenauen Berechtigungen für mehr Sicherheit sorgen. Im zweiten Teil haben wir aufgezählt, welche Quellen für Identitäten in Frage kommen und haben beschrieben, wie Sie Berechtigungskonzept in der Praxis planen und umsetzen.
Über den Autor: Evgenij Smirnov ist Senior Solutions Architect bei Semperis und Microsoft-MVP für Cloud & Datacenter Management sowie VMware Certified Implementation Expert für Datacenter-Virtualisierung.