Privát kapcsolat és DNS-integráció nagy méretekben

Ez a cikk azt ismerteti, hogyan integrálható az Azure Private Link szolgáltatásként (PaaS) olyan megoldásokhoz, amelyek Azure Private DNS-zónákkal rendelkeznek a küllős hálózati architektúrákban.

Bevezetés

Sok ügyfél a küllős hálózati architektúra használatával építi ki hálózati infrastruktúráját az Azure-ban, ahol:

  • A megosztott hálózati szolgáltatások, például a hálózati virtuális berendezések (NVA-k), az ExpressRoute/VPN-átjárók vagy a DNS-kiszolgálók üzembe helyezése a központi virtuális hálózaton.
  • A küllős virtuális hálózatok virtuális társviszony-létesítéssel használják fel a megosztott szolgáltatásokat.

A küllős hálózati architektúrákban az alkalmazástulajdonosok általában Azure-előfizetéssel rendelkeznek, amely magában foglal egy küllős virtuális hálózatot, amely a központi virtuális hálózathoz csatlakozik. Ebben az architektúrában üzembe helyezhetik a virtuális gépeiket, és privát kapcsolatot létesíthetnek más virtuális hálózatokkal vagy helyszíni hálózatokkal expressRoute-on vagy VPN-en keresztül.

Egy központi NVA, például az Azure Firewall, internetkapcsolatot biztosít. Emellett az eszközt egy másik szolgáltatással, például egy Azure Firewall DNS-proxyval kombinálva, amely a központban vagy annak közelében található, általában a DNS-továbbítás testreszabására használják.

Számos alkalmazáscsapat azure IaaS- és PaaS-erőforrások kombinációjával készíti el a megoldásait. Egyes Azure PaaS-szolgáltatások, például a felügyelt Azure SQL-példányok üzembe helyezhetők az ügyfél virtuális hálózataiban. Ennek eredményeképpen a forgalom privát marad az Azure-hálózaton belül, és teljes mértékben irányítható a helyszíni hálózatról.

Egyes Azure PaaS-szolgáltatások, például az Azure Storage vagy az Azure Cosmos DB azonban nem helyezhetők üzembe az ügyfél virtuális hálózataiban, és nyilvános végpontjukon keresztül érhetők el. Bizonyos esetekben ez a konfiguráció egy ügyfél biztonsági szabályzataival való versengést okoz. Előfordulhat, hogy a vállalati forgalom nem teszi lehetővé a vállalati erőforrások, például egy SQL-adatbázis nyilvános végpontokon keresztüli üzembe helyezését vagy elérését.

A Private Link támogatja az Azure-szolgáltatások listájának elérését privát végpontokon keresztül, de ehhez regisztrálnia kell ezeket a privát végpontrekordokat egy megfelelő privát DNS-zónában.

Ez a cikk azt ismerteti, hogy az alkalmazáscsapatok hogyan helyezhetnek üzembe Azure PaaS-szolgáltatásokat az előfizetéseikben, amelyek csak privát végpontokon keresztül érhetők el.

Ez a cikk azt is ismerteti, hogyan biztosíthatják az alkalmazáscsapatok, hogy a szolgáltatások automatikusan integrálhatók legyenek a privát DNS-zónákkal. Az automatizálást az Azure Private DNS-ben hajtják végre, ami szükségtelenné teszi a rekordok manuális létrehozását vagy törlését a DNS-ben.

A privát DNS zónákat jellemzően központilag hosztolják ugyanabban az Azure előfizetésben, ahol a központi virtuális hálózat telepítve van. Ezt a központi üzemeltetési gyakorlatot a helyek közötti DNS-névfeloldás és a központi DNS-feloldáshoz, például a Windows Server Active Directoryhoz szükséges egyéb igények vezérlik. A legtöbb esetben csak a hálózati és identitáskezelő rendszergazdák rendelkeznek jogosultságokkal a DNS rekordok kezelésére a zónákban.

Az alkalmazáscsapatok saját előfizetésükben hozhatnak létre Azure-erőforrásokat. Nincsenek engedélyeik a központi hálózati kapcsolati előfizetésben, amely magában foglalja a DNS-rekordok privát DNS-zónákban való kezelését. Ez a hozzáférési korlátozás azt jelenti, hogy nem tudják létrehozni a privát végpontokkal rendelkező Azure PaaS-szolgáltatások üzembe helyezésekor szükséges DNS-rekordokat .

Az alábbi ábra egy tipikus magas szintű architektúrát mutat be a vállalati környezetekhez, központi DNS-felbontással és a Private Link-erőforrások névfeloldásával az Azure Private DNS-en keresztül:

Egy magas szintű architektúra diagramja, amely központi DNS-felbontást és a Private Link-erőforrások névfeloldását mutatja be.

Az előző ábrán fontos kiemelni a következőt:

  • A helyszíni DNS-kiszolgálók feltételes továbbítókat konfiguráltak minden privát végpont nyilvános DNS-zónához, és a központi virtuális hálózaton üzemeltetett DNS privát feloldóra mutatnak.

  • A központi virtuális hálózaton üzemeltetett DNS privát feloldó az Azure által biztosított DNS-t (168.63.129.16) használja továbbítóként.

  • A központi virtuális hálózatot össze kell kapcsolni az Azure-szolgáltatások privát DNS-zónáinak nevével, például privatelink.blob.core.windows.neta diagramon látható módon.

  • Minden Azure-beli virtuális hálózat a központi virtuális hálózaton üzemeltetett DNS-magánfeloldót használja.

  • A PRIVÁT DNS-feloldó nem mérvadó az ügyfelek vállalati tartományai, például az Active Directory-tartománynevek esetében, mivel ez csak egy továbbító. A PRIVÁT DNS-feloldónak kimenő végponttovábbítókkal kell rendelkeznie az ügyfelek vállalati tartományaihoz, és a helyszíni DNS-kiszolgálókra (172.16.1.10 és 172.16.1.11) vagy az Azure-ban telepített DNS-kiszolgálókra kell mutatnia, amelyek mérvadóak az ilyen zónákhoz.

Megjegyzés:

A privát DNS-feloldót az ExpressRoute-átjáró mellett a központi virtuális hálózaton is üzembe helyezheti. Azonban gondoskodnia kell arról, hogy a nyilvános FQDN-ek feloldása engedélyezett legyen, és hogy érvényes választ adjon egy DNS-továbbítási szabálykészleten keresztül a célzott DNS-kiszolgálónak. Egyes Azure-szolgáltatások a nyilvános DNS-nevek funkciójának feloldására támaszkodnak. További információ: DNS-továbbítási szabályok.

Bár az előző diagram egyetlen küllős architektúrát ábrázol, előfordulhat, hogy az ügyfeleknek több régióra is ki kell terjeszteniük Az Azure-beli lábnyomukat a rugalmassági, közelségi vagy adattárolási követelmények kielégítése érdekében. Több esetben ugyanazt a privát kapcsolatra képes PaaS-példányt több privát végponton keresztül kell elérni.

Az alábbi ábra egy tipikus magas szintű architektúrát mutat be olyan vállalati környezetek esetében, amelyek központi DNS-felbontást helyeznek üzembe a központban (minden régióban egyet), ahol a Private Link-erőforrások névfeloldása az Azure Private DNS-en keresztül történik.

Egy magas szintű architektúra diagramja, amely központi DNS-felbontással és névfeloldással rendelkezik a több régióban található Private Link-erőforrásokhoz.

A PaaS-példányhoz társított több regionális privát végpontot kell üzembe helyeznie, amelyek mindegyike minden régióban, ahol az ügyfelek léteznek. Engedélyezze a private linket és a privát DNS-zónákat minden régióhoz. Ha beépített vészhelyreállítási képességekkel (például georedundáns tárfiókokkal és SQL Database feladatátvételi csoportokkal) rendelkező PaaS-szolgáltatásokkal dolgozik, több régióban privát végpontokkal kell rendelkeznie.

Ez a forgatókönyv minden régióban manuális karbantartást és a Private Link DNS-rekord frissítését igényli, mert jelenleg nincs automatizált életciklus-kezelés ezekhez.

Más használati esetekben egyetlen globális privát végpont helyezhető üzembe, így az összes ügyfél számára elérhetővé válik azáltal, hogy útválasztást ad hozzá az érintett régióktól az egyetlen privát végponthoz egyetlen régióban.

A megoldás és ezáltal a kapcsolat engedélyezéséhez a helyszíni hálózatoktól a privát DNS-zónáig és a privatelink privát végpontokhoz a DNS-infrastruktúra megfelelő DNS-konfigurációját( például feltételes továbbítókat) kell kiépíteni.

Két feltételnek kell teljesülnie ahhoz, hogy az alkalmazáscsapatok létrehozzák az előfizetésükhöz szükséges Azure PaaS-erőforrásokat:

  • A központi hálózatkezelésnek vagy a központi platformcsapatoknak biztosítaniuk kell, hogy az alkalmazáscsapatok csak privát végpontokon keresztül tudják üzembe helyezni és elérni az Azure PaaS-szolgáltatásokat.

  • A központi hálózatkezelésnek vagy a központi platformcsapatoknak gondoskodniuk kell arról, hogy a privát végpontok létrehozásakor beállíthassák a megfelelő rekordok kezelését. Állítsa be a megfelelő rekordokat úgy, hogy azok automatikusan létre legyenek hozva a létrehozott szolgáltatásnak megfelelő központosított privát DNS-zónában.

  • A DNS-rekordoknak a privát végpont életciklusát kell követnie, hogy a rendszer automatikusan eltávolítsa a rekordokat a privát végpont törlésekor.

Megjegyzés:

A DNS-feloldás alapján, ha az Azure Firewall és az Azure Firewall szabályzat hálózati szabályaiban teljes tartománynevekre van szüksége, engedélyezze az Azure Firewall DNS-proxyjának, hogy teljes tartományneveket használjon a hálózati szabályokban. Ezután a küllős virtuális hálózatoknak módosítaniuk kell a DNS-beállításukat az egyéni DNS-kiszolgálóról az Azure Firewall DNS-proxyra. A hálózati szabályok teljes tartománynevei lehetővé teszik a kimenő forgalom szűrését bármely TCP- vagy UDP-protokollal, beleértve az NTP-t, az SSH-t és az RDP-t. Küllős virtuális hálózat DNS-beállításainak módosításakor újra kell indítania a virtuális hálózaton belüli összes virtuális gépet.

A következő szakaszok azt ismertetik, hogy az alkalmazáscsapatok hogyan engedélyezik ezeket a feltételeket az Azure Policy használatával. A példa az Azure Storage-t használja az alkalmazáscsapatok által üzembe helyezendő Azure-szolgáltatásként. Ugyanez az elv vonatkozik a private linket támogató Azure-szolgáltatások többségére is.

Platformcsapat konfigurációs követelményei

A platformcsapat konfigurációs követelményei közé tartozik a privát DNS-zónák létrehozása, a szabályzatdefiníciók beállítása, a szabályzatok üzembe helyezése és a szabályzat-hozzárendelések beállítása.

Privát DNS-zónák létrehozása

Hozzon létre privát DNS-zónákat a támogatott Private Link-szolgáltatások központi kapcsolati előfizetésében. További információ: Azure privát végpont DNS-konfigurációja.

Ebben az esetben a blobos Storage-fiók a példa. Ez egy privát DNS-zóna létrehozását privatelink.blob.core.windows.net jelenti a kapcsolati előfizetésben.

Képernyőkép a privát DNS-zónáról a kapcsolati előfizetésben.

Szabályzatdefiníciók létrehozása

A privát DNS-zónák mellett egyéni Azure Policy-definíciókat is létre kell hoznia. Ezek a definíciók kényszerítik a privát végpontok használatát, és automatizálják a DNS-rekord létrehozását a létrehozott DNS-zónában:

  1. A Deny PaaS-szolgáltatásházirend nyilvános végpontja.

    Ez a szabályzat megakadályozza, hogy a felhasználók nyilvános végpontokkal hozzanak létre Azure PaaS-szolgáltatásokat.

    Képernyőkép az összes kiválasztott hálózat nyilvános végpontjának beállításról.

    A felhasználók hibaüzenetet kapnak, ha nem választják ki a privát végpontot az erőforrás létrehozásakor.

    Képernyőkép a nyilvános végpont kiválasztásából eredő hibaüzenetről.

    Képernyőkép a nyilvános végpont kiválasztásával kapcsolatos teljes hibaadatokról.

    A pontos szabályzatszabály eltérhet a PaaS-szolgáltatásoktól. Az Azure Storage-fiókok esetében a networkAcls.defaultAction tulajdonság határozza meg, hogy a nyilvános hálózatoktól érkező kérések engedélyezettek-e vagy sem. Ebben az esetben állítson be egy feltételt, amely megtagadja a Microsoft.Storage/storageAccounts erőforrástípus létrehozását, ha a networkAcls.defaultAction tulajdonság nem Deny. A következő szabályzatdefiníció a viselkedést mutatja:

    {
      "mode": "All",
      "policyRule": {
        "if": {
          "allOf": [
            {
              "field": "type",
              "equals": "Microsoft.Storage/storageAccounts"
            },
            {
              "field": "Microsoft.Storage/storageAccounts/networkAcls.defaultAction",
              "notEquals": "Deny"
            }
          ]
        },
        "then": {
          "effect": "Deny"
        }
      }
    }
    
  2. Deny privát DNS-zóna létrehozása az privatelink előtagszabályzattal.

    Központosított DNS-architektúrát használhat feltételes továbbítóval és privát DNS-zónákkal a platformcsapat által felügyelt előfizetésekben. Meg kell akadályozni, hogy az alkalmazáscsapat tulajdonosai létrehozhassák saját Privát kapcsolat privát DNS-zónáikat, és összekapcsolhassák a szolgáltatásokat az előfizetéseikhez.

    Győződjön meg arról, hogy amikor az alkalmazás csapata létrehoz egy privát végpontot, a Integrate with private DNS zone opció No értékre van állítva az Azure portálon.

    Képernyőkép az Integrálás privát DNS-zónával beállításról, amely nem értékre van állítva az Azure Portalon.

    Ha ezt választja Yes, az Azure Policy megakadályozza a privát végpont létrehozását. A szabályzatdefinícióban tagadja a Microsoft.Network/privateDnsZones erőforrástípus létrehozását, ha a privatelink zóna előtaggal rendelkezik. Az alábbi szabálydefiníció az előtagot privatelink mutatja:

    {
      "description": "This policy restricts creation of private DNS zones with the `privatelink` prefix",
      "displayName": "Deny-PrivateDNSZone-PrivateLink",
      "mode": "All",
      "parameters": null,
      "policyRule": {
        "if": {
          "allOf": [
            {
              "field": "type",
              "equals": "Microsoft.Network/privateDnsZones"
            },
            {
              "field": "name",
              "contains": "privatelink."
            }
          ]
        },
        "then": {
          "effect": "Deny"
        }
      }
    }
    
  3. DeployIfNotExists szabályzatot, amely automatikusan létrehozza a szükséges DNS-rekordot a központi privát DNS-zónában.

    Az alábbi házirend-példák két módszert mutatnak be annak az azonosítására, hogy melyik privateDNSZoneGroup jön létre egy privát végponton.

    Az első szabályzat a groupId támaszkodik, míg a második szabályzat mind a privateLinkServiceId-t, mind a groupID-t használja. A második szabályzatot akkor használja, ha groupId egy másik erőforrással ütközik vagy összeütközésbe kerül.

    A Private Link-erőforrások listájáért groupId tekintse meg a Mi az a privát végpont? alforrás oszlopot.

Jótanács

Az Azure Policy beépített definícióit folyamatosan bővítjük, töröljük és frissítjük. A saját szabályzatok kezelése helyett a beépített szabályzatokat kell használnia, ahol elérhető. Az AzPolicyAdvertizer használatával keresse meg a meglévő beépített szabályzatokat, amelyek neve "xxx ... privát DNS-zónák használata". Emellett az Azure Landing Zones (ALZ) rendelkezik egy szabályzat kezdeményezéssel, az Azure PaaS-szolgáltatások konfigurálása privát DNS-zónák használatára, amely rendszeres időközönként frissített beépített szabályzatokat tartalmaz. Ha egy beépített szabályzat nem érhető el az Ön helyzetéhez, érdemes lehet ötleteket létrehozni az azure-policyAzure Governance Community visszajelzési webhelyen az Azure Policy GitHub-adattár beépített szabályzatjavaslati folyamatának követésével.

DeployIfNotExists szabályzat csak groupId-hez

Ez a szabályzat akkor aktiválódik, ha szolgáltatásspecifikus groupIdprivát végponterőforrást hoz létre. Annak groupId a távoli erőforrásnak (szolgáltatásnak) a csoportazonosítója, amelyhez ennek a privát végpontnak csatlakoznia kell. Ezután elindítja a privát végponton belüli üzembe helyezést privateDNSZoneGroup , amely a privát végpontot a privát DNS-zónához társítja. A példában az groupId az Azure Storage blobokhoz blob. A többi Azure-szolgáltatással kapcsolatos groupId további információkért tekintse meg az Azure privát végpont DNS-konfigurációjánakAlforrás oszlopát. Amikor a szabályzat megkeresi a groupId privát végpontot, üzembe helyez egy privateDNSZoneGroup privát végponton belül, és a paraméterként megadott privát DNS-zóna erőforrás-azonosítójával kapcsolja össze. A példában a privát DNS-zóna erőforrás-azonosítója a következő:

/subscriptions/<subscription-id>/resourceGroups/<resourceGroupName>/providers/Microsoft.Network/privateDnsZones/privatelink.blob.core.windows.net

Az alábbi kódminta a szabályzatdefiníciót mutatja be:

{
  "mode": "Indexed",
  "policyRule": {
    "if": {
      "allOf": [
        {
          "field": "type",
          "equals": "Microsoft.Network/privateEndpoints"
        },
        {
          "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",
        "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",
        "strongType": "Microsoft.Network/privateDnsZones"
      }
    }
  }
}

DeployIfNotExists szabályzat a groupId és a privateLinkServiceId számára

Ez a szabályzat akkor aktiválódik, ha szolgáltatásspecifikus groupId és privateLinkServiceId privát végpont-erőforrást hoz létre. Annak groupId a távoli erőforrásnak (szolgáltatásnak) a csoportazonosítója, amelyhez ennek a privát végpontnak csatlakoznia kell. Ez privateLinkServiceId annak a távoli erőforrásnak (szolgáltatásnak) az erőforrás-azonosítója, amelyhez a privát végpontnak csatlakoznia kell. Ezután aktiváljon egy központi telepítést privateDNSZoneGroup a privát végponton belül, amely a privát végpontot a privát DNS-zónához társítja.

A példában az groupId az Azure Cosmos DB (SQL) esetében SQL és a privateLinkServiceId-nek tartalmaznia kell Microsoft.DocumentDb/databaseAccounts. További információkért az groupId és a privateLinkServiceId más Azure-szolgáltatásokról, tekintse meg az Azure privát végpont DNS-konfigurációjánakAlforrás oszlopát. Amikor a szabályzat megtalálja a groupId és a privateLinkServiceId a privát végponton belül, telepít egy privateDNSZoneGroup a privát végponton belül. És a paraméterként megadott privát DNS-zóna erőforrás-azonosítójával van társítva. A következő szabályzatdefiníció a privát DNS-zóna erőforrás-azonosítóját mutatja:

/subscriptions/<subscription-id>/resourceGroups/<resourceGroupName>/providers/Microsoft.Network/privateDnsZones/privatelink.documents.azure.com

Az alábbi kódminta a szabályzatdefiníciót mutatja be:

{
  "mode": "Indexed",
  "policyRule": {
    "if": {
     "allOf": [
       {
         "field": "type",
         "equals": "Microsoft.Network/privateEndpoints"
       },
       {
         "count": {
           "field": "Microsoft.Network/privateEndpoints/privateLinkServiceConnections[*]",
           "where": {
             "allOf": [
               {
                 "field": "Microsoft.Network/privateEndpoints/privateLinkServiceConnections[*].privateLinkServiceId",
                 "contains": "Microsoft.DocumentDb/databaseAccounts"
               },
               {
                 "field": "Microsoft.Network/privateEndpoints/privateLinkServiceConnections[*].groupIds[*]",
                 "equals": "[parameters('privateEndpointGroupId')]"
               }
             ]
           }
         },
         "greaterOrEquals": 1
       }
     ]
   },
    "then": {
      "effect": "[parameters('effect')]",
      "details": {
        "type": "Microsoft.Network/privateEndpoints/privateDnsZoneGroups",
        "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": "cosmosDB-privateDnsZone",
                        "properties": {
                          "privateDnsZoneId": "[parameters('privateDnsZoneId')]"
                        }
                      }
                    ]
                  }
                }
              ]
            },
            "parameters": {
              "privateDnsZoneId": {
                "value": "[parameters('privateDnsZoneId')]"
              },
              "privateEndpointName": {
                "value": "[field('name')]"
              },
              "location": {
                "value": "[field('location')]"
              }
            }
          }
        }
      }
    }
  },
  "parameters": {
     "privateDnsZoneId": {
       "type": "String",
       "metadata": {
         "displayName": "Private Dns Zone Id",
         "description": "The private DNS zone to deploy in a new private DNS zone group and link to the private endpoint",
         "strongType": "Microsoft.Network/privateDnsZones"
       }
     },
     "privateEndpointGroupId": {
       "type": "String",
       "metadata": {
         "displayName": "Private Endpoint Group Id",
         "description": "A group Id for the private endpoint"
       }
     },
     "effect": {
       "type": "String",
       "metadata": {
         "displayName": "Effect",
         "description": "Enable or disable the execution of the policy"
       },
       "allowedValues": [
         "DeployIfNotExists",
         "Disabled"
       ],
       "defaultValue": "DeployIfNotExists"
     }
  }
}

Szabályzat-hozzárendelések

A szabályzatdefiníciók üzembe helyezése után rendelje hozzá a szabályzatokat a kívánt hatókörhöz a felügyeleti csoport hierarchiájában. Győződjön meg arról, hogy a szabályzat-hozzárendelések azokat az Azure-előfizetéseket célják, amelyeket az alkalmazáscsapatok kizárólag privát végpont-hozzáféréssel rendelkező PaaS-szolgáltatások üzembe helyezéséhez használnak.

Fontos

A szabályzatban meghatározott roleDefinition hozzárendelése mellett rendelje hozzá a privát DNS-zóna közreműködői szerepköréta DeployIfNotExists szabályzat-hozzárendelés által létrehozott felügyelt identitáshoz. Ezt a szerepkört abban az előfizetésben és erőforráscsoportban kell hozzárendelni, ahol a privát DNS-zónák üzemelnek. A felügyelt identitás létrehozza és kezeli a privát végpont DNS-rekordját a privát DNS-zónában. Erre a konfigurációra azért van szükség, mert a privát végpont az alkalmazástulajdonos Azure-előfizetésben található, míg a privát DNS-zóna egy másik előfizetésben, például egy központi kapcsolati előfizetésben található.

Miután a platformcsapat befejezte a konfigurációt:

  • Az alkalmazáscsapatok Azure-előfizetései készen állnak arra, hogy a csapat kizárólagos privát végpont-hozzáféréssel rendelkező Azure PaaS-szolgáltatásokat hozzon létre.

  • A csapatnak biztosítania kell, hogy a privát végpontok DNS-rekordjai automatikusan regisztrálva legyenek a megfelelő privát DNS-zónákban, és hogy a DNS-rekordok törlődjenek a privát végpont törlése után.

Az alkalmazás tulajdonosa üzembe helyez egy Azure PaaS-szolgáltatást

Miután a platformcsapat üzembe helyezi a platforminfrastruktúra-összetevőket (privát DNS-zónákat és szabályzatokat), az alkalmazás tulajdonosa az alábbi lépéseket hajtja végre, amikor megpróbál üzembe helyezni egy Azure PaaS-szolgáltatást az Azure-előfizetésben. Ezek a lépések ugyanazok, akár az Azure portálon, akár más klienseken, például a PowerShellen vagy a CLI-n keresztül hajtják végre a tevékenységüket, mivel az Azure-szabályzatok szabályozzák az előfizetéseiket.

  1. Hozzon létre egy tárfiókot az Azure Portalon keresztül. Az Alapszintű beállítások lapon válassza ki a kívánt beállításokat, adja meg a tárfiók nevét, és válassza a Tovább gombot.

    Képernyőkép az Alapszintű beállítások lapról és a tárfiók Azure Portalon való létrehozásának lehetőségeiről.

  2. A hálózatkezelés lapon válassza a Privát végpont lehetőséget. Ha nem privát végpontot választ, az Azure Portal nem engedélyezi a tárfiók létrehozását az üzembe helyezési varázsló Áttekintés + létrehozás szakaszában. A szabályzat megakadályozza a szolgáltatás létrehozását, ha a nyilvános végpont engedélyezve van.

    Képernyőkép a Hálózatkezelés lapról és a privát végpontok beállításról.

  3. A privát végpontot most vagy a tárfiók létrehozása után is létrehozhatja. Ez a példa a tárfiók létrehozása után hozza létre a privát végpontot. A lépés végrehajtásához válassza a Véleményezés + létrehozás lehetőséget .

  4. A tárfiók létrehozása után hozzon létre egy privát végpontot az Azure Portalon keresztül.

    Képernyőkép a privát végpontok beállításairól.

  5. Az Erőforrás szakaszban keresse meg az előző lépésben létrehozott tárfiókot. A cél-alforrás alatt válassza a Blob, majd a Tovább lehetőséget.

    Képernyőkép az Erőforrások lapról a cél-alforrás kiválasztásához.

  6. A Konfiguráció szakaszban, miután kiválasztotta a virtuális hálózatot és az alhálózatot, győződjön meg arról, hogy a privát DNS-zónával való integrációnem értékre van állítva. Ellenkező esetben az Azure Portal megakadályozza a privát végpont létrehozását. Az Azure Policy nem teszi lehetővé privát DNS-zóna létrehozását az privatelink előtaggal.

    Képernyőkép a Konfiguráció lapról, amellyel a privát DNS-zónával való integrációt nem értékre állíthatja.

  7. Válassza a Véleményezés + létrehozás lehetőséget, majd a Létrehozás lehetőséget a privát végpont üzembe helyezéséhez.

  8. Néhány perc elteltével a DeployIfNotExists szabályzat aktiválódik. Az ezt követő dnsZoneGroup üzembe helyezés ezután hozzáadja a központilag felügyelt DNS-zónában lévő privát végponthoz szükséges DNS-rekordokat.

  9. A privát végpont létrehozása után válassza ki, és tekintse át annak teljes tartománynevét és privát IP-címét:

    Képernyőkép arról, hogy hol tekintheti át a privát végpontot, a teljes tartománynevet és a privát IP-címet.

  10. Ellenőrizze annak az erőforráscsoportnak a tevékenységnaplóját, amelyben a privát végpont létre lett hozva. Vagy ellenőrizheti a privát végpont tevékenységnaplóját is. Néhány perc elteltével DeployIfNotExists egy szabályzatművelet fut, amely konfigurálja a DNS-zónacsoportot a privát végponton:

    Képernyőkép az erőforráscsoport és a privát végpont tevékenységnaplóiról.

  11. Ha a központi hálózati csapat a privatelink.blob.core.windows.net privát DNS-zónába kerül, megerősítik, hogy a DNS-rekord a létrehozott privát végponthoz tartozik, és mind a név, mind az IP-cím megegyezik a privát végponton belüli értékekkel.

    Képernyőkép a privát DNS-zónáról és annak ellenőrzéséről, hogy a DNS-rekord létezik-e.

Ezen a ponton az alkalmazáscsapatok egy privát végponton keresztül használhatják a tárfiókot a küllős hálózati környezet bármely virtuális hálózatából és a helyszíniről. A RENDSZER automatikusan rögzíti a DNS-rekordot a privát DNS-zónában.

Ha egy alkalmazás tulajdonosa törli a privát végpontot, a rendszer automatikusan eltávolítja a privát DNS-zónában lévő megfelelő rekordokat.

Fontos

Továbbra is létrehozhat privát végpontokat az infrastruktúrában kódeszközként. Ha azonban a DeployIfNotExists jelen cikkben szereplő szabályzati megközelítést használja, akkor nem szabad a DNS-t integrálnia a kódba. A DeployIfNotExists DNS-integrációt azok a szabályzatok kezelik, amelyek rendelkeznek a privát DNS-zónákhoz szükséges RBAC-vel.

Következő lépések