Zabezpečení prostředí pro odvozování služby Azure Machine Learning pomocí virtuálních sítí (v1)

PLATÍ PRO:Sada Python SDK azureml v1

PLATÍ PRO:Rozšíření Azure CLI ml v1

V tomto článku se dozvíte, jak zabezpečit prostředí pro odvozování pomocí virtuální sítě ve službě Azure Machine Learning. Tento článek je specifický pro pracovní postup nasazení sady SDK/CLI verze 1 pro nasazení modelu jako webové služby.

Tip

Tento článek je součástí série o zabezpečení pracovního postupu služby Azure Machine Learning. Podívejte se na další články v této sérii:

Kurz vytvoření zabezpečeného pracovního prostoru najdete v tématu Kurz: Vytvoření zabezpečeného pracovního prostoru nebo Kurz: Vytvoření zabezpečeného pracovního prostoru pomocí šablony.

V tomto článku se dozvíte, jak zabezpečit následující odvozování prostředků ve virtuální síti:

  • Výchozí cluster Azure Kubernetes Service (AKS)
  • Privátní cluster AKS
  • Cluster AKS s privátním propojením

Požadavky

  • Přečtěte si článek s přehledem zabezpečení sítě , abyste porozuměli běžným scénářům virtuálních sítí a celkové architektuře virtuální sítě.

  • Existující virtuální síť a podsíť pro použití s výpočetními prostředky.

  • Pokud chcete nasadit prostředky do virtuální sítě nebo podsítě, váš uživatelský účet musí mít oprávnění k následujícím akcím v řízení přístupu na základě role v Azure (Azure RBAC):

    • Microsoft.Network/virtualNetworks/join/action u prostředku virtuální sítě.
    • Microsoft.Network/virtualNetworks/subnet/join/action u prostředku podsítě.

    Další informace o Azure RBAC se sítěmi najdete v tématu Předdefinované role pro sítě.

Důležité

Některé příkazy Azure CLI v tomto článku používají azure-cli-mlrozšíření , nebo v1 pro Azure Machine Learning. Podpora rozšíření v1 skončí 30. září 2025. Do tohoto data budete moct nainstalovat a používat rozšíření v1.

Doporučujeme přejít na mlrozšíření , nebo v2 do 30. září 2025. Další informace o rozšíření v2 najdete v tématech Rozšíření Azure ML CLI a Python SDK v2.

Omezení

Azure Container Instances

Pokud je pracovní prostor služby Azure Machine Learning nakonfigurovaný s privátním koncovým bodem, nasazení do Azure Container Instances ve virtuální síti se nepodporuje. Místo toho zvažte použití spravovaného online koncového bodu s izolací sítě.

Azure Kubernetes Service

  • Pokud je váš cluster AKS za virtuální sítí, váš pracovní prostor a jeho přidružené prostředky (úložiště, trezor klíčů Azure Container Registry) musí mít privátní koncové body nebo koncové body služby ve stejné virtuální síti jako virtuální síť clusteru AKS. Přečtěte si kurz vytvoření zabezpečeného pracovního prostoru a přidejte tyto privátní koncové body nebo koncové body služby do virtuální sítě.
  • Pokud má váš pracovní prostor privátní koncový bod, cluster Azure Kubernetes Service musí být ve stejné oblasti Azure jako pracovní prostor.
  • Azure Machine Learning nepodporuje používání veřejného plně kvalifikovaného názvu domény (FQDN) s privátním clusterem AKS.

Azure Kubernetes Service

Důležité

Pokud chcete použít cluster AKS ve virtuální síti, nejprve postupujte podle požadavků v tématu Konfigurace pokročilých sítí v Azure Kubernetes Service (AKS).

Pokud chcete přidat AKS ve virtuální síti do pracovního prostoru, postupujte následovně:

  1. Přihlaste se k studio Azure Machine Learning a pak vyberte své předplatné a pracovní prostor.

  2. Vlevo vyberte Compute , odvozovat clustery ze středu a pak vyberte + Nový.

    Snímek obrazovky s dialogovým oknem vytvořit cluster pro odvozování

  3. V dialogovém okně Vytvořit cluster pro odvozování vyberte Vytvořit nový a velikost virtuálního počítače, který se má použít pro cluster. Nakonec vyberte Další.

    Snímek obrazovky s nastavením virtuálního počítače

  4. V části Konfigurovat nastavení zadejte název výpočetních prostředků, vyberte Účel clusteru, Počet uzlů a pak výběrem možnosti Upřesnit zobrazte nastavení sítě. V oblasti Konfigurovat virtuální síť nastavte následující hodnoty:

    • Nastavte virtuální síť , která se má použít.

      Tip

      Pokud váš pracovní prostor pro připojení k virtuální síti používá privátní koncový bod, pole pro výběr virtuální sítě se zobrazí šedě.

    • Nastavte podsíť , ve které se má cluster vytvořit.

    • Do pole Rozsah adres služby Kubernetes Service zadejte rozsah adres služby Kubernetes. Tento rozsah adres definuje IP adresy dostupné pro cluster pomocí notace CIDR (Classless Inter-Domain Routing). Nesmí se překrývat s žádnými rozsahy IP adres podsítě (například 10.0.0.0/16).

    • Do pole IP adresa služby Dns Kubernetes zadejte IP adresu služby Dns Kubernetes. Tato IP adresa je přiřazená službě DNS Kubernetes. Musí být v rozsahu adres služby Kubernetes (například 10.0.0.10).

    • Do pole Adresa mostu Docker zadejte adresu mostu Docker. Tato IP adresa je přiřazená mostu Docker Bridge. Nesmí být v žádném rozsahu IP adres podsítě ani v rozsahu adres služby Kubernetes (například 172.18.0.1/16).

    Snímek obrazovky s konfigurací nastavení sítě

  5. Když do AKS nasadíte model jako webovou službu, vytvoří se bodovací koncový bod pro zpracování požadavků na odvozování. Ujistěte se, že skupina zabezpečení sítě (NSG), která řídí virtuální síť, má povolené příchozí pravidlo zabezpečení pro IP adresu bodujícího koncového bodu, pokud ho chcete volat mimo virtuální síť.

    Pokud chcete najít IP adresu bodujícího koncového bodu, podívejte se na hodnoticí identifikátor URI nasazené služby. Informace o zobrazení hodnoticího identifikátoru URI najdete v tématu Využití modelu nasazeného jako webová služba.

    Důležité

    Ponechte výchozí pravidla odchozích přenosů pro skupinu zabezpečení sítě. Další informace najdete ve výchozích pravidlech zabezpečení v tématu Skupiny zabezpečení.

    Snímek obrazovky znázorňující příchozí pravidlo zabezpečení (./media/how-to-secure-inferencing-vnet/aks-vnet-inbound-nsg-scoring.png#lightbox)

    Důležité

    IP adresa zobrazená na obrázku bodujícího koncového bodu se pro vaše nasazení bude lišit. Zatímco všechna nasazení sdílejí stejnou IP adresu do jednoho clusteru AKS, každý cluster AKS bude mít jinou IP adresu.

K přidání Azure Kubernetes Service ve virtuální síti můžete použít také sadu Azure Machine Learning SDK. Pokud už máte cluster AKS ve virtuální síti, připojte ho k pracovnímu prostoru podle popisu v tématu Postup nasazení do AKS. Následující kód vytvoří novou instanci AKS v podsíti default virtuální sítě s názvem mynetwork:

PLATÍ PRO:Sada Python SDK azureml v1

from azureml.core.compute import ComputeTarget, AksCompute

# Create the compute configuration and set virtual network information
config = AksCompute.provisioning_configuration(location="eastus2")
config.vnet_resourcegroup_name = "mygroup"
config.vnet_name = "mynetwork"
config.subnet_name = "default"
config.service_cidr = "10.0.0.0/16"
config.dns_service_ip = "10.0.0.10"
config.docker_bridge_cidr = "172.17.0.1/16"

# Create the compute target
aks_target = ComputeTarget.create(workspace=ws,
                                  name="myaks",
                                  provisioning_configuration=config)

Po dokončení procesu vytváření můžete v clusteru AKS za virtuální sítí spustit odvozování neboli vyhodnocování modelů. Další informace najdete v tématu Postup nasazení do AKS.

Další informace o používání Role-Based Access Control s Kubernetes najdete v tématu Použití Azure RBAC pro autorizaci Kubernetes.

Role Přispěvatel sítě

Důležité

Pokud cluster AKS vytvoříte nebo připojíte poskytnutím virtuální sítě, kterou jste vytvořili dříve, musíte skupině prostředků, která obsahuje virtuální síť, udělit instančnímu objektu (SP) nebo spravované identitě pro váš cluster AKS roli Přispěvatel sítě .

Pokud chcete přidat identitu jako přispěvatel sítě, postupujte následovně:

  1. K vyhledání instančního objektu nebo ID spravované identity pro AKS použijte následující příkazy Azure CLI. Nahraďte <aks-cluster-name> názvem clusteru. Nahraďte <resource-group-name> názvem skupiny prostředků, která obsahuje cluster AKS:

    az aks show -n <aks-cluster-name> --resource-group <resource-group-name> --query servicePrincipalProfile.clientId
    

    Pokud tento příkaz vrátí hodnotu msi, pomocí následujícího příkazu identifikujte ID objektu zabezpečení spravované identity:

    az aks show -n <aks-cluster-name> --resource-group <resource-group-name> --query identity.principalId
    
  2. K vyhledání ID skupiny prostředků, která obsahuje vaši virtuální síť, použijte následující příkaz. Nahraďte <resource-group-name> názvem skupiny prostředků, která obsahuje virtuální síť:

    az group show -n <resource-group-name> --query id
    
  3. K přidání instančního objektu nebo spravované identity jako přispěvatele sítě použijte následující příkaz. Nahraďte <SP-or-managed-identity> ID vráceným pro instanční objekt nebo spravovanou identitu. Nahraďte <resource-group-id> id vráceným pro skupinu prostředků, která obsahuje virtuální síť:

    az role assignment create --assignee <SP-or-managed-identity> --role 'Network Contributor' --scope <resource-group-id>
    

Další informace o používání interního nástroje pro vyrovnávání zatížení s AKS najdete v tématu Použití interního nástroje pro vyrovnávání zatížení s Azure Kubernetes Service.

Zabezpečení provozu virtuální sítě

Existují dva přístupy k izolaci provozu do a z clusteru AKS do virtuální sítě:

  • Privátní cluster AKS: Tento přístup používá Azure Private Link k zabezpečení komunikace s clusterem pro operace nasazení a správy.
  • Interní nástroj pro vyrovnávání zatížení AKS: Tento přístup nakonfiguruje koncový bod pro vaše nasazení do AKS tak, aby používal privátní IP adresu v rámci virtuální sítě.

Privátní cluster AKS

Ve výchozím nastavení mají clustery AKS řídicí rovinu neboli server rozhraní API s veřejnými IP adresami. AKS můžete nakonfigurovat tak, aby používala privátní řídicí rovinu vytvořením privátního clusteru AKS. Další informace najdete v tématu Vytvoření privátního clusteru Azure Kubernetes Service.

Po vytvoření privátního clusteru AKS připojte cluster k virtuální síti pro použití se službou Azure Machine Learning.

Interní nástroj pro vyrovnávání zatížení AKS

Ve výchozím nastavení používají nasazení AKS veřejný nástroj pro vyrovnávání zatížení. V této části se dozvíte, jak nakonfigurovat AKS tak, aby používala interní nástroj pro vyrovnávání zatížení. Interní (nebo privátní) nástroj pro vyrovnávání zatížení se používá tam, kde jsou jako front-end povolené pouze privátní IP adresy. Interní nástroje pro vyrovnávání zatížení se používají k vyrovnávání zatížení provozu ve virtuální síti.

Privátní nástroj pro vyrovnávání zatížení se povolí konfigurací AKS tak, aby používala interní nástroj pro vyrovnávání zatížení.

Povolení privátního nástroje pro vyrovnávání zatížení

Důležité

Při vytváření clusteru Azure Kubernetes Service v studio Azure Machine Learning nelze povolit privátní IP adresu. Můžete ho vytvořit s interním nástrojem pro vyrovnávání zatížení při použití sady Python SDK nebo rozšíření Azure CLI pro strojové učení.

Následující příklady ukazují, jak vytvořit nový cluster AKS s privátní IP adresou nebo interním nástrojem pro vyrovnávání zatížení pomocí sady SDK a rozhraní příkazového řádku:

PLATÍ PRO:Sada Python SDK azureml v1

import azureml.core
from azureml.core.compute import AksCompute, ComputeTarget

# Verify that cluster does not exist already
try:
    aks_target = AksCompute(workspace=ws, name=aks_cluster_name)
    print("Found existing aks cluster")

except:
    print("Creating new aks cluster")

    # Subnet to use for AKS
    subnet_name = "default"
    # Create AKS configuration
    prov_config=AksCompute.provisioning_configuration(load_balancer_type="InternalLoadBalancer")
    # Set info for existing virtual network to create the cluster in
    prov_config.vnet_resourcegroup_name = "myvnetresourcegroup"
    prov_config.vnet_name = "myvnetname"
    prov_config.service_cidr = "10.0.0.0/16"
    prov_config.dns_service_ip = "10.0.0.10"
    prov_config.subnet_name = subnet_name
    prov_config.load_balancer_subnet = subnet_name
    prov_config.docker_bridge_cidr = "172.17.0.1/16"

    # Create compute target
    aks_target = ComputeTarget.create(workspace = ws, name = "myaks", provisioning_configuration = prov_config)
    # Wait for the operation to complete
    aks_target.wait_for_completion(show_output = True)

Při připojování existujícího clusteru k pracovnímu load_balancer_type prostoru nakonfigurujte nástroj pro vyrovnávání zatížení pomocí parametrů aload_balancer_subnet AksCompute.attach_configuration().

Informace o připojení clusteru najdete v tématu Připojení existujícího clusteru AKS.

Omezení odchozího připojení z virtuální sítě

Pokud nechcete používat výchozí pravidla odchozích přenosů a chcete omezit odchozí přístup virtuální sítě, musíte povolit přístup k Azure Container Registry. Ujistěte se například, že vaše skupiny zabezpečení sítě (NSG) obsahují pravidlo, které umožňuje přístup ke značce služby AzureContainerRegistry.RegionName , kde {RegionName} je název oblasti Azure.

Další kroky

Tento článek je součástí série o zabezpečení pracovního postupu služby Azure Machine Learning. Podívejte se na další články v této sérii: