Exchange-Verwaltungsrollen beschränken den unerwünschten Administratorzugriff

Dieser Artikel behandelt eine spezielle Art der RBAC-Verwaltungsrolle (Role-Based Access Control), die nicht abgedeckte Verwaltungsrolle der obersten Ebene. Wie der Name schon sagt, sind nicht abgedeckte Verwaltungsrollen nicht an einen Bereich gebunden und gelten auf globaler Ebene.

Nicht gespeicherte Verwaltungsrollen bieten eingeschränkten Zugriff auf Administratoren oder Benutzerkonten, um bestimmte Skripts oder Nicht-Exchange-Cmdlets von einem anderen PowerShell-Modul auszuführen (reguläre PowerShell-Cmdlets bleiben verfügbar).

Um eine Verwaltungsrolle ohne Gültigkeitsbereich zu erstellen, müssen Sie Mitglied der Verwaltungsgruppe ohne Gültigkeitsbereich sein. Verwenden Sie Folgendes, um den Administrator der Verwaltungsgruppe für nicht kopierte Rollen zuzuweisen:

New-ManagementRoleAssignment – Name ‘Administratoren für nicht gespeicherte Rollenverwaltung’ – Benutzeradministrator – Rolle ‘Verwaltung für nicht gespeicherte Rollen’

Wenn Sie diese Rolle einer Gruppe zuweisen möchten, verwenden Sie SecurityGroup anstelle des Benutzerparameters und geben Sie den Gruppennamen an.

Starten Sie die Exchange Management Shell (EMS) neu, damit die neue Berechtigung wirksam wird, und stellen Sie den Parameter UnScopedTopLevel zur Verfügung. Erstellen Sie jetzt eine Verwaltungsrolle ohne Gültigkeitsbereich, indem Sie bei Verwendung den Schalter ohne Gültigkeitsbereich angeben New-ManagementRole::

New-ManagementRole –Name ‘Exchange Maintenance’ -UnScopedTopLevel

Die Skripts, die Sie einer nicht kopierten Verwaltungsrolle zuordnen möchten, müssen sich auf jedem relevanten Exchange-Server im Ordner $ exinstall RemoteScripts befinden. Standardmäßig ist dies der Speicherort: C: Programme Microsoft Exchange Server v15 RemoteScripts. Das Format zum Zuweisen eines Skripts zu einer Verwaltungsrolle ohne Gültigkeitsbereich lautet:

Add-ManagementRoleEntry – Identität ‘Rollenname Skriptdateiname’ [–Parameters <Param1>, <Param2>, ..] –Type Script –UnscopedTopLevel

So weisen Sie einen Nicht-Exchange zu CmdletErsetzen Sie den Skriptdateinamen durch den Namen des Cmdlets und setzen Sie den Typ auf Cmdlet. Geben Sie alle Parameter an, deren Verwendung mit dem Skript oder Cmdlet zulässig ist.

Angenommen, Sie möchten Berechtigungen zum Ausführen eines Skripts HealthCheck.ps1 mit einem Parameter namens Notify zuweisen. Verwenden Sie:

Add-ManagementRoleEntry –Identity ‘Exchange Maintenance HealthCheck.ps1’ –Parameter ‘Notify’ –Type Script –UnscopedTopLevel

Erstellen Sie eine Verwaltungsrollengruppe

In diesem Beispiel habe ich hat eine unscoped Top Level Management-Rolle erstellt mit dem Namen ‘Exchange Maintenance’, der ein Skript HealthCheck.ps1 ausführen und einen Parameter Notify angeben darf. Jetzt kann ich eine Rollengruppe erstellen und dieser die nicht kopierte Verwaltungsrolle zuweisen Rollengruppeund fügen Sie Konten oder Gruppen hinzu, die dieses Skript oder Cmdlet ausführen müssen.
Angenommen, Sie haben ein Dienstkonto saExchange. Führen Sie die folgenden Cmdlets aus, um die Rollengruppe zu erstellen und dieses Konto hinzuzufügen (unter Angabe von BypassSecurityGroupManagerChecks, da es nicht für die Verwaltung dieser Gruppe über die ManagedBy-Eigenschaft konfiguriert ist):
New-RoleGroup –Name ‘Exchange-Wartung ausführen’ –Rollen ‘Exchange-Wartung’
Add-RoleGroupMember –Identity ‘Exchange-Wartung ausführen’ –Mitglied saExchange -BypassSecurityGroupManagerChecks
Wenn saExchange eine EMS-Sitzung öffnet, wird HealthCheck.ps1 als verfügbare nicht reguläre PowerShell-Befehle angezeigt (Abbildung 1).

Unregelmäßige PowerShell-Befehle

SaExchange verfügt zwar über die Berechtigung zum Ausführen dieses Skripts, jedoch nicht unbedingt über die Berechtigung zum Ausführen von Exchange oder anderen Cmdlets. Mit anderen Worten, das Konto muss jedes im Skript verwendete Cmdlet ausführen, um erfolgreich ausgeführt zu werden. Stell sicher, dass du Weisen Sie dem Konto eine geeignete Rollengruppe zuoder geben Sie einzelne Verwaltungsrolleneinträge an.
Verwenden Sie, um ein Nicht-Exchange-Cmdlet von einem bestimmten Modul aus ausführen zu können Add-ManagementRoleEntry. Angenommen, Sie haben das Quest Active Roles-Snap-In auf jedem Exchange-Server installiert und können ein bestimmtes Cmdlet in Ihrem Skript ausführen. Damit saExchange ausgeführt werden kann Get-QADUser, benutzen:
Add-ManagementRoleEntry –Identity ‘Exchange-Wartung Get-QADUser –PSSnapIn Quest.ActiveRoles.ADManagement –UnscopedTopLevel

Während die Einrichtung eine Weile dauern kann, ermöglichen unscoped Top-Level-Verwaltungsrollen das Konfigurieren detaillierter Berechtigungen für bestimmte Aufgaben. Abgesehen von Exchange-Berechtigungen können Sie den Umfang eines Kontos dahingehend einschränken, welche Skripts oder Nicht-Exchange-Cmdlets in Kombination mit welchen Parametern ausgeführt werden können. Abhängig von Ihren Anforderungen kann dies eine willkommene Methode sein, um die Exchange-Umgebung zu sperren und das Risiko von Fehlern und möglichen Konsequenzen zu begrenzen.

Similar Posts

Leave a Reply