Megosztás a következőn keresztül:


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:

  1. 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.

    Fordított proxy engedélyezése a portálon

  2. (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.

    Biztonságos fordított proxy konfigurálása a portálon

    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:

  1. 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"
        }
    },
    
  2. 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')]",
           ...
          },
        ...
        ],
        ...
    }
    
  3. 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.

  1. 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",
                    ...
                }
            ],
           ...
        }
    
  2. (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

  1. Az Azure Portalon kattintson a fürt erőforráscsoportjára, majd a fürt terheléselosztójára.

  2. 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.

    Fordított proxy állapotmintájának konfigurálása

  3. 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.

    Terheléselosztó-szabály konfigurálása fordított proxyhoz

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