Delen via


Privénetwerktoegang configureren voor back-endopslag in uw virtuele netwerk

Notitie

De Basic, Standarden Enterprise--plannen zijn op 17 maart 2025 buiten gebruik gesteld. Zie de aankondiging over buitengebruikstelling van Azure Spring Apps voor meer informatie.

Het Standaardverbruik en het toegewezen-plan zijn op 30 september 2024 met een uitfasering begonnen, met een volledige beëindiging eind maart 2025. Zie Azure Spring Apps Standard-verbruik en toegewezen abonnement migreren naar Azure Container Apps voor meer informatie.

Dit artikel is van toepassing op:✅ Standard ✅ Enterprise

In dit artikel wordt uitgelegd hoe u privénetwerktoegang tot back-endopslag configureert voor uw toepassing in uw virtuele netwerk.

Wanneer u een toepassing implementeert in een Azure Spring Apps-service-exemplaar met virtuele netwerkinjectie, is het service-exemplaar afhankelijk van back-endopslag voor gekoppelde assets, waaronder JAR-bestanden en logboeken. Terwijl de standaardconfiguratie verkeer routeert naar deze back-endopslag via het openbare netwerk, kunt u de functie voor privéopslagtoegang inschakelen. Met deze functie kunt u het verkeer door uw privénetwerk leiden, de beveiliging verbeteren en de prestaties mogelijk verbeteren.

Notitie

Deze functie is alleen van toepassing op een door een virtueel Azure Spring Apps-netwerk geïnjecteerd service-exemplaar.

Voordat u deze functie inschakelt voor uw Azure Spring Apps-service-exemplaar, moet u ervoor zorgen dat er ten minste twee beschikbare IP-adressen zijn in het subnet van de serviceruntime.

Het inschakelen of uitschakelen van deze functie verandert de DNS-resolutie naar de backend-opslag. Gedurende korte tijd kunt u implementaties ondervinden die geen verbinding maken met de back-endopslag of die hun eindpunt niet kunnen oplossen tijdens de update.

Nadat u deze functie hebt ingeschakeld, is de back-endopslag alleen privé toegankelijk, zodat u uw toepassing binnen het virtuele netwerk moet implementeren.

Vereisten

Persoonlijke opslagtoegang inschakelen wanneer u een nieuw Azure Spring Apps-exemplaar maakt

Wanneer u een Azure Spring Apps-exemplaar in het virtuele netwerk maakt, gebruikt u de volgende opdracht om het argument --enable-private-storage-access true door te geven om privéopslagtoegang in te schakelen. Zie Azure Spring Apps implementeren in een virtueel netwerk voor meer informatie.

az spring create \
    --resource-group "<resource-group>" \
    --name "<Azure-Spring-Apps-instance-name>" \
    --vnet "<virtual-network-name>" \
    --service-runtime-subnet "<service-runtime-subnet>" \
    --app-subnet "<apps-subnet>" \
    --location "<location>" \
    --enable-private-storage-access true

Er wordt een extra resourcegroep in uw abonnement gemaakt om de privatelinkresources voor de Azure Spring Apps-instantie te hosten. Deze resourcegroep heeft de naam ap-res_{service instance name}_{service instance region}.

Er zijn twee sets private link-resources geïmplementeerd in de resourcegroep, die elk bestaan uit de volgende Azure-resources:

  • Een privé-eindpunt dat het privé-eindpunt van het back-endopslagaccount vertegenwoordigt.
  • Een netwerkinterface (NIC) die een privé-IP-adres onderhoudt binnen het subnet van de serviceruntime.
  • Een privé-DNS-zone die is geïmplementeerd voor uw virtuele netwerk, met een DNS A-record die ook is gemaakt voor het opslagaccount binnen deze DNS-zone.

Belangrijk

De resourcegroepen worden volledig beheerd door de Azure Spring Apps-service. Verwijder of wijzig geen resource in deze resourcegroepen handmatig.

Persoonlijke opslagtoegang in- of uitschakelen voor een bestaand Azure Spring Apps-exemplaar

Gebruik de volgende opdracht om een bestaand Azure Spring Apps-exemplaar bij te werken om privéopslagtoegang in of uit te schakelen:

az spring update \
    --resource-group "<resource-group>" \
    --name "<Azure-Spring-Apps-instance-name>" \
    --enable-private-storage-access <true-or-false>

Centrale DNS-resolutie gebruiken

Een gecentraliseerde architectuur voor DNS-beheer wordt beschreven in de hub-en-spoke-netwerkarchitectuur in Private Link en DNS-integratie op schaal. In deze architectuur worden alle privé-DNS-zones geïmplementeerd en centraal beheerd in een ander centraal virtueel netwerk dan het Azure Spring Apps-service-exemplaar. Als u deze architectuur gebruikt, kunt u centrale DNS-omzetting inschakelen voor privéopslagtoegang door de DNS-instellingen op de juiste manier te configureren. Deze instelling zorgt ervoor dat:

  • Wanneer een privé-eindpunt wordt gemaakt, worden de bijbehorende DNS-records automatisch toegevoegd aan de gecentraliseerde privé-DNS-zone.
  • DNS-records worden beheerd volgens de levenscyclus van het privé-eindpunt, wat betekent dat ze automatisch worden verwijderd wanneer het privé-eindpunt wordt verwijderd.

In de volgende secties wordt uitgelegd hoe u centrale DNS-omzetting kunt inschakelen voor Azure Storage-blobs met behulp van Azure Policy, ervan uitgaande dat u al de privé-DNS-zone privatelink.blob.core.windows.net hebt ingesteld in het centrale virtuele netwerk. Dezelfde principes zijn van toepassing op Azure Storage-bestanden en andere Azure-services die Ondersteuning bieden voor Private Link.

Beleidsdefinitie

Naast de privé-DNS-zone moet u een aangepaste Azure Policy-definitie maken. Zie Zelfstudie: Een aangepaste beleidsdefinitie maken voor meer informatie. Met deze definitie wordt automatisch de vereiste DNS-record gemaakt in de centrale privé-DNS-zone wanneer u een privé-eindpunt maakt.

Het volgende beleid wordt geactiveerd wanneer u een privé-eindpuntresource maakt met een servicespecifiek groupId. Dit groupId is de id van de groep die is verkregen via de externe resource of service waarmee dit privé-eindpunt verbinding moet maken. In dit voorbeeld is het groupId voor Azure Storage-blobs blob. Zie de tabellen in Azure Private Endpoint privé-DNS-zonewaarden, onder de kolom Subresource, voor meer informatie over de groupId voor andere Azure-services.

Het beleid activeert vervolgens een implementatie van een privateDNSZoneGroup binnen het privé-eindpunt, waarmee het privé-eindpunt wordt gekoppeld aan de privé-DNS-zone die is opgegeven als de parameter. In het volgende voorbeeld is /subscriptions/<subscription-id>/resourceGroups/<resourceGroupName>/providers/Microsoft.Network/privateDnsZones/privatelink.blob.core.windows.netde resource-id van de privé-DNS-zone:

{
  "mode": "Indexed",
  "policyRule": {
    "if": {
      "allOf": [
        {
          "field": "type",
          "equals": "Microsoft.Network/privateEndpoints"
        },
        {
          "value": "[contains(resourceGroup().name, 'ap-res_')]",
          "equals": "true"
        },
        {
          "count": {
            "field": "Microsoft.Network/privateEndpoints/privateLinkServiceConnections[*].groupIds[*]",
            "where": {
              "field": "Microsoft.Network/privateEndpoints/privateLinkServiceConnections[*].groupIds[*]",
              "equals": "blob"
            }
          },
          "greaterOrEquals": 1
        }
      ]
    },
    "then": {
      "effect": "deployIfNotExists",
      "details": {
        "type": "Microsoft.Network/privateEndpoints/privateDnsZoneGroups",
        "evaluationDelay": "AfterProvisioningSuccess",
        "roleDefinitionIds": [
          "/providers/Microsoft.Authorization/roleDefinitions/4d97b98b-1d4f-4787-a291-c67834d212e7"
        ],
        "deployment": {
          "properties": {
            "mode": "incremental",
            "template": {
              "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
              "contentVersion": "1.0.0.0",
              "parameters": {
                "privateDnsZoneId": {
                  "type": "string"
                },
                "privateEndpointName": {
                  "type": "string"
                },
                "location": {
                  "type": "string"
                }
              },
              "resources": [
                {
                  "name": "[concat(parameters('privateEndpointName'), '/deployedByPolicy')]",
                  "type": "Microsoft.Network/privateEndpoints/privateDnsZoneGroups",
                  "apiVersion": "2020-03-01",
                  "location": "[parameters('location')]",
                  "properties": {
                    "privateDnsZoneConfigs": [
                      {
                        "name": "storageBlob-privateDnsZone",
                        "properties": {
                          "privateDnsZoneId": "[parameters('privateDnsZoneId')]"
                        }
                      }
                    ]
                  }
                }
              ]
            },
            "parameters": {
              "privateDnsZoneId": {
                "value": "[parameters('privateDnsZoneId')]"
              },
              "privateEndpointName": {
                "value": "[field('name')]"
              },
              "location": {
                "value": "[field('location')]"
              }
            }
          }
        }
      }
    }
  },
  "parameters": {
    "privateDnsZoneId": {
      "type": "String",
      "metadata": {
        "displayName": "privateDnsZoneId",
        "description": null,
        "strongType": "Microsoft.Network/privateDnsZones"
      }
    }
  }
}

Beleidstoewijzing

Nadat u de beleidsdefinitie hebt geïmplementeerd, wijst u het beleid toe aan het abonnement dat als host fungeert voor de Azure Spring Apps-service-exemplaren en geeft u de centrale privé-DNS-zone op als parameter.

De centrale privé-DNS-zone en het Azure Spring Apps-service-exemplaar kunnen worden gehost in de verschillende abonnementen. In dit geval moet u de Privé-DNS Zonebijdrager-rol toewijzen in het abonnement en de resourcegroep waarin de privé-DNS-zones worden gehost, aan de beheerde identiteit die is gecreëerd door de DeployIfNotExists beleidstoewijzing die verantwoordelijk is voor het maken en beheren van het DNS-record voor het privé-eindpunt in de privé-DNS-zone. Zie de sectie De beheerde identiteit configureren van niet-compatibele resources herstellen met Azure Policy voor meer informatie.

Nadat u de configuraties hebt voltooid, worden de DNS-records voor privé-eindpunten automatisch geregistreerd en verwijderd nadat een privé-eindpunt is verwijderd, in de bijbehorende privé-DNS-zone.

Extra kosten

Voor het Azure Spring Apps-exemplaar worden geen kosten in rekening gebracht voor deze functie. U wordt echter gefactureerd voor de private link-resources die worden gehost in uw abonnement die deze functie ondersteunen. Zie prijzen voor Azure Private Link en Prijzen voor Azure DNS voor meer informatie.

Aangepaste DNS-servers gebruiken

Als u een aangepaste DNS-server (Domain Name System) gebruikt en het IP-adres 168.63.129.16 van Azure DNS niet is geconfigureerd als de upstream-DNS-server, moet u handmatig alle DNS-records van de privé-DNS-zones die worden weergegeven in de resourcegroep ap-res_{service instance name}_{service instance region} verbinden om de privé-IP-adressen om te zetten.

Volgende stappen