Omgekeerde proxy instellen en configureren in Azure Service Fabric
Omgekeerde proxy is een optionele Azure Service Fabric-service waarmee microservices die worden uitgevoerd in een Service Fabric-cluster, kunnen worden gedetecteerd en gecommuniceerd met andere services die http-eindpunten hebben. Zie Omgekeerde proxy in Azure Service Fabric voor meer informatie. In dit artikel leest u hoe u omgekeerde proxy in uw cluster instelt en configureert.
Omgekeerde proxy inschakelen met behulp van Azure Portal
Azure Portal biedt een optie om omgekeerde proxy in te schakelen wanneer u een nieuw Service Fabric-cluster maakt. U kunt een bestaand cluster niet upgraden om omgekeerde proxy te gebruiken via de portal.
Als u omgekeerde proxy wilt configureren wanneer u een cluster maakt met behulp van Azure Portal, moet u het volgende doen:
Selecteer in stap 2: Clusterconfiguratie, onder Configuratie van het knooppunttype, reverse proxy inschakelen.
(Optioneel) Als u beveiligde omgekeerde proxy wilt configureren, moet u een TLS/SSL-certificaat configureren. Selecteer in stap 3: Beveiliging, onder Configuratietype, bij Clusterbeveiligingsinstellingen configureren de optie Aangepast. Selecteer vervolgens onder Ssl-certificaat voor omgekeerde proxy een SSL-certificaat opnemen voor omgekeerde proxy en voer de certificaatgegevens in.
Als u ervoor kiest om de omgekeerde proxy niet te configureren met een certificaat wanneer u het cluster maakt, kunt u dit later doen via de Resource Manager-sjabloon voor de resourcegroep van het cluster. Zie Omgekeerde proxy inschakelen via Azure Resource Manager-sjablonen voor meer informatie.
Omgekeerde proxy inschakelen via Azure Resource Manager-sjablonen
Voor clusters in Azure kunt u de Azure Resource Manager-sjabloon gebruiken om de omgekeerde proxy in Service Fabric in te schakelen. U kunt omgekeerde proxy inschakelen wanneer u het cluster maakt of inschakelen door het cluster op een later tijdstip bij te werken.
Voor een nieuw cluster kunt u een aangepaste Resource Manager-sjabloon maken of een voorbeeldsjabloon gebruiken.
U vindt voorbeeldsjablonen van Resource Manager die u kunnen helpen bij het configureren van beveiligde omgekeerde proxy voor een Azure-cluster in de voorbeeldsjablonen voor beveiligde omgekeerde proxy op GitHub. Raadpleeg Omgekeerde HTTPS-proxy configureren in een beveiligd cluster in het README-bestand voor instructies en de sjablonen voor het configureren van beveiligde omgekeerde proxy met een certificaat en voor het afhandelen van de rollover van certificaten.
Voor een bestaand cluster kunt u de Resource Manager-sjabloon voor de resourcegroep van het cluster exporteren met behulp van Azure Portal, PowerShell of de Azure CLI.
Nadat u een Resource Manager-sjabloon hebt, kunt u de omgekeerde proxy inschakelen met de volgende stappen:
Definieer een poort voor de omgekeerde proxy in de sectie Parameters van de sjabloon.
"SFReverseProxyPort": { "type": "int", "defaultValue": 19081, "metadata": { "description": "Endpoint for Service Fabric Reverse proxy" } },
Geef de poort op voor elk van de knooppunttypeobjecten in de sectie Resourcetype Microsoft.ServiceFabric/clusters.
De poort wordt geïdentificeerd door de parameternaam reverseProxyEndpointPort.
{ "apiVersion": "2021-06-01", "type": "Microsoft.ServiceFabric/clusters", "name": "[parameters('clusterName')]", "location": "[parameters('clusterLocation')]", ... "nodeTypes": [ { ... "reverseProxyEndpointPort": "[parameters('SFReverseProxyPort')]", ... }, ... ], ... }
Als u TLS/SSL-certificaten wilt configureren op de poort voor de omgekeerde proxy, voegt u het certificaat toe aan het object reverseProxyCertificate in de resourcesjabloon Microsoft.ServiceFabric/clusters.
{ "apiVersion": "2021-06-01", "type": "Microsoft.ServiceFabric/clusters", "name": "[parameters('clusterName')]", "location": "[parameters('clusterLocation')]", "dependsOn": [ "[concat('Microsoft.Storage/storageAccounts/', parameters('supportLogStorageAccountName'))]" ], "properties": { ... "reverseProxyCertificate": { "thumbprint": "[parameters('sfReverseProxyCertificateThumbprint')]", "x509StoreName": "[parameters('sfReverseProxyCertificateStoreName')]" }, ... "clusterState": "Default", } }
U kunt ook een algemene naam opgeven voor omgekeerde proxycertificaten met behulp van het object reverseProxyCertificateCommonNames in de resourcesjabloon clusters.
Een omgekeerd proxycertificaat ondersteunen dat verschilt van het clustercertificaat
Als het omgekeerde proxycertificaat verschilt van het certificaat dat het cluster beveiligt, moet het eerder opgegeven certificaat worden geïnstalleerd op de virtuele machine en worden toegevoegd aan de toegangsbeheerlijst (ACL), zodat Service Fabric er toegang toe heeft. Dit kan worden gedaan in de sectie Microsoft.Compute/virtualMachineScaleSets Resourcetype. Voor installatie voegt u het certificaat toe aan het osProfile. De extensiesectie van de sjabloon kan het certificaat in de ACL bijwerken.
{
"apiVersion": "[variables('vmssApiVersion')]",
"type": "Microsoft.Compute/virtualMachineScaleSets",
....
"osProfile": {
"adminPassword": "[parameters('adminPassword')]",
"adminUsername": "[parameters('adminUsername')]",
"computernamePrefix": "[parameters('vmNodeType0Name')]",
"secrets": [
{
"sourceVault": {
"id": "[parameters('sfReverseProxySourceVaultValue')]"
},
"vaultCertificates": [
{
"certificateStore": "[parameters('sfReverseProxyCertificateStoreValue')]",
"certificateUrl": "[parameters('sfReverseProxyCertificateUrlValue')]"
}
]
}
]
}
....
"extensions": [
{
"name": "[concat(parameters('vmNodeType0Name'),'_ServiceFabricNode')]",
"properties": {
"type": "ServiceFabricNode",
"autoUpgradeMinorVersion": false,
...
"publisher": "Microsoft.Azure.ServiceFabric",
"settings": {
"clusterEndpoint": "[reference(parameters('clusterName')).clusterEndpoint]",
"nodeTypeRef": "[parameters('vmNodeType0Name')]",
"dataPath": "D:\\\\SvcFab",
"durabilityLevel": "Bronze",
"testExtension": true,
"reverseProxyCertificate": {
"thumbprint": "[parameters('sfReverseProxyCertificateThumbprint')]",
"x509StoreName": "[parameters('sfReverseProxyCertificateStoreValue')]"
},
},
"typeHandlerVersion": "1.0"
}
},
]
}
Notitie
Wanneer u certificaten gebruikt die afwijken van het clustercertificaat om de omgekeerde proxy in te schakelen op een bestaand cluster, installeert u het omgekeerde proxycertificaat en werkt u de ACL op het cluster bij voordat u de omgekeerde proxy inschakelt. Voltooi de implementatie van de Azure Resource Manager-sjabloon met behulp van de eerder genoemde instellingen voordat u een implementatie start om de omgekeerde proxy in te schakelen in stap 1-3.
Omgekeerde proxy inschakelen voor zelfstandige clusters
Voor zelfstandige clusters schakelt u reverse proxy in het ClusterConfig.json-bestand in. U kunt omgekeerde proxy inschakelen bij het maken van een cluster of door de configuratie voor een bestaand cluster bij te upgraden. Zie Zelfstandige clusterinstellingen voor meer informatie over de instellingen die beschikbaar zijn in ClusterConfig.json bestanden.
In de volgende stappen ziet u de instellingen die moeten worden gebruikt om omgekeerde proxy in te schakelen en eventueel om de omgekeerde proxy te beveiligen met een X.509-certificaat.
Als u omgekeerde proxy wilt inschakelen, stelt u de waarde reverseProxyEndpointPort in voor het knooppunttype onder eigenschappen in de clusterconfiguratie. De volgende JSON toont het instellen van de poort van het omgekeerde proxy-eindpunt op 19081 voor knooppunten met een type NodeType0:
"properties": { ... "nodeTypes": [ { "name": "NodeType0", ... "reverseProxyEndpointPort": "19081", ... } ], ... }
(Optioneel) Voor een veilige omgekeerde proxy configureert u een certificaat in de beveiligingssectie onder eigenschappen.
Voor een ontwikkel- of testomgeving kunt u de instelling ReverseProxyCertificate gebruiken:
"properties": { ... "security": { ... "CertificateInformation": { ... "ReverseProxyCertificate": { "Thumbprint": "[Thumbprint]", "ThumbprintSecondary": "[Thumbprint]", "X509StoreName": "My" }, ... } }, ... }
Voor een productieomgeving wordt de instelling ReverseProxyCertificateCommonNames aanbevolen:
"properties": { ... "security": { ... "CertificateInformation": { ... "ReverseProxyCertificateCommonNames": { "CommonNames": [ { "CertificateCommonName": "[CertificateCommonName]" } ], "X509StoreName": "My" }, ... } }, ... }
Zie X509-beveiliging voor meer informatie over het configureren en beheren van certificaten voor een zelfstandig cluster en meer informatie over het configureren van certificaten die worden gebruikt voor het beveiligen van omgekeerde proxy.
Nadat u het ClusterConfig.json-bestand hebt gewijzigd om omgekeerde proxy in te schakelen, volgt u de instructies in De clusterconfiguratie bijwerken om de wijzigingen naar uw cluster te pushen.
Omgekeerde proxy beschikbaar maken op een openbare poort via Azure Load Balancer
Als u de omgekeerde proxy van buiten een Azure-cluster wilt aanpakken, stelt u Azure Load Balancer-regels en een Azure-statustest in voor de omgekeerde proxypoort. Deze stappen kunnen op elk gewenst moment worden uitgevoerd met behulp van Azure Portal of de Resource Manager-sjabloon nadat u het cluster hebt gemaakt.
Waarschuwing
Wanneer u de poort van de reverse proxy in Load Balancer configureert, zijn alle microservices in het cluster die een HTTP-eindpunt beschikbaar maken, adresseerbaar van buiten het cluster. Dit betekent dat microservices die bedoeld zijn om intern te zijn, kunnen worden gedetecteerd door een bepaalde kwaadwillende gebruiker. Dit kan ernstige beveiligingsproblemen opleveren die kunnen worden misbruikt; bijvoorbeeld:
- Een kwaadwillende gebruiker kan een Denial of Service-aanval starten door herhaaldelijk een interne service aan te roepen die niet voldoende is beveiligd.
- Een kwaadwillende gebruiker kan ongeldige pakketten leveren aan een interne service, wat resulteert in onbedoeld gedrag.
- Een service die intern is, kan persoonlijke of gevoelige informatie retourneren die niet bedoeld is voor blootstelling aan services buiten het cluster, waardoor deze gevoelige informatie zichtbaar wordt voor een kwaadwillende gebruiker.
Zorg ervoor dat u de mogelijke gevolgen voor beveiliging voor uw cluster en de apps die erop worden uitgevoerd volledig begrijpt en beperkt, voordat u de omgekeerde proxypoort openbaar maakt.
Als u omgekeerde proxy openbaar wilt weergeven voor een zelfstandig cluster, is de manier waarop u dit doet afhankelijk van het systeem dat als host fungeert voor het cluster en valt buiten het bereik van dit artikel. De voorgaande waarschuwing over het openbaar maken van omgekeerde proxy is echter nog steeds van toepassing.
De omgekeerde proxy beschikbaar maken met behulp van Azure Portal
Klik in Azure Portal op de resourcegroep voor uw cluster en klik vervolgens op de load balancer voor uw cluster.
Als u een statustest voor de omgekeerde proxypoort wilt toevoegen, klikt u in het linkerdeelvenster van het load balancervenster onder INSTELLINGEN op Statustests. Klik vervolgens boven aan het venster Statustests op Toevoegen en voer details in voor de omgekeerde proxypoort en klik vervolgens op OK. De omgekeerde proxypoort is standaard 19081, tenzij u deze hebt gewijzigd toen u het cluster maakte.
Als u een load balancer-regel wilt toevoegen om de omgekeerde proxypoort beschikbaar te maken, klikt u in het linkerdeelvenster van het load balancer-venster onder INSTELLINGEN op Taakverdelingsregels. Klik vervolgens boven aan het venster Taakverdelingsregels op Toevoegen en voer details in voor de omgekeerde proxypoort. Zorg ervoor dat u de poortwaarde instelt op de poort waarop u de omgekeerde proxy wilt weergeven, de waarde van de back-endpoort op de poort die u instelt wanneer u omgekeerde proxy hebt ingeschakeld en de statustestwaarde op de statustest die u in de vorige stap hebt geconfigureerd. Stel indien nodig andere velden in en klik op OK.
De omgekeerde proxy beschikbaar maken via Resource Manager-sjablonen
De volgende JSON verwijst naar dezelfde sjabloon die wordt gebruikt in Reverse Proxy inschakelen via Azure Resource Manager-sjablonen. Raadpleeg deze sectie van het document voor informatie over het maken van een Resource Manager-sjabloon of het exporteren van een sjabloon voor een bestaand cluster. De wijzigingen worden aangebracht in de sectie Resourcetype Microsoft.Network/loadBalancers.
{
"apiVersion": "[variables('lbApiVersion')]",
"type": "Microsoft.Network/loadBalancers",
...
...
"loadBalancingRules": [
...
{
"name": "LBSFReverseProxyRule",
"properties": {
"backendAddressPool": {
"id": "[variables('lbPoolID0')]"
},
"backendPort": "[parameters('SFReverseProxyPort')]",
"enableFloatingIP": "false",
"frontendIPConfiguration": {
"id": "[variables('lbIPConfig0')]"
},
"frontendPort": "[parameters('SFReverseProxyPort')]",
"idleTimeoutInMinutes": "5",
"probe": {
"id": "[concat(variables('lbID0'),'/probes/SFReverseProxyProbe')]"
},
"protocol": "tcp"
}
}
],
"probes": [
...
{
"name": "SFReverseProxyProbe",
"properties": {
"intervalInSeconds": 5,
"numberOfProbes": 2,
"port": "[parameters('SFReverseProxyPort')]",
"protocol": "tcp"
}
}
]
}
Gedrag van omgekeerde proxy aanpassen met infrastructuurinstellingen
U kunt het gedrag van omgekeerde proxy aanpassen via infrastructuurinstellingen in de Resource Manager-sjabloon voor clusters die worden gehost in Azure of in het ClusterConfig.json-bestand voor zelfstandige clusters. Instellingen voor omgekeerde proxygedrag bevinden zich in de sectie ApplicationGateway/Http in de sectie fabricSettings onder de sectie clustereigenschappen.
U kunt bijvoorbeeld de waarde van DefaultHttpRequestTimeout instellen om de time-out voor aanvragen in te stellen op de omgekeerde proxy op 180 seconden, zoals in de volgende JSON:
{
"fabricSettings": [
...
{
"name": "ApplicationGateway/Http",
"parameters": [
{
"name": "DefaultHttpRequestTimeout",
"value": "180"
}
]
}
],
...
}
Notitie
Omgekeerde proxy heeft een limiet van 16 kB voor headers en biedt geen ondersteuning voor het wijzigen van de drempelwaarde in een grotere grootte.
Zie Clusterinstellingen aanpassen met Resource Manager-sjablonen voor meer informatie over het bijwerken van infrastructuurinstellingen voor Azure-clusters. Zie Clusterinstellingen voor zelfstandige clusters aanpassen voor zelfstandige clusters.
Er worden verschillende infrastructuurinstellingen gebruikt om veilige communicatie tussen omgekeerde proxy en services tot stand te brengen. Zie Verbinding maken met een beveiligde service met de omgekeerde proxy voor gedetailleerde informatie over deze instellingen.
Volgende stappen
- Doorsturen instellen om de HTTP-service te beveiligen met de omgekeerde proxy
- Zie de sectie ApplicationGateway/Http in de instellingen van het Service Fabric-cluster aanpassen voor opties voor omgekeerde proxyconfiguratie.