Privénetwerktoegang configureren voor back-endopslag in uw virtuele netwerk
Notitie
De Basic-, Standard- en Enterprise-abonnementen worden afgeschaft vanaf medio maart 2025, met een pensioenperiode van 3 jaar. We raden u aan om over te stappen naar Azure Container Apps. Zie de aankondiging over buitengebruikstelling van Azure Spring Apps voor meer informatie.
Het standaardverbruik en het speciale abonnement worden vanaf 30 september 2024 afgeschaft, met een volledige afsluiting na zes maanden. We raden u aan om over te stappen naar Azure Container Apps. 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.
Als u deze functie inschakelt of uitschakelt, wordt de DNS-omzetting gewijzigd in de back-endopslag. 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
- Een Azure-abonnement. Als u geen abonnement hebt, maakt u een gratis account voordat u begint.
- Azure CLI versie 2.56.0 of hoger.
- Een bestaand Azure Spring Apps-service-exemplaar dat is geïmplementeerd in een virtueel netwerk. Zie Azure Spring Apps implementeren in een virtueel netwerk voor meer informatie.
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 nog een resourcegroep in uw abonnement gemaakt om de private link-resources voor het Azure Spring Apps-exemplaar 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 gedocumenteerd 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 blob
het groupId
voor Azure Storage-blobs. Zie de tabellen in de privé-DNS-zonewaarden van Azure Private Endpoint onder de kolom Subresource voor meer informatie over de groupId
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.net
de 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 rol Privé-DNS Zonebijdrager toewijzen in het abonnement en de resourcegroep waarin de privé-DNS-zones worden gehost op de beheerde identiteit die is gemaakt door de DeployIfNotExists
beleidstoewijzing die verantwoordelijk is voor het maken en beheren van de 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.