Fordított proxy beállítása és konfigurálása az Azure Service Fabricben
A fordított proxy egy opcionális Azure Service Fabric-szolgáltatás, amely segít a Service Fabric-fürtben futó mikroszolgáltatások felderítésében és a http-végpontokkal rendelkező más szolgáltatásokkal való kommunikációban. További információ: Fordított proxy az Azure Service Fabricben. Ez a cikk bemutatja, hogyan állíthat be és konfigurálhat fordított proxyt a fürtben.
Fordított proxy engedélyezése az Azure Portallal
Az Azure Portal lehetővé teszi a fordított proxy engedélyezését új Service Fabric-fürt létrehozásakor. Meglévő fürtöt nem frissíthet fordított proxy használatára a portálon keresztül.
Ha fordított proxyt szeretne konfigurálni, amikor fürtöt hoz létre az Azure Portalon, tegye a következőket:
A 2. lépés: Fürtkonfiguráció csomóponttípus-konfiguráció területén válassza a Fordított proxy engedélyezése lehetőséget.
(Nem kötelező) A biztonságos fordított proxy konfigurálásához TLS-/SSL-tanúsítványt kell konfigurálnia. A 3. lépésben: Biztonság, a fürt biztonsági beállításainak konfigurálása területen válassza az Egyéni lehetőséget a Konfiguráció típusa csoportban. Ezután a Fordított proxy SSL-tanúsítvány területén válassza az SSL-tanúsítvány belefoglalása fordított proxyhoz lehetőséget, és adja meg a tanúsítvány adatait.
Ha úgy dönt, hogy nem konfigurálja a fordított proxyt tanúsítvánnyal a fürt létrehozásakor, ezt később is megteheti a fürt erőforráscsoportjának Resource Manager-sablonján keresztül. További információ: Fordított proxy engedélyezése Azure Resource Manager-sablonokon keresztül.
Fordított proxy engedélyezése Azure Resource Manager-sablonokon keresztül
Az Azure-beli fürtök esetében az Azure Resource Manager-sablonnal engedélyezheti a fordított proxyt a Service Fabricben. A fürt létrehozásakor vagy a fürt későbbi frissítésével engedélyezheti a fordított proxyt.
Új fürt esetén létrehozhat egy egyéni Resource Manager-sablont, vagy használhat mintasablont.
A GitHubon található Biztonságos fordított proxy mintasablonok segítségével biztonságos fordított proxyt konfigurálhat egy Azure-fürthöz. A README-fájlban található biztonságos fürt https fordított proxyjának konfigurálásához és a biztonságos fordított proxy tanúsítványokkal való konfigurálásához és a tanúsítványátvétel kezeléséhez használható sablonokkal kapcsolatos útmutatásért tekintse meg a HTTPS fordított proxy konfigurálását.
Meglévő fürtök esetén exportálhatja a fürt erőforráscsoportjának Resource Manager-sablonját az Azure Portal, a PowerShell vagy az Azure CLI használatával.
Miután rendelkezik Resource Manager-sablonnal, az alábbi lépésekkel engedélyezheti a fordított proxyt:
Adjon meg egy portot a fordított proxyhoz a sablon Paraméterek szakaszában .
"SFReverseProxyPort": { "type": "int", "defaultValue": 19081, "metadata": { "description": "Endpoint for Service Fabric Reverse proxy" } },
Adja meg a portot a Microsoft.ServiceFabric/clusters erőforrástípus szakasz minden csomóponttípus-objektumához.
A portot a reverseProxyEndpointPort paraméternév azonosítja.
{ "apiVersion": "2021-06-01", "type": "Microsoft.ServiceFabric/clusters", "name": "[parameters('clusterName')]", "location": "[parameters('clusterLocation')]", ... "nodeTypes": [ { ... "reverseProxyEndpointPort": "[parameters('SFReverseProxyPort')]", ... }, ... ], ... }
Ha tLS/SSL-tanúsítványokat szeretne konfigurálni a fordított proxy portján, adja hozzá a tanúsítványt a ReverseProxyCertificate objektumhoz a Microsoft.ServiceFabric/clusters erőforrássablonban.
{ "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", } }
A fordított proxytanúsítványok általános nevét a fürtök erőforrássablonjának reverseProxyCertificateCommonNames objektumával is megadhatja.
A fürttanúsítványtól eltérő fordított proxytanúsítvány támogatása
Ha a fordított proxy tanúsítványa eltér a fürtöt biztosító tanúsítványtól, akkor a korábban megadott tanúsítványt telepíteni kell a virtuális gépre, és hozzá kell adni a hozzáférés-vezérlési listához (ACL), hogy a Service Fabric hozzáférhessen. Ez a Microsoft.Compute/virtualMachineScaleSets erőforrástípus szakaszában végezhető el. A telepítéshez adja hozzá a tanúsítványt az osProfile-hoz. A sablon bővítményszakasza frissítheti a tanúsítványt az ACL-ben.
{
"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"
}
},
]
}
Feljegyzés
Ha a fürttanúsítványtól eltérő tanúsítványokkal engedélyezi a fordított proxyt egy meglévő fürtön, telepítse a fordított proxy tanúsítványt, és frissítse az ACL-t a fürtön a fordított proxy engedélyezése előtt. Végezze el az Azure Resource Manager-sablon üzembe helyezését az üzembe helyezés megkezdése előtt említett beállításokkal, hogy engedélyezze a fordított proxyt az 1–3. lépésben.
Fordított proxy engedélyezése önálló fürtökön
Önálló fürtök esetén engedélyezi a fordított proxyt a ClusterConfig.json fájlban. A fordított proxyt a fürt létrehozásakor vagy egy meglévő fürt konfigurációjának frissítésével engedélyezheti. Az ClusterConfig.json fájlokban elérhető beállításokkal kapcsolatos további információkért lásd az önálló fürtbeállításokat.
Az alábbi lépések bemutatják a fordított proxy engedélyezéséhez és opcionálisan a fordított proxy X.509-tanúsítvánnyal való védelméhez szükséges beállításokat.
A fordított proxy engedélyezéséhez állítsa be a csomóponttípus reverseProxyEndpointPort értékét a fürtkonfiguráció tulajdonságai alatt. Az alábbi JSON bemutatja, hogy a fordított proxy végpontportja 19081-re van-e állítva a "NodeType0" típusú csomópontok esetében:
"properties": { ... "nodeTypes": [ { "name": "NodeType0", ... "reverseProxyEndpointPort": "19081", ... } ], ... }
(Nem kötelező) Biztonságos fordított proxy esetén konfiguráljon egy tanúsítványt a tulajdonságok alatti biztonsági szakaszban.
Fejlesztési vagy tesztelési környezet esetén használhatja a ReverseProxyCertificate beállítást:
"properties": { ... "security": { ... "CertificateInformation": { ... "ReverseProxyCertificate": { "Thumbprint": "[Thumbprint]", "ThumbprintSecondary": "[Thumbprint]", "X509StoreName": "My" }, ... } }, ... }
Éles környezetben a ReverseProxyCertificateCommonNames beállítás ajánlott:
"properties": { ... "security": { ... "CertificateInformation": { ... "ReverseProxyCertificateCommonNames": { "CommonNames": [ { "CertificateCommonName": "[CertificateCommonName]" } ], "X509StoreName": "My" }, ... } }, ... }
Az önálló fürtök tanúsítványainak konfigurálásáról és kezeléséről, valamint a fordított proxy védelméhez használt tanúsítványok konfigurálásáról további információt az X509 tanúsítványalapú biztonság című témakörben talál.
Miután módosította a ClusterConfig.json fájlt a fordított proxy engedélyezéséhez, kövesse a fürtkonfiguráció frissítésére vonatkozó utasításokat a módosítások fürtbe való leküldéséhez.
Fordított proxy felfedése nyilvános porton az Azure Load Balancer használatával
Ha egy Azure-fürtön kívülről szeretné kezelni a fordított proxyt, állítsa be az Azure Load Balancer-szabályokat és egy Azure Health Probe-t a fordított proxyporthoz. Ezeket a lépéseket az Azure Portalon vagy a Resource Manager-sablonnal bármikor elvégezheti a fürt létrehozása után.
Figyelmeztetés
Ha a fordított proxy portját konfigurálja a Load Balancerben, a fürt minden olyan mikroszolgáltatása, amely HTTP-végpontot tesz elérhetővé, a fürtön kívülről kezelhető. Ez azt jelenti, hogy a belsőnek szánt mikroszolgáltatások felderíthetők egy meghatározott rosszindulatú felhasználó számára. Ez potenciálisan súlyos biztonsági réseket jelent, amelyeket ki lehet használni; például:
- A rosszindulatú felhasználók szolgáltatásmegtagadási támadást indíthatnak, ha ismételten meghívnak egy belső szolgáltatást, amely nem rendelkezik megfelelően megerősített támadási felülettel.
- A rosszindulatú felhasználók helytelenül formázott csomagokat kézbesíthetnek egy belső szolgáltatásnak, ami nem szándékos viselkedést eredményez.
- A belsőnek szánt szolgáltatások olyan privát vagy bizalmas információkat adhatnak vissza, amelyeket nem a fürten kívüli szolgáltatásoknak kívánnak közzétenni, így ezeket a bizalmas információkat rosszindulatú felhasználónak adhatja ki.
Mielőtt nyilvánossá teszi a fordított proxyportot, győződjön meg arról, hogy teljes mértékben tisztában van a fürt és a rajta futó alkalmazások lehetséges biztonsági következményeival.
Ha nyilvánosan szeretné közzétenni a fordított proxyt egy önálló fürthöz, az ennek módjától függ, hogy a fürt üzemeltető rendszere milyen módon működik, és nem terjed ki a jelen cikk hatókörére. A fordított proxy nyilvános közzétételére vonatkozó előző figyelmeztetés azonban továbbra is érvényes.
A fordított proxy felfedése az Azure Portal használatával
Az Azure Portalon kattintson a fürt erőforráscsoportjára, majd a fürt terheléselosztójára.
Ha állapotmintát szeretne hozzáadni a fordított proxyporthoz, a terheléselosztó ablakának bal oldali ablaktábláján kattintson a BEÁLLÍTÁSOK területen az Állapotminták elemre. Ezután kattintson a Hozzáadás gombra az Állapottesztek ablak tetején, és adja meg a fordított proxyport részleteit, majd kattintson az OK gombra. Alapértelmezés szerint a fordított proxyport 19081, hacsak nem módosította a fürt létrehozásakor.
Ha terheléselosztó-szabályt szeretne hozzáadni a fordított proxyport közzétételéhez, a terheléselosztó ablakának bal oldali ablaktábláján kattintson a BEÁLLÍTÁSOK területen a Terheléselosztási szabályok elemre. Ezután kattintson a Terheléselosztási szabályok ablak tetején található Hozzáadás gombra, és adja meg a fordított proxyport részleteit. Győződjön meg arról, hogy a port értékét arra a portra állítja be, amelyen a fordított proxyt el szeretné helyezni, a háttérport értékét a fordított proxy engedélyezésekor beállított portra, az Állapot mintavétel értékét pedig az előző lépésben konfigurált állapotmintára. Adjon meg más mezőket, és kattintson az OK gombra.
A fordított proxy felfedése Resource Manager-sablonokon keresztül
Az alábbi JSON ugyanarra a sablonra hivatkozik, amelyet a fordított proxy engedélyezése az Azure Resource Manager-sablonokon keresztül használ. A dokumentum ezen szakaszában tájékozódhat arról, hogyan hozhat létre Resource Manager-sablont, illetve hogyan exportálhat sablont egy meglévő fürthöz. A módosítások a Microsoft.Network/loadBalancers erőforrástípus szakaszán történnek.
{
"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"
}
}
]
}
Fordított proxy viselkedésének testreszabása hálóbeállítások használatával
A fordított proxy viselkedését testre szabhatja az Azure-ban üzemeltetett fürtök Resource Manager-sablonjában vagy az önálló fürtök ClusterConfig.json fájljában található hálóbeállítások segítségével. A fordított proxy viselkedését vezérlő beállítások a fürttulajdonságok szakasz FabricSettings szakaszának ApplicationGateway/Http szakaszában találhatók.
Beállíthatja például a DefaultHttpRequestTimeout értékét úgy, hogy a kérések fordított proxyra való időtúllépését 180 másodpercre állítsa, mint az alábbi JSON-ban:
{
"fabricSettings": [
...
{
"name": "ApplicationGateway/Http",
"parameters": [
{
"name": "DefaultHttpRequestTimeout",
"value": "180"
}
]
}
],
...
}
Feljegyzés
A fordított proxy fejlécekhez 16 KB-os korláttal rendelkezik, és nem támogatja a küszöbérték nagyobb méretre történő módosítását.
További információ az Azure-fürtök hálóbeállításainak frissítéséről: Fürtbeállítások testreszabása Resource Manager-sablonok használatával. Önálló fürtök esetén lásd az önálló fürtök fürtbeállításainak testreszabása című témakört.
Számos hálóbeállítást használunk a fordított proxy és a szolgáltatások közötti biztonságos kommunikáció kialakításához. Ezekről a beállításokról további információt a Fordított proxyval rendelkező biztonságos szolgáltatáshoz való csatlakozás című témakörben talál.
Következő lépések
- Továbbítás beállítása a HTTP-szolgáltatás fordított proxyval történő biztonságossá tételéhez
- A fordított proxykonfigurációs beállításokért tekintse meg az ApplicationGateway/Http szakaszt a Service Fabric-fürt beállításainak testreszabása című témakörben.
Visszajelzés
https://aka.ms/ContentUserFeedback.
Hamarosan elérhető: 2024-ben fokozatosan kivezetjük a GitHub-problémákat a tartalom visszajelzési mechanizmusaként, és lecseréljük egy új visszajelzési rendszerre. További információ:Visszajelzés küldése és megtekintése a következőhöz: