Zum Inhalt

Workspace Network Policy und Outbound Access Protection

Dieses Runbook dokumentiert, wie die Plattform die Network Communication Policy des Fabric-Workspaces setzt, die bekannten Grenzen der Fabric-API und wie die Deployment-Skripte damit umgehen. Es richtet sich an das Plattform-Team.

Hintergrund

Die Terraform-Module fabric-workspace und fabric-connections rufen die API-Familie networking/communicationPolicy von Fabric über PowerShell-Skripte (local-exec-Provisioner) auf. Die Skripte verwenden die Azure-CLI-Session der pipeline, um ein Token für die Fabric-API zu holen.

Skript API-Endpoint (unter /v1/workspaces/{id}) Zweck
set_workspace_network_policy.ps1 PUT .../networking/communicationPolicy Setzt die publicAccessRules.defaultAction für Inbound und Outbound. Outbound Deny ist Outbound Access Protection (OAP).
set_workspace_git_outbound_policy.ps1 PUT .../communicationPolicy/outbound/git Erlaubt Git, wenn OAP an ist (Git ist unter OAP standardmäßig blockiert)
set_workspace_gateway_rules.ps1 PUT .../communicationPolicy/outbound/gateways Schränkt ein, welche Gateways der Workspace verwenden darf: Default Deny, nur das Gateway der Umgebung erlaubt
set_workspace_cloud_connections.ps1 PUT .../communicationPolicy/outbound/connections Setzt die Allow-List der ausgehenden Cloud-Connections (LakeHouse, Warehouse, semantische Power-BI-Modelle)

Das Flag outbound_network_policy_enabled

Eine Einstellung pro Workspace in der Konfiguration. Die Semantik ist invertiert:

Wert Default Action für Outbound Ergebnis
false (Default) Deny OAP aktiviert. Standardmäßig verweigert, die Allow-List wird durchgesetzt.
true Allow OAP deaktiviert. Der ausgehende öffentliche Zugriff ist offen.

Die Dokumentation der Lösung beschreibt Outbound als standardmäßig blockiert. Im Code ist der Default des Flags false, ein Workspace ohne die Einstellung ist also geschützt. Die Referenzkonfiguration der Lösung setzt true für Engineering- und Entwicklungs-Workspaces und behält false für Reporting-Workspaces. Entscheide pro Workspace und schreibe die Begründung ins Ticket.

Inbound

Das Skript wird mit der Inbound Default Action Allow aufgerufen, und jeder Workspace bekommt außerdem einen Private Endpoint. Wenn dein Sicherheitsdesign verlangt, dass der öffentliche Inbound-Pfad geschlossen ist, prüfe die Inbound-Einstellung in deinem Deployment und in den Fabric-Tenant-Einstellungen. Die Servicebeschreibung beschreibt den Inbound-Zugriff als ausschließlich über Private Endpoint.

Bekannte Grenzen und wie die Skripte damit umgehen

Die Network Policy braucht eine größere Capacity-SKU

Network Communication Policies auf Workspace-Ebene sind nicht auf jeder Capacity-SKU verfügbar. Auf kleinen F-SKUs liefert die API 403 Forbidden (die Kommentare im Skript nennen F64 oder höher). set_workspace_network_policy.ps1 behandelt das 403 als sauberes Überspringen: Es loggt eine Warnung und endet mit Erfolg. Der Workspace profitiert dann weiterhin vom Private Link und der Gateway- Konfiguration, aber nicht von den Regeln auf Workspace-Ebene. Plane eine größere SKU ein, wenn die Policy durchgesetzt werden muss.

Outbound-Connection-Regeln liefern 403, wenn OAP aus ist

Fabric setzt die Outbound-Connection-Regeln nur durch, wenn die Outbound Default Action Deny ist. Bei einem Workspace mit outbound_network_policy_enabled = true liefert der Aufruf von .../outbound/connections 403 Forbidden. Die Regeln waren auf einem solchen Workspace nie durchsetzbar, der Aufruf ist daher absichtlich ein No-op. set_workspace_cloud_connections.ps1 behandelt das 403 als sauberes Überspringen (Warnung, Exit-Code 0). Um die Regeln durchzusetzen, setze das Flag auf false.

Das wurde in der Praxis beobachtet: terraform apply schlug mit 403 auf terraform_data.workspace_cloud_connections für alle Workspaces mit dem Flag true fehl, während Workspaces mit false erfolgreich waren. Bestehende Workspaces schienen nur deshalb nicht betroffen, weil ihre Trigger sich nicht geändert hatten und das Skript daher nicht erneut lief.

Fehlersignatur:

Failed to update workspace outbound connection policy: Response status code does not indicate success: 403 (Forbidden).

Wenn das als harter Fehler auftritt, ist die Modulversion älter als die saubere 403-Behandlung: Upgrade auf ein Release, das sie enthält.

Tenant-Einstellung

Die Fabric-Tenant-Einstellung Configure workspace-level outbound network rules (Fabric-Admin-Portal, Tenant settings) muss von einem Fabric-Administrator aktiviert werden, bevor OAP konfiguriert werden kann. Siehe Voraussetzungen.

Git unter OAP

Mit OAP an (Flag false) ist Git blockiert. Die Ressource workspace_git_outbound_policy erlaubt es, nur wenn eine Git-Verknüpfung konfiguriert ist. Siehe Konnektivität.

  • Architektur
  • Konnektivität
  • Microsoft Learn: Workspace Outbound Access Protection (Überblick und Einrichtung) sowie die Fabric-REST-API Set Network Communication Policy und Set Outbound Cloud Connection Rules