# Just Enough Administration (JEA): Das Ende der Voll-Admins

TL;DR / Management Summary Just Enough Administration (JEA) ist eine Sicherheitstechnologie, die auf PowerShell Remoting (Artikel 473) basiert. Sie ermöglicht es, administrative Aufgaben an Nicht-Admins zu delegieren, indem man exakt festlegt, welche Befehle, Parameter und Module sie nutzen dürfen. Ein Senior Admin nutzt JEA, um dem First-Level-Support den Neustart von DNS-Diensten zu erlauben, ohne ihnen das Passwort eines Domain-Admins geben zu müssen.


# 1. Einführung & Architektur

RBAC für die Shell.

JEA implementiert das Prinzip der geringsten Privilegien (Least Privilege) auf Befehlsebene.

# Wie JEA funktioniert

Ein JEA-Endpunkt ist eine virtuelle Shell. Wenn sich ein User verbindet:

  1. Der User authentifiziert sich mit seinem normalen Konto.
  2. PowerShell startet eine Session unter einem privilegierten virtuellen Account (lokaler Admin).
  3. Der User sieht nur die Befehle, die in der Role Capability Datei definiert sind.

# Architektur-Übersicht (Mermaid)

graph LR
    USER[Helpdesk User] -->|Connects to| EP[JEA Endpoint]
    EP -->|Loads| RC[Role Capability: *.psrc]
    RC -->|Filters| PS[PowerShell Engine]
    PS -->|Executes as| V_ADM[Virtual Admin Account]
    V_ADM -->|Action| OS[Windows System]

# 2. JEA Konfiguration in der Praxis

Der Weg zum sicheren Endpunkt.

Ein JEA-Setup besteht aus zwei Dateien:

# Schritt 1: Role Capability (.psrc)

Hier definieren wir, was erlaubt ist.

# MyRole.psrc
VisibleCmdlets = @(
    'Restart-Service',
    @{ Name = 'Get-Service'; Parameters = @{ Name = 'Name' } }
)
VisibleFunctions = 'Get-NetIPAddress'

# Schritt 2: Session Configuration (.pssc)

Hier definieren wir, WER diese Rolle nutzen darf.

# MyConfig.pssc
RoleDefinitions = @{
    'FIRMA\G-Helpdesk' = @{ RoleCapabilities = 'MyRole' }
}
SessionType = 'RestrictedRemoteServer'
RunAsVirtualAccount = $true

# Schritt 3: Endpunkt registrieren

Register-PSSessionConfiguration -Name "ServiceHelpdesk" -Path ".\MyConfig.pssc"

# 3. Deep Dive: Sichtbare Befehle & Parameter

Den Aktionsradius einschränken.

Ein mächtiges Feature von JEA ist die Parameter-Validierung.

VisibleCmdlets = @(
    @{ Name = 'Restart-Service'; ArgumentsAllowList = 'Spooler' }
)

Dies verhindert, dass ein Helpdesk-Mitarbeiter versehentlich den lsass oder dns Dienst abschießt.


# 4. Day-2 Operations: Auditing & Monitoring

Wer hat was getan?

Einer der größten Vorteile von JEA ist die lückenlose Protokollierung.


# 5. Troubleshooting & “War Stories”

Wenn die Shell zu eng ist.

# Top 3 Fehlerbilder

  1. Symptom: User erhält “Befehl nicht gefunden”, obwohl er in der .psrc steht.

    • Ursache: Das Modul, das den Befehl enthält, wurde nicht importiert oder der Befehl ist ein Alias.
    • Lösung: ModulesToImport in der .psrc explizit angeben.
  2. Symptom: Skripte schlagen fehl, weil sie auf Laufwerke zugreifen wollen.

    • Ursache: Der virtuelle Account hat keine Berechtigungen auf Netzwerk-Shares.
    • Lösung: Nutzen Sie gMSAs (Group Managed Service Accounts) für den JEA-Endpunkt.
  3. Symptom: Endpunkt lässt sich nicht registrieren.

    • Lösung: Prüfen Sie, ob der WinRM Dienst läuft und ob die .pssc Datei valide ist (Test-PSSessionConfigurationFile).

# “War Story”: Der “DNS-Retter”

Ein Unternehmen hatte ständig Probleme mit einem instabilen DNS-Forwarder. Nachts musste immer der Senior Admin raus, um den Dienst neuzustarten. Die Lösung: Wir erstellten einen JEA-Endpunkt für den Nachtportier (Wachschutz). Er bekam eine Verknüpfung auf seinem Desktop, die via Invoke-Command exakt einen Befehl ausführte: Restart-Service DNS. Ergebnis: Der Senior Admin konnte schlafen, der Nachtportier fühlte sich wie ein Hacker, und das System war nach 10 Sekunden wieder online. Lehre: Delegation erhöht die Resilienz der gesamten Organisation.


# 6. Monitoring & Reporting

Compliance-Check.

# JEA Endpunkte auditieren

# Zeigt alle registrierten Endpunkte und deren Berechtigungen
Get-PSSessionConfiguration | Select-Object Name, Permission

# 7. Fazit & Empfehlung

JEA ist das ultimative Härtungs-Tool für Windows-Infrastrukturen.


# Anhang: Cheatsheet

Aufgabe Befehl
Rolle erstellen New-PSRoleCapabilityFile
Config erstellen New-PSSessionConfigurationFile
Verbindung testen Enter-PSSession -ConfigurationName "..."
Endpunkt löschen Unregister-PSSessionConfiguration

# Referenzen