Scripted Actions Azure Runbook Private Endpunkte aktivieren

Diese Scripted Action fügt private Endpoints und Dienst-Endpoints hinzu, sodass der App Service von Nerdio Manager seine SQL-Datenbank, seinen Key Vault und seine Automatisierungskonten über ein privates Netzwerk erreichen kann. Dabei wird kein Datenverkehr über das öffentliche Internet weitergeleitet. Anschließend wird der öffentliche Zugriff auf die Datenbank, den Key Vault und die anderen Komponenten, die abgedeckt werden, eingeschränkt.

Sie können das Skript jederzeit erneut ausführen, um neu aktivierte Komponenten in dasselbe private Netzwerk aufzunehmen. Das Skript aktiviert den öffentlichen Zugriff auf Komponenten, für die er bei einer früheren Ausführung eingeschränkt wurde, nicht erneut.

Komponenten, die das Skript abdeckt

Das Skript deckt die folgenden Komponenten ab, sofern diese in Ihrer Umgebung bereitgestellt sind:

  • Nerdio Manager: den Key Vault, den SQL Server, das Nerdio Manager-Automatisierungskonto, das Automatisierungskonto für Scripted Actions, den App Service, das DPS-Storage-Konto und das Storage-Konto für Scripted Actions.

  • Cost Calculator: den Key Vault, das Storage-Konto und die Web-App.

  • Intune Insights: den Key Vault, den SQL Server und die Web-App.

  • Real-Time Insights: den Key Vault, den SQL Server, die Web-App und das Storage-Konto.

Wenn Sie eine Komponente aktivieren, nachdem Sie das Skript ausgeführt haben, führen Sie das Skript erneut aus, um sie in dasselbe private Netzwerk einzubinden. Das Skript berücksichtigt weder Azure Monitor noch Log Analytics noch Application Insights. Siehe Was das Skript nicht auf privaten Zugriff umstellt.

Bevor Sie das Skript ausführen

Wichtig

Mit dem Standardwert CssaStorageAccount (Restricted) oder mit Private schränkt das Skript den öffentlichen Zugriff auf das Storage-Konto für Scripted Actions ein. Wenn Ihre Azure Runbooks im Download-Modus ausgeführt werden, kann Azure Automation das Skript für keine Scripted Action mehr herunterladen, und jede spätere Scripted Action bleibt ohne Fehlermeldung wirkungslos. Dies schließt eine spätere Ausführung dieses Skripts ein. Stellen Sie den Ausführungsmodus für Azure Runbooks auf Inline Script um, bevor Sie das Skript ausführen. Weitere Informationen finden Sie unter Scripted Actions für Azure Runbooks.

  • Verlinken Sie die virtuellen Netzwerke, deren Hosts Zugriff auf das Storage-Konto für Scripted Actions oder auf den Real-Time Insights App Service benötigen, mit Nerdio Manager. Die Einstellungen für Restricted erlauben den Zugriff nur aus den Subnetzen verlinkter Netzwerke. Siehe Azure-Umgebung: verlinkte Netzwerke und Ressourcengruppen.

  • Stellen Sie sicher, dass die folgenden PowerShell-Module im Automatisierungskonto für Scripted Actions verfügbar sind: Az.Accounts, Az.Resources, Az.KeyVault, Az.Sql, Az.Storage, Az.Websites, Az.Network, Az.PrivateDns und Az.Automation. Wenn ein Modul fehlt, beendet das Skript die Ausführung, bevor es Änderungen vornimmt, und nennt das fehlende Modul.

Was das Skript bewirkt

Wenn Sie das Skript ausführen, geschieht Folgendes:

  • Erstellt das VNet für den privaten Endpoint und dessen Subnetze oder verwendet die bereits vorhandenen. Das Skript sucht zuerst in der Ressourcengruppe Nerdio Manager nach dem VNet und dann im Rest des Abonnements.

  • Erstellt private DNS-Zonen und verlinkt sie mit dem VNet oder verwendet Ihre vorhandenen Zonen (siehe ExistingDNSZonesRG und SkipDNS). Das Skript sucht im Abonnement nach vorhandenen privaten Endpoints.

  • Erstellt die privaten Endpoints, stellt eine Verbindung zwischen den App Services und dem App Service-Subnetz her und führt ein Peering der von Ihnen angegebenen VNets durch.

  • Führt eine Konnektivitätsprüfung vom VNet-integrierten App Service-Worker zum Key Vault (Port 443), zum SQL Server (Port 1433) und zum DPS-Storage-Konto (Blob, Port 443) durch. Wenn die Prüfung eines Ziels fehlschlägt, beendet das Skript die Ausführung mit einem Fehler. Bei dieser Ausführung wird keine Komponente auf privaten Zugriff umgestellt.

  • Deaktiviert den öffentlichen Netzwerkzugriff auf die abgedeckten Komponenten entsprechend den unten angegebenen Parametern. Wenn das Erstellen eines privaten Endpoints oder einer DNS-Zonengruppe fehlschlägt, stellt das Skript keine Komponente auf privaten Zugriff um und listet die betroffenen Komponenten auf.

  • Setzt den Mindestwert der TLS-Version für die Storage-Konten und SQL Server auf 1,2 und untersagt den anonymen öffentlichen Blob-Zugriff auf die Storage-Konten.

  • Warnt vor NSGs und Routentabellen, die an das Subnetz für private Endpoints oder das App Service-Subnetz angehängt sind. Das Skript meldet diese nur. Es ändert diese nicht.

  • Startet den Nerdio Manager App Service neu.

Wenn dasselbe Skript in den letzten 10 Minuten ausgeführt wurde, gibt das Skript den Output der früheren Ausführung wieder, anstatt es erneut auszuführen.

Um die Namen der Ressourcen anzupassen, die das Skript erstellt, wie z. B. Namen privater Endpoints, klonen Sie das Skript und bearbeiten Sie die Variablen am Anfang des Skripts.

Laufzeitparameter

Die folgenden Parameter können zur Laufzeit angegeben werden:

Parameter

Standard

Beschreibung

PrivateLinkVnetName

nmw-private-vnet

VNet für private Endpoints. Wenn das VNet nicht existiert, wird es erstellt. Wenn Sie ein vorhandenes VNet angeben, muss das VNet oder dessen Ressourcengruppe mit Nerdio Manager unter System > Einstellungen > Azure verlinkt sein.

VnetAddressRange

10.250.250.0/23

Adressbereich für das VNet für private Endpoints. Wird ignoriert, wenn das VNet bereits vorhanden ist.

PrivateEndpointSubnetName

nmw-privateendpoints-subnet

Name des Subnetzes für den privaten Endpoint. Wenn das Subnetz nicht vorhanden ist, wird es erstellt.

PrivateEndpointSubnetRange

10.250.250.0/24

Adressbereich für das Subnetz des privaten Endpoints. Wird ignoriert, wenn das Subnetz bereits vorhanden ist.

AppServiceSubnetName

nmw-app-subnet

Name des App Service-Subnetzes. Wenn das Subnetz nicht vorhanden ist, wird es erstellt.

AppServiceSubnetRange

10.250.251.0/26

Adressbereich für das App Service-Subnetz. Wird ignoriert, wenn das Subnetz bereits vorhanden ist. Informationen zum Anpassen der Größe eines vorhandenen Subnetzes finden Sie unter Größe des App Service-Subnetzes anpassen.

ExistingDNSZonesRG

Keine

Wenn Sie bereits private DNS-Zonen für die Verwendung mit den neuen privaten Endpoints konfiguriert haben, geben Sie hier deren Ressourcengruppe an. Das Skript findet und verwendet die vorhandenen DNS-Zonen. Die Zonennamen finden Sie unter Private DNS-Zonen.

Anmerkung

Diese Ressourcengruppe muss unter System > Einstellungen > Azure mit Nerdio Manager verlinkt sein. Alternativ muss Nerdio Manager für die Zonen die Rolle „Private DNS Zone Contributor“ erhalten.

ExistingDNSZonesSubId

Keine

Die Abonnement-ID von ExistingDNSZonesRG, falls sich die Ressourcengruppe in einem anderen Abonnement als Nerdio Manager befindet. Verwenden Sie diesen Parameter nur zusammen mit ExistingDNSZonesRG.

CssaStorageAccount

Restricted

Steuert den Netzwerkzugriff auf das Storage-Konto für Scripted Actions. Gültige Werte sind:

  • Restricted: Erstellt einen privaten Endpoint und schränkt den öffentlichen Endpoint des Storage-Kontos auf die Subnetze verlinkter Netzwerke ein, für die der Microsoft.Storage-Dienst-Endpoint aktiviert ist. Verwenden Sie Microsoft.Storage.Global für ein Subnetz in einer anderen Region als das Storage-Konto.

  • Public: Belässt das Storage-Konto unverändert.

  • Private: Erstellt einen privaten Endpoint und deaktiviert den öffentlichen Netzwerkzugriff vollständig, ohne Zulassungsliste.

Das Skript aktiviert keine Dienst-Endpoints für Subnetze, die es nicht selbst erstellt hat. Das Skript meldet Subnetze ohne Dienst-Endpoint und überspringt sie. Wenn kein verlinktes Netzwerk ein Subnetz mit dem Dienst-Endpoint hat, ändert Restricted nichts, da die Einschränkung des Storage-Kontos mit einer leeren Zulassungsliste denselben Effekt hätte wie Private.

Eine restriktivere Einstellung wird bei einer späteren Ausführung niemals gelockert. Um den öffentlichen Zugriff wieder zu erlauben, ändern Sie dies im Azure-Portal.

Anmerkung

Bei Private verliert jeder Client ohne Netzwerkzugriff auf den privaten Endpoint, einschließlich AVD-Sitzungshosts, den Zugriff auf das Storage-Konto, und die Scripted Actions, die diesen Zugriff benötigen, schlagen auf diesen Hosts fehl. Verwenden Sie PeerVnetIds, um das VNet der Sitzungshosts mit dem VNet des privaten Endpoints zu peeren, und stellen Sie sicher, dass DNS den FQDN des Storage-Kontos in die Adresse des privaten Endpoints auflöst. Alternativ verwenden Sie Restricted.

PeerVnetIds

Keine

Optional. Gültige Werte sind All oder eine durch Kommas getrennte Liste von Azure-Ressourcen-IDs von VNets, die mit dem VNet des privaten Endpoints gepeert werden sollen. Wenn Sie All angeben, werden alle verlinkten VNets im selben Abonnement gepeert. Die VNets oder deren Ressourcengruppen müssen unter System > Einstellungen > Azure mit Nerdio Manager verlinkt sein. Die VNets müssen sich im selben Abonnement wie Nerdio Manager befinden. Peeren Sie VNets in anderen Abonnements manuell.

Wenn MakeAppServicePrivate auf true gesetzt ist oder RtiAppService nicht Public ist, verlinkt das Skript auch die private DNS-Zone des App Service mit den gepeerten VNets.

MakeAppServicePrivate

false

Begrenzt den Zugriff auf den Nerdio Manager App Service und die Intune Insights-Web-App. Wenn Sie es auf true setzen, können nur Hosts im VNet, das dieses Skript erstellt, oder in Peering-VNets darauf zugreifen. Die Intune Insights-Web-App wird innerhalb von Nerdio Manager angezeigt, daher müssen beide für dieselben Clients erreichbar sein.

Warnung

Möglicherweise können Sie nach Aktivierung dieser Option nicht mehr auf Nerdio Manager zugreifen. Das Zurücksetzen des Parameters auf false aktiviert den öffentlichen Zugriff nicht wieder. Um den öffentlichen Zugriff wieder zu erlauben, ändern Sie dies im Azure-Portal.

RtiAppService

Public

Steuert den Netzwerkzugriff auf den Real-Time Insights-App Service. Gültige Werte sind:

  • Public: Belässt den App Service unverändert.

  • Restricted: Schränkt den öffentlichen Endpoint auf die Subnetze verlinkter Netzwerke ein, für die der Microsoft.Web-Dienst-Endpoint aktiviert ist.

  • Private: Deaktiviert den öffentlichen Netzwerkzugriff vollständig.

Warnung

Restricted und Private können Geräte ohne Netzwerkzugriff auf das private VNet unbemerkt vom Dienst ausschließen, darunter Windows 365 Cloud-PCs und Intune-verwaltete Geräte, die zwischen Netzwerken wechseln. Sie können deren Zugriff nicht durch Peering oder Firewall-Regeln wiederherstellen. Das einzige Symptom ist ein fehlender Real-Time Insights-Verlauf.

Real-Time Insights wird innerhalb von Nerdio Manager angezeigt, daher benötigt der Browser jedes Users, der es aufruft, Netzwerkzugriff auf den Real-Time Insights-App Service, nicht nur auf Nerdio Manager selbst. Wenn der Browser eines Users den App Service nicht erreichen kann, wird Real-Time Insights für diesen User nicht angezeigt, obwohl der App Service läuft.

SkipDNS

false

Überspringt das Erstellen, Suchen und Verlinken von DNS-Zonen, einschließlich der Zonengruppen, die die A-Datensätze für die privaten Endpoints schreiben. Verwenden Sie dies nur, wenn Sie DNS selbst verwalten. Das Skript bricht mit einem Fehler ab, wenn Sie sowohl SkipDNS als auch ExistingDNSZonesRG festlegen.

Warnung

Das Skript kann im selben Durchlauf weiterhin den öffentlichen Zugriff auf den Key Vault und den SQL Server deaktivieren. Bis Ihre DNS-Datensätze in die privaten Endpoints aufgelöst werden, kann Nerdio Manager diese nicht erreichen.

App Service-Zugriff

Die folgende Tabelle zeigt, wie das Skript den öffentlichen Zugriff auf jeden App Service steuert.

App Service

Gesteuert durch

Verhalten

Nerdio Manager-App Service

MakeAppServicePrivate

Wenn auf true gesetzt, deaktiviert das Skript den öffentlichen Netzwerkzugriff. Andernfalls bleibt der öffentliche Zugriff unverändert.

Intune Insights-Web-App

MakeAppServicePrivate

Für die Intune Insights-Web-App gelten dieselben Einstellungen wie für den Nerdio Manager-App Service, da sie in Nerdio Manager angezeigt wird.

Cost Calculator-Web-App

Nicht konfigurierbar

Wird immer privat geschaltet, unabhängig von MakeAppServicePrivate. Nur der Nerdio Manager-App Service sendet Daten an sie. Der Datenverkehr läuft über das private Netzwerk.

Real-Time Insights-App Service

RtiAppService

Public lässt ihn unverändert, Restricted begrenzt den öffentlichen Endpoint auf verlinkte Netzwerke und Private deaktiviert den öffentlichen Zugriff.

Real-Time Insights wird innerhalb von Nerdio Manager angezeigt, daher muss der Browser jedes Users, der es aufruft, auch diesen App Service erreichen können.

Was das Skript nicht privat schaltet

  • Datenverkehr der Azure Resource Manager-Steuerungsebene (management.azure.com oder management.usgovcloudapi.net in US Government-Clouds).

  • Azure Monitor, Log Analytics-Workspaces und Application Insights. Das Skript ändert sie nicht.

  • Die Warteschlangen- und Datei-Unterressourcen von Storage-Konten. Das Skript erstellt für jedes betroffene Storage-Konto einen privaten Blob-Endpoint und für das Real-Time Insights-Storage-Konto einen privaten Tabellen-Endpoint, da die anderen Unterressourcen in Nerdio Manager nicht verwendet werden.

Private DNS-Zonen

Das Skript erstellt die folgenden privaten DNS-Zonen oder findet sie in ExistingDNSZonesRG:

Dienst

Azure Commercial

Azure US Government

Key Vault

privatelink.vaultcore.azure.net

privatelink.vaultcore.usgovcloudapi.net

SQL Server

privatelink.database.windows.net

privatelink.database.usgovcloudapi.net

Automatisierung

privatelink.azure-automation.net

privatelink.azure-automation.us

Blob Storage

privatelink.blob.core.windows.net

privatelink.blob.core.usgovcloudapi.net

Tabellenspeicher

privatelink.table.core.windows.net

privatelink.table.core.usgovcloudapi.net

App Service

privatelink.azurewebsites.net

privatelink.azurewebsites.us

Wiederherstellung nach einer Sperrung

Das Skript deaktiviert immer nur den öffentlichen Netzwerkzugriff. Es aktiviert ihn nie wieder. Um den öffentlichen Zugriff auf eine Ressource wieder zu erlauben, ändern Sie deren Netzwerkmanagement-Einstellungen im Azure-Portal.

  • Wenn Sie SkipDNS auf true setzen und die DNS-Datensätze für die privaten Endpoints nicht in die privaten IP-Adressen aufgelöst werden, kann Nerdio Manager nicht auf seinen Key Vault und SQL Server zugreifen. Das Laden der App schlägt mit dem Fehler 500.30 fehl. Erstellen Sie die DNS-Datensätze. Bis sie in die privaten IP-Adressen aufgelöst werden, können Sie im Azure-Portal den öffentlichen Zugriff auf den Key Vault und SQL Server zulassen.

  • Wenn Sie Nerdio Manager nicht erreichen können, nachdem Sie MakeAppServicePrivate auf true gesetzt haben, stellen Sie von einem Host im privaten VNet oder einem per Peering verbundenen VNet eine Verbindung her. Alternativ können Sie im Azure-Portal den öffentlichen Zugriff auf den App Service zulassen.

  • Wenn Real-Time Insights für einige User nicht in Nerdio Manager angezeigt wird, nachdem Sie RtiAppService auf Restricted oder Private gesetzt haben, können die Browser dieser User den Real-Time Insights-App Service nicht erreichen, obwohl der App Service ausgeführt wird. Lassen Sie diese User eine Verbindung über das private VNet oder ein per Peering verbundenes VNet herstellen. Wenn Sie RtiAppService auf Restricted setzen, können sie auch über ein VNet auf der Zulassungsliste eine Verbindung herstellen. Dazu muss für ein Subnetz eines verlinkten Netzwerks der Dienst-Endpoint Microsoft.Web aktiviert sein. Alternativ können Sie im Azure-Portal den öffentlichen Zugriff auf den Real-Time Insights-App Service zulassen.

  • Wenn Scripted Actions nicht mehr ausgeführt werden, nachdem das Storage-Konto für Scripted Actions eingeschränkt wurde, stellen Sie den Azure Runbook-Ausführungsmodus auf Inline Script um. Siehe Scripted Actions für Azure Runbooks.

Größe des App Service-Subnetzes anpassen

Das Skript ändert nicht den Adressbereich eines bereits vorhandenen App Service-Subnetzes. Für die regionale VNet-Integration von App Service erfordert Azure ein Subnetz mit mindestens /28. Für die bis zu vier integrierten Apps wird ein /26-Subnetz empfohlen: den Nerdio Manager-App Service, Intune Insights, Cost Calculator und Real-Time Insights. Frühere Versionen des Skripts erstellten ein /28-Subnetz. Der Standardwert ist jetzt ein /26.

Das Skript beendet die Ausführung mit einem Fehler, wenn das vorhandene Subnetz kleiner als ein /28 ist, und gibt eine Warnung aus, wenn es ein /27 oder ein /28 ist. Sie können den Bereich eines Subnetzes nicht erweitern, während Apps damit integriert sind.

So erweitern Sie ein vorhandenes App Service-Subnetz
  1. Entfernen Sie im Azure-Portal die VNet-Integration von jeder App, die das Subnetz verwendet.

  2. Ändern Sie den Adressbereich des Subnetzes auf ein /26-Netz oder ein größeres Netz.

  3. Führen Sie das Skript erneut aus. Es integriert die Apps wieder mit dem Subnetz.

War dieser Beitrag hilfreich?

0 von 0 fanden dies hilfreich
Haben Sie Fragen? Anfrage einreichen

Kommentare (0 Kommentare)

Bitte melden Sie sich an, um einen Kommentar zu hinterlassen.