Verwenden von Virtual Network-Dienstendpunkten und -Regeln für Azure Database for MySQLUse Virtual Network service endpoints and rules for Azure Database for MySQL

VNET-Regeln sind eine Firewallsicherheitsfunktion, die steuert, ob Ihr Azure Database for MySQL-Server Nachrichten zulässt, die von bestimmten Subnetzen in virtuellen Netzwerken gesendet werden.Virtual network rules are one firewall security feature that controls whether your Azure Database for MySQL server accepts communications that are sent from particular subnets in virtual networks. In diesem Artikel erfahren Sie, warum die VNET-Regelfunktion manchmal die sicherste Option darstellt, um Nachrichten an Ihren Azure Database for MySQL-Server zuzulassen.This article explains why the virtual network rule feature is sometimes your best option for securely allowing communication to your Azure Database for MySQL server.

Zum Erstellen einer VNET-Regel benötigen Sie ein virtuelles Netzwerk (VNET) und einen VNET-Dienstendpunkt für die Regel, auf die verwiesen wird.To create a virtual network rule, there must first be a virtual network (VNet) and a virtual network service endpoint for the rule to reference. Die folgende Abbildung zeigt, wie ein VNET-Dienstendpunkt mit Azure Database for MySQL funktioniert:The following picture illustrates how a Virtual Network service endpoint works with Azure Database for MySQL:

Beispielhafte Funktionsweise eines VNET-Dienstendpunkts

Hinweis

Dieses Feature steht in allen Regionen von Azure zur Verfügung, in denen Azure Database for MySQL für General Purpose- and Memory Optimized-Server bereitgestellt wird.This feature is available in all regions of Azure where Azure Database for MySQL is deployed for General Purpose and Memory Optimized servers. Wenn beim VNet-Peering der Datenverkehr über eine gemeinsame VNet Gateway-Instanz mit Dienstendpunkten fließt und an den Peer fließen soll, erstellen Sie eine ACL/VNet-Regel, damit Azure Virtual Machines im Gateway-VNet auf den Azure Database for MySQL-Server zugreifen kann.In case of VNet peering, if traffic is flowing through a common VNet Gateway with service endpoints and is supposed to flow to the peer, please create an ACL/VNet rule to allow Azure Virtual Machines in the Gateway VNet to access the Azure Database for MySQL server.

Terminologie und BeschreibungTerminology and description

Virtuelles Netzwerk: Sie können Ihrem Azure-Abonnement virtuelle Netzwerke zuordnen.Virtual network: You can have virtual networks associated with your Azure subscription.

Subnetz: Ein virtuelles Netzwerk enthält Subnetze.Subnet: A virtual network contains subnets. Ihre virtuellen Azure-Computer (VMs) sind Subnetzen zugewiesen.Any Azure virtual machines (VMs) that you have are assigned to subnets. Ein Subnetz kann mehrere VMs oder andere Computeknoten enthalten.One subnet can contain multiple VMs or other compute nodes. Computeknoten, die sich außerhalb Ihres virtuellen Netzwerks befinden, können nicht auf Ihr virtuelles Netzwerk zugreifen, es sei denn, Sie konfigurieren für sie den sicheren Zugriff.Compute nodes that are outside of your virtual network cannot access your virtual network unless you configure your security to allow access.

Virtual Network-Dienstendpunkt: Ein VNET-Dienstendpunkt ist ein Subnetz, dessen Eigenschaftswerte mindestens einen formalen Azure-Diensttypnamen enthalten.Virtual Network service endpoint: A Virtual Network service endpoint is a subnet whose property values include one or more formal Azure service type names. In diesem Artikel beschäftigen wir uns mit dem Typnamen Microsoft.Sql, der auf einen Azure-Dienst mit dem Namen „SQL-Datenbank“ verweist.In this article we are interested in the type name of Microsoft.Sql, which refers to the Azure service named SQL Database. Dieses Diensttag gilt auch für die Azure Database for MySQL- und Azure Database for PostgreSQL-Dienste.This service tag also applies to the Azure Database for MySQL and PostgreSQL services. Bitte beachten Sie: Wenn Sie das Diensttag Microsoft.Sql auf einen VNET-Dienstendpunkt anwenden, wird der Dienstendpunkt-Datenverkehr für alle Azure SQL-Datenbank-, Azure Database for MySQL- und Azure Database for PostgreSQL-Server im Subnetz konfiguriert.It is important to note when applying the Microsoft.Sql service tag to a VNet service endpoint it will configure service endpoint traffic for all Azure SQL Database, Azure Database for MySQL and Azure Database for PostgreSQL servers on the subnet.

VNET-Regel: Eine VNET-Regel für Ihren Azure Database for MySQL-Server ist ein Subnetz, das in der Zugriffssteuerungsliste Ihres Azure Database for MySQL-Servers aufgeführt wird.Virtual network rule: A virtual network rule for your Azure Database for MySQL server is a subnet that is listed in the access control list (ACL) of your Azure Database for MySQL server. Das Subnetz muss den Typnamen Microsoft.Sql enthalten, um in der Zugriffssteuerungsliste für Ihren Azure Database for MySQL-Server zu sein.To be in the ACL for your Azure Database for MySQL server, the subnet must contain the Microsoft.Sql type name.

Eine VNET-Regel weist Ihren Azure Database for MySQL-Server an, Nachrichten von jedem Knoten im Subnetz anzunehmen.A virtual network rule tells your Azure Database for MySQL server to accept communications from every node that is on the subnet.

Vorteile einer VNET-RegelBenefits of a virtual network rule

Die virtuellen Computer in Ihren Subnetzen können nicht mit Ihrem Azure Database for MySQL-Server kommunizieren, bis Sie dies einrichten.Until you take action, the VMs on your subnets cannot communicate with your Azure Database for MySQL server. Eine Aktion zum Herstellen der Kommunikation stellt die Erstellung einer VNET-Regel dar.One action that establishes the communication is the creation of a virtual network rule. Die Begründung der Entscheidung für eine VNET-Regel erfordert eine Erörterung der Vor- und Nachteile, die die von der Firewall gebotenen konkurrierenden Sicherheitsoptionen berücksichtigt.The rationale for choosing the VNet rule approach requires a compare-and-contrast discussion involving the competing security options offered by the firewall.

A.A. Zugriff auf Azure-Dienste erlaubenAllow access to Azure services

Der Verbindungssicherheitsbereich hat eine EIN/AUSSchaltfläche mit der Bezeichnung Zugriff auf Azure-Dienste erlauben.The Connection security pane has an ON/OFF button that is labeled Allow access to Azure services. Die Einstellung EIN lässt Nachrichten von allen Azure IP-Adressen und aus allen Azure-Subnetzen zu.The ON setting allows communications from all Azure IP addresses and all Azure subnets. Diese Azure-IP-Adressen oder -Subnetze gehören möglicherweise nicht Ihnen.These Azure IPs or subnets might not be owned by you. Diese Einstellung EIN lässt wahrscheinlich einen umfassenderen Zugriff auf Ihre Azure Database for MySQL-Datenbank zu, als von Ihnen gewünscht.This ON setting is probably more open than you want your Azure Database for MySQL Database to be. Eine VNET-Regel ermöglicht eine präzisere Steuerung.The virtual network rule feature offers much finer granular control.

B.B. IP-RegelnIP rules

Mit der Azure Database for MySQL-Firewall können Sie IP-Adressbereiche bestimmen, aus denen Nachrichten an die Azure Database for MySQL-Datenbank gesendet werden dürfen.The Azure Database for MySQL firewall allows you to specify IP address ranges from which communications are accepted into the Azure Database for MySQL Database. Dieser Ansatz eignet sich gut für statische IP-Adressen, die sich außerhalb des privaten Azure-Netzwerks befinden.This approach is fine for stable IP addresses that are outside the Azure private network. Doch viele Knoten innerhalb des privaten Azure-Netzwerks sind mit dynamischen IP-Adressen konfiguriert.But many nodes inside the Azure private network are configured with dynamic IP addresses. Dynamische IP-Adressen können sich ändern, z.B. wenn Ihre VM neu gestartet wird.Dynamic IP addresses might change, such as when your VM is restarted. Es wäre töricht, eine dynamische IP-Adresse in einer Firewallregel in einer Produktionsumgebung anzugeben.It would be folly to specify a dynamic IP address in a firewall rule, in a production environment.

Sie können die IP-Option weiter nutzen, indem Sie eine statische IP-Adresse für Ihre VM abrufen.You can salvage the IP option by obtaining a static IP address for your VM. Einzelheiten finden Sie unter Konfigurieren von privaten IP-Adressen für einen virtuellen Computer über das Azure-Portal.For details, see Configure private IP addresses for a virtual machine by using the Azure portal.

Der Ansatz mit statischen IP-Adressen kann jedoch schwierig zu handhaben und aufwendig sein, wenn er in großem Maßstab befolgt wird.However, the static IP approach can become difficult to manage, and it is costly when done at scale. VNET-Regeln sind einfacher einzurichten und zu verwalten.Virtual network rules are easier to establish and to manage.

C.C. Zuweisen von Azure Database for MySQL zu einem Subnetz noch nicht möglichCannot yet have Azure Database for MySQL on a subnet without defining a service endpoint

Würde sich Ihr Microsoft.Sql-Server auf einem Knoten in einem Subnetz in Ihrem virtuellen Netzwerk befinden, könnten alle Knoten innerhalb des virtuellen Netzwerks mit Ihrem Azure Database for MySQL-Server kommunizieren.If your Microsoft.Sql server was a node on a subnet in your virtual network, all nodes within the virtual network could communicate with your Azure Database for MySQL server. Dann könnten auch Ihre virtuellen Computer mit der Azure Database for MySQL-Instanz kommunizieren – ohne VNET- oder IP-Regeln.In this case, your VMs could communicate with Azure Database for MySQL without needing any virtual network rules or IP rules.

Allerdings gehört der Azure Database for MySQL-Dienst noch nicht zu den Diensten, die einem Subnetz direkt zugewiesen werden können (Stand August 2018).However as of August 2018, the Azure Database for MySQL service is not yet among the services that can be assigned directly to a subnet.

Details zu VNET-RegelnDetails about virtual network rules

In diesem Abschnitt werden verschiedene Details zu VNET-Regeln beschrieben.This section describes several details about virtual network rules.

Nur eine geografische RegionOnly one geographic region

Jeder Virtual Network-Dienstendpunkt gehört nur zu einer Azure-Region.Each Virtual Network service endpoint applies to only one Azure region. Der Endpunkt ermöglicht anderen Regionen nicht das Akzeptieren von Nachrichten aus dem Subnetz.The endpoint does not enable other regions to accept communication from the subnet.

Eine VNET-Regel ist auf die Region beschränkt, zu der der zugrunde liegende Endpunkt gehört.Any virtual network rule is limited to the region that its underlying endpoint applies to.

Auf Serverebene, nicht auf DatenbankebeneServer-level, not database-level

Jede VNET-Regel gilt für den gesamten Azure Database for MySQL-Server und nicht nur für eine bestimmte Datenbank auf dem Server.Each virtual network rule applies to your whole Azure Database for MySQL server, not just to one particular database on the server. Das heißt, dass VNET-Regeln auf Server- und nicht auf Datenbankebene gelten.In other words, virtual network rule applies at the server-level, not at the database-level.

SicherheitsverwaltungsrollenSecurity administration roles

Bei der Verwaltung der VNET-Dienstendpunkte erfolgt eine Trennung von Sicherheitsrollen.There is a separation of security roles in the administration of Virtual Network service endpoints. Die folgenden Rollen müssen Aktionen ausführen:Action is required from each of the following roles:

  • Netzwerkadministrator:  Aktivieren des Endpunkts.Network Admin:   Turn on the endpoint.
  • Datenbankadministrator:  Aktualisieren der Zugriffssteuerungsliste, um das angegebene Subnetz dem Azure Database for MySQL-Server hinzuzufügen.Database Admin:   Update the access control list (ACL) to add the given subnet to the Azure Database for MySQL server.

Alternative zur rollenbasierten Zugriffssteuerung:RBAC alternative:

Die Rollen „Netzwerkadministrator“ und „Datenbankadministrator“ haben mehr Zugriffsrechte, als für die Verwaltung von VNET-Regeln erforderlich ist.The roles of Network Admin and Database Admin have more capabilities than are needed to manage virtual network rules. Es wird nur eine Teilmenge der Zugriffsrechte benötigt.Only a subset of their capabilities is needed.

Sie können mit der rollenbasierten Zugriffssteuerung (RBAC) in Azure arbeiten, um eine einzelne benutzerdefinierte Rolle zu erstellen, die nur über die benötigte Teilmenge von Zugriffsrechten verfügt.You have the option of using role-based access control (RBAC) in Azure to create a single custom role that has only the necessary subset of capabilities. Die benutzerdefinierte Rolle kann definiert werden, anstatt den Netzwerk- oder Datenbankadministrator einzubeziehen. Die auf die Sicherheit bezogene Angriffsfläche ist kleiner, wenn Sie einen Benutzer einer benutzerdefinierte Rolle hinzufügen und ihn nicht den beiden anderen wichtigen Administratorrollen hinzufügen.The custom role could be used instead of involving either the Network Admin or the Database Admin. The surface area of your security exposure is lower if you add a user to a custom role, versus adding the user to the other two major administrator roles.

Hinweis

In einigen Fällen befinden sich Azure Database for MySQL und das VNET-Subnetz in unterschiedlichen Abonnements.In some cases the Azure Database for MySQL and the VNet-subnet are in different subscriptions. In diesen Fällen müssen Sie folgende Konfigurationen sicherstellen:In these cases you must ensure the following configurations:

  • Beide Abonnements müssen demselben Azure Active Directory-Mandanten zugeordnet sein.Both subscriptions must be in the same Azure Active Directory tenant.
  • Der Benutzer muss über die erforderlichen Berechtigungen zum Initiieren der Vorgänge verfügen. Dazu gehören z.B. das Aktivieren von Dienstendpunkten und das Hinzufügen eines VNET-Subnetzes auf dem angegebenen Server.The user has the required permissions to initiate operations, such as enabling service endpoints and adding a VNet-subnet to the given Server.
  • Stellen Sie sicher, dass für beide Abonnements der Ressourcenanbieter Microsoft.Sql registriert ist.Make sure that both the subscription has the Microsoft.Sql resource provider registered. Weitere Informationen finden Sie unter Azure-Ressourcenanbieter und -typen.For more information refer resource-manager-registration

EinschränkungenLimitations

Bei Azure Database for MySQL gelten für VNET-Regeln folgende Einschränkungen:For Azure Database for MySQL, the virtual network rules feature has the following limitations:

  • Eine Web-App kann einer privaten IP in einem VNET/Subnetz zugeordnet werden.A Web App can be mapped to a private IP in a VNet/subnet. Auch wenn Dienstendpunkte im entsprechenden VNET/Subnetz aktiviert sind, haben Verbindungen zwischen der Web-App und dem Server keine VNET-/Subnetzquelle, sondern eine öffentliche Azure-IP-Quelle.Even if service endpoints are turned ON from the given VNet/subnet, connections from the Web App to the server will have an Azure public IP source, not a VNet/subnet source. Um die Verbindung einer Web-App mit einem Server mit VNET-Firewallregeln zu ermöglichen, müssen Sie auf dem Server Azure-Diensten den Zugriff auf den Server erlauben.To enable connectivity from a Web App to a server that has VNet firewall rules, you must Allow Azure services to access server on the server.

  • In der Firewall für Azure Database for MySQL verweist jede VNET-Regel auf ein Subnetz.In the firewall for your Azure Database for MySQL, each virtual network rule references a subnet. Alle diese Subnetze müssen in derselben geografischen Region gehostet werden wie Azure Database for MySQL.All these referenced subnets must be hosted in the same geographic region that hosts the Azure Database for MySQL.

  • Jeder Azure Database for MySQL-Server kann für ein beliebiges virtuelles Netzwerk maximal 128 Einträge in der Zugriffssteuerungsliste haben.Each Azure Database for MySQL server can have up to 128 ACL entries for any given virtual network.

  • VNET-Regeln gelten nur für virtuelle Netzwerke gemäß dem Azure Resource Manager-Modell und nicht gemäß dem klassischen Bereitstellungsmodell.Virtual network rules apply only to Azure Resource Manager virtual networks; and not to classic deployment model networks.

  • Wenn Sie die VNET-Dienstendpunkte für Azure Database for MySQL mit dem Diensttag Microsoft.Sql aktivieren, werden auch die Endpunkte für alle Azure-Datenbankdienste aktiviert: Azure Database for MySQL, Azure Database for PostgreSQL, Azure SQL-Datenbank und Azure SQL Data Warehouse.Turning ON virtual network service endpoints to Azure Database for MySQL using the Microsoft.Sql service tag also enables the endpoints for all Azure Database services: Azure Database for MySQL, Azure Database for PostgreSQL, Azure SQL Database and Azure SQL Data Warehouse.

  • VNET-Dienstendpunkte werden nur für Server vom Typ „Universell“ und „Arbeitsspeicheroptimiert“ unterstützt.Support for VNet service endpoints is only for General Purpose and Memory Optimized servers.

  • In der Firewall gelten zwar IP-Adressbereiche für die folgenden Netzwerkelemente, VNET-Regeln jedoch nicht:On the firewall, IP address ranges do apply to the following networking items, but virtual network rules do not:

ExpressRouteExpressRoute

Wenn Ihr Netzwerk über ExpressRoute mit Ihrem Azure-Netzwerk verbunden ist, wird jede Verbindung mit zwei öffentlichen IP-Adressen im Microsoft-Edgebereich konfiguriert.If your network is connected to the Azure network through use of ExpressRoute, each circuit is configured with two public IP addresses at the Microsoft Edge. Die beiden IP-Adressen werden zum Herstellen der Verbindung mit Microsoft-Diensten, z.B. Azure Storage, mithilfe von öffentlichem Azure-Peering verwendet.The two IP addresses are used to connect to Microsoft Services, such as to Azure Storage, by using Azure Public Peering.

Sie müssen IP-Netzwerkregeln für die öffentlichen IP-Adressen Ihrer Verbindungen erstellen, um die Kommunikation zwischen Ihrer Verbindung und Azure Database for MySQL zu ermöglichen.To allow communication from your circuit to Azure Database for MySQL, you must create IP network rules for the public IP addresses of your circuits. Öffnen Sie über das Azure-Portal ein Supportticket für ExpressRoute, um die öffentlichen IP-Adressen Ihrer ExpressRoute-Verbindung zu ermitteln.In order to find the public IP addresses of your ExpressRoute circuit, open a support ticket with ExpressRoute by using the Azure portal.

Hinzufügen einer VNET-Firewallregel zu Ihrem Server ohne Aktivierung von VNET-DienstendpunktenAdding a VNET Firewall rule to your server without turning On VNET Service Endpoints

Allein das Festlegen einer Firewallregel trägt nicht zur Sicherung des Servers im VNET bei.Merely setting a Firewall rule does not help secure the server to the VNet. Sie müssen auch VNET-Dienstendpunkte aktivieren , damit der Server gesichert wird.You must also turn VNet service endpoints On for the security to take effect. Wenn Sie Dienstendpunkte aktivieren , fällt das VNET-Subnetz solange aus, bis der Übergang von „deaktiviert“ zu „aktiviert“ abgeschlossen ist.When you turn service endpoints On, your VNet-subnet experiences downtime until it completes the transition from Off to On. Dies gilt vor allem für sehr umfangreiche VNETs.This is especially true in the context of large VNets. Mithilfe des Flags IgnoreMissingServiceEndpoint können Sie die Ausfallzeit während des Übergangs reduzieren bzw. vermeiden.You can use the IgnoreMissingServiceEndpoint flag to reduce or eliminate the downtime during transition.

Verwenden Sie die Azure CLI oder das Azure-Portal, um das Flag IgnoreMissingServiceEndpoint festzulegen.You can set the IgnoreMissingServiceEndpoint flag by using the Azure CLI or portal.

Nächste SchritteNext steps

Hier finden Sie weitere Artikel zum Erstellen von VNET-Regeln:For articles on creating VNet rules, see: