2

Ich versuche zu verstehen, was Firewall-Regeln für Azure-Cloud-Dienste (Web/Worker-Rollen) sind, und ich bin verwirrt.Grundlegendes zu Azure Cloud Services Firewall

Basierend auf mehreren Quellen, einschließlich dieses Links http://download.microsoft.com/download/C/A/3/CA3FC5C0-ECE0-4F87-BF4B-D74064A00846/AzureNetworkSecurity_v3_Feb2015.pdf, sind eingehende Verbindungen standardmäßig für Cloud-Dienste blockiert, sei es eine Mitarbeiterrolle oder eine Webrolle. Um die eingehende Verbindung zu öffnen, müsste ich Parameter für EndPoints Elemente in .cscfg angeben.

Allerdings habe ich das nie getan, aber meine Webrollen und Worker Rollen akzeptieren inboud Verbindung, sogar UDP-Verbindung zu Arbeiterrolle.

Was fehlt mir?

Update: Ich entschuldige mich, ich habe eine falsche Datei gesucht. Aus Gründen, die ich nicht erklären kann, habe ich .csdef und .cscfg gemischt. Jetzt sieht es aus wie dumm Frage :)

Antwort

0

David den größten Teil der Antwort wurde abgedeckt, für die detaillierte, warum es funktioniert: https://azure.microsoft.com/nl-nl/documentation/articles/cloud-services-role-enable-remote-desktop/

Werfen Sie einen Blick auf die csdef Datei gibt es einen Abschnitt der Einfuhr in dort

<Imports> 
    <Import moduleName="<import-module>"/> 
</Imports> 

Das Modul für RDP ist "RemoteAccess" und es wird einen "RemoteAccessForwarder" geben, alle Plugins/Module befinden sich im Azure SDK in diesem Verzeichnis (ersetzen Sie v2.9 durch Ihre azure SDK-Version)

C:\Program Files\Microsoft SDKs\Azure\.NET SDK\v2.9\bin\plugins 

importiert Dieses Modul führt zu der folgenden Config auf die csdef Datei zur Laufzeit hinzugefügt:

<?xml version="1.0" ?> 
<RoleModule 
    xmlns="http://schemas.microsoft.com/ServiceHosting/2008/10/ServiceDefinition" 
    namespace="Microsoft.WindowsAzure.Plugins.RemoteAccess"> 
    <Startup priority="-1"> 
    <Task commandLine="RemoteAccessAgent.exe" executionContext="elevated" taskType="background" /> 
    <Task commandLine="RemoteAccessAgent.exe /blockStartup" executionContext="elevated" taskType="simple" /> 
    </Startup> 
    <ConfigurationSettings> 
    <Setting name="Enabled" /> 
    <Setting name="AccountUsername" /> 
    <Setting name="AccountEncryptedPassword" /> 
    <Setting name="AccountExpiration" /> 
    </ConfigurationSettings> 
    <Endpoints> 
    <InternalEndpoint name="Rdp" protocol="tcp" port="3389" /> 
    </Endpoints> 
    <Certificates> 
    <Certificate name="PasswordEncryption" storeLocation="LocalMachine" storeName="My" permissionLevel="elevated" /> 
    </Certificates> 
</RoleModule> 

Dies Port 3389 für die RDP-Verbindung geöffnet wird, so ist der Endpunkt in der .csdef Datei, sondern durch einen Import .

Schauen Sie sich auch den "RemoteForwarder" an, er fungiert als Gateway, also muss nur 1 Port (3389) außen geöffnet werden, und nur 1 Instanz hört dies. Der RemoteForwarder leitet dann die RDP-Verbindung an den richtigen Rechner weiter.Weitere Informationen: https://blogs.msdn.microsoft.com/avkashchauhan/2011/12/06/how-does-remote-desktop-works-in-windows-azure/

+0

Diese Antwort ist völlig neben dem Thema. –

2

Sie sind richtig - Web-und Worker-Rollen müssen Endpunkte definiert werden, um externen Datenverkehr zu Ihren Rollen Instanzen zu ermöglichen.

In Bezug auf die Tatsache, dass Sie derzeit auf Ihre vorhandenen Web-/Worker-Instanzen zugreifen können: Standardmäßig wird ein Endpunkt für Port 80 für Ihre Webrolle erstellt, und wenn Sie RDP aktiviert haben, ist dies ebenfalls aktiviert.

Nur beachten Sie, dass es Port-Mappings gibt, die auftreten: Das heißt, Sie geben den externen Port an (vielleicht ... Port 8000), der dann Ihrem tatsächlichen Port zuordnet, wo Ihr Code abhört (vielleicht ... Port) 80).

Beachten Sie auch, dass Sie, wenn Sie einen dieser Ports für eine Rolle verwenden, einen anderen Port für eine andere Rolle erstellen müssen. Alle Instanzen einer bestimmten Rolle können den gleichen Port in einer Last ausgleichen. Aber ... wenn Sie einen Webserver beispielsweise mit Port 8000 extern in Ihrer Webrolle einrichten und eine andere Webrolle (oder vielleicht eine Worker-Rolle) definieren, können Sie Port 8000 für diese Rolle nicht verwenden.

Rollenendpunkte werden im Cloud-Dienstprojekt in Visual Studio angezeigt, falls Sie die Konfigurationsdatei nicht direkt bearbeiten möchten.

Verwandte Themen