Yönetilen çevrimiçi uç noktalarla ağ yalıtımı

ŞUNLAR IÇIN GEÇERLIDIR: Azure CLI ml uzantısı v2 (geçerli)Python SDK azure-ai-ml v2 (geçerli)

Yönetilen çevrimiçi uç noktaya makine öğrenmesi modeli dağıttığınızda, özel uç noktaları kullanarak çevrimiçi uç noktayla iletişimin güvenliğini sağlayabilirsiniz. Bu makalede, özel uç noktanın yönetilen çevrimiçi uç noktaya gelen iletişimin güvenliğini nasıl sağlayabileceğini öğreneceksiniz. Ayrıca, çalışma alanı tarafından yönetilen bir sanal ağın dağıtımlar ve kaynaklar arasında güvenli iletişim sağlamayı da öğrenirsiniz.

İstemcilerden çevrimiçi uç noktaya gelen puanlama isteklerinin güvenliğini sağlayabilir ve dağıtım, kullandığı Azure kaynakları ve özel kaynaklar arasındaki giden iletişimlerin güvenliğini sağlayabilirsiniz. Gelen ve giden iletişim için güvenliği ayrı ayrı yapılandırabilirsiniz. Uç noktalar ve dağıtımlar hakkında daha fazla bilgi için bkz . Uç noktalar ve dağıtımlar nedir?

Aşağıdaki mimari diyagramında, iletişimlerin özel uç noktalardan yönetilen çevrimiçi uç noktaya nasıl aktığı gösterilmektedir. Bir istemcinin sanal ağ akışından, çalışma alanının özel uç noktası üzerinden yönetilen çevrimiçi uç noktaya gelen puanlama istekleri. Dağıtımlardan hizmetlere giden iletişimler, çalışma alanının yönetilen sanal ağından bu hizmet örneklerine giden özel uç noktalar aracılığıyla işlenir.

Çalışma alanı özel uç noktası üzerinden gelen iletişimi ve çalışma alanı tarafından yönetilen sanal ağın özel uç noktaları aracılığıyla giden iletişimi gösteren diyagram.

Not

  • Bu makale, çalışma alanının yönetilen sanal ağını kullanarak ağ yalıtımına odaklanır. Azure Machine Learning'in bir uç noktadaki her dağıtım için yönetilen bir sanal ağ oluşturduğu eski ağ yalıtımı yönteminin açıklaması için Ek'e bakın.
  • Her dağıtım, bu makalede ele alınan gelen ve giden iletişimden bağımsız olarak diğer dağıtımlardan yalıtılır. Başka bir deyişle, İnternet'ten gelen ve giden erişime izin veren uç noktalar ve dağıtımlarda bile dağıtımlar arasında ağ yalıtımı vardır ve bu da dağıtımların diğer dağıtımlara doğrudan bağlanmasını engeller.

Sınırlamalar

  • Azure Machine Learning çalışma alanınızda v1 eski modunu kapatmak için v1_legacy_mode bayrağı false olarak ayarlanmalıdır. Bu ayar açıksa yönetilen çevrimiçi uç nokta oluşturamazsınız. Daha fazla bilgi için bkz. Azure Resource Manager'da yeni API platformumuzla ağ yalıtımı değişikliği.

  • Azure Machine Learning çalışma alanınızda 24 Mayıs 2022'ye kadar oluşturulmuş bir özel uç nokta varsa, çevrimiçi uç noktalarınızı özel uç noktaları kullanacak şekilde yapılandırmadan önce bu özel uç noktayı yeniden oluşturmanız gerekir. Çalışma alanınız için özel uç nokta oluşturma hakkında daha fazla bilgi için bkz. Azure Machine Learning çalışma alanı için özel uç nokta yapılandırma.

    İpucu

    Çalışma alanının oluşturulma tarihini görmek için çalışma alanı özelliklerini de de kontrol edebilirsiniz.

    1. Azure Machine Learning studio'da sağ üst köşeye gidin ve çalışma alanınızın adını seçin.
    2. Dizin + Abonelik + Çalışma Alanı penceresinde Azure portalında tüm özellikleri görüntüle'yi seçin.
    3. Azure portalına Genel Bakış sayfasında sağ üst köşeye gidin ve JSON Görünümü'nü seçin.
    4. Kaynak JSON penceresinde, API Sürümleri'nin altında en son API sürümünü seçin.
    5. JSON kodunun properties bölümünde, creationTime değerini kontrol edin.

    Alternatif olarak, aşağıdaki yöntemlerden birini kullanın:

    • Python SDK'sı: Workspace.get(name=<workspace-name>, subscription_id=<subscription-ID>, resource_group=<resource-group-name>).get_details()
    • REST API: curl https://management.azure.com/subscriptions/<subscription-ID>/resourceGroups/<resource-group-name>/providers/Microsoft.MachineLearningServices/workspaces/?api-version=2023-10-01 -H "Authorization:Bearer <access-token>"
    • PowerShell:Get-AzMLWorkspace -Name <workspace-name> -ResourceGroupName <resource-group-name>
  • Çevrimiçi uç noktaların güvenliğini sağlamaya yardımcı olmak için ağ yalıtımı kullandığınızda, çalışma alanı kaynak grubunuzdan farklı bir kaynak grubundan çalışma alanıyla ilişkili kaynakları kullanabilirsiniz. Ancak bu kaynakların çalışma alanınızla aynı aboneliğe ve kiracıya ait olması gerekir. Çalışma alanıyla ilişkili kaynaklar Azure Container Registry, Azure Depolama, Azure Key Vault ve Application Insights'tır.

Not

Bu makalede, veri düzlemi işlemleri için geçerli olan ağ yalıtımı açıklanmaktadır. Bu işlemler, puanlama isteklerinden veya model sunumundan kaynaklanır. Kimlik doğrulama anahtarları oluşturma, güncelleştirme, silme veya alma istekleri gibi denetim düzlemi işlemleri genel ağ üzerinden Azure Resource Manager'a gönderilir.

Gelen puanlama isteklerinin güvenliğini sağlama

Azure Machine Learning çalışma alanı için özel bir uç nokta kullanarak istemciden yönetilen çevrimiçi uç noktaya gelen iletişimin güvenliğini sağlayabilirsiniz. İstemcinin sanal ağındaki bu özel uç nokta, yönetilen çevrimiçi uç noktanın çalışma alanıyla iletişim kurar ve yönetilen çevrimiçi uç noktanın istemciden gelen puanlama isteklerini aldığı anlamına gelir.

Bir istemcinin yalnızca çalışma alanının özel uç noktası üzerinden erişebilmesi için çevrimiçi uç noktaya yönelik puanlama isteklerinin güvenliğini sağlamak için uç nokta bayrağını olarak public_network_accessayarlayındisabled. Uç noktayı oluşturduktan sonra, isterseniz genel ağ erişimini etkinleştirmek için bu ayarı güncelleştirebilirsiniz.

Uç noktanın public_network_access bayrağını olarak disabledayarlayın:

Azure CLI komutunu çalıştırmadan önce:

  • Geçerli çalışma dizininizde (yerel olarak veya Azure Cloud Shell'de) bir endpoint.yml dosyanız olduğundan emin olun.
  • Azure Cloud Shell kullanıyorsanız, bu depoyu içeren bir depoyu Cloud Shell giriş dizininize yükleyin endpoint.yml veya kopyalayın.
  • Varsayılan Azure Machine Learning çalışma alanınız ve kaynak grubunuz ayarlanmadıysa --resource-group ve --workspace-name parametrelerini ekleyin.
az ml online-endpoint create \
  --file endpoint.yml \
  --set public_network_access=disabled

# Optionally specify the workspace and resource group explicitly
az ml online-endpoint create \
  --file endpoint.yml \
  --resource-group <resource-group-name> \
  --workspace-name <workspace-name> \
  --set public_network_access=disabled

Eğer bir No such file or directory: endpoint.yml hatası görürseniz, mevcut dizininizde endpoint.yml olduğundan ve bu dizinden komutu çalıştırdığınızdan emin olun.

'yi devre dışı bırakdığınızda public_network_access, çalışma alanının özel uç noktası gelen puanlama istekleri alır ve genel ağlar uç noktaya ulaşamaz.

'yi etkinleştirirseniz public_network_access, uç nokta İnternet'ten gelen puanlama isteklerini alabilir.

Belirli IP adreslerinden genel ağ erişimiyle gelen puanlamanın güvenliğini sağlama

Azure Machine Learning çalışma alanı, belirli IP adreslerinden veya adres aralıklarından genel ağ erişimini etkinleştirmeyi destekler. Bu özellik, yönetilen çevrimiçi uç noktanın bayrağıyla, yönetilen çevrimiçi uç noktalarla public_network_access kullanırken bilmeniz gereken bazı etkileşimlere sahiptir. Daha fazla bilgi için bkz . Senaryo: Belirli IP adreslerinden erişimi olan yönetilen çevrimiçi uç noktalar.

Çalışma alanı tarafından yönetilen sanal ağ ile giden erişimin güvenliğini sağlama

Bir dağıtımdan hizmetlere giden iletişimin güvenliğini sağlamak için, Azure Machine Learning'in çalışma alanı için yönetilen bir sanal ağ oluşturabilmesi için Azure Machine Learning çalışma alanınızda yönetilen sanal ağ yalıtımını etkinleştirmeniz gerekir. Çalışma alanı içindeki tüm yönetilen çevrimiçi uç noktalar (ve işlem kümeleri ve işlem örnekleri gibi çalışma alanı için yönetilen işlem kaynakları) otomatik olarak bu çalışma alanı yönetilen sanal ağını kullanır ve uç noktalar altındaki dağıtımlar, yönetilen sanal ağın çalışma alanının kaynaklarıyla iletişim için özel uç noktalarını paylaşır.

Yönetilen bir sanal ağ ile çalışma alanınızın güvenliğini sağlarken, egress_public_access yönetilen çevrimiçi dağıtımlar bayrağı artık geçerli olmaz. Yönetilen çevrimiçi dağıtımı oluştururken bu bayrağı ayarlamaktan kaçının.

Çalışma alanı tarafından yönetilen bir sanal ağ ile giden iletişim için Azure Machine Learning:

  • Azure Depolama, Azure Key Vault ve Azure Container Registry gibi çalışma alanının kullandığı Azure kaynaklarıyla iletişim için kullanılacak yönetilen sanal ağ için özel uç noktalar oluşturur.
  • Dağıtımların Microsoft Container Registry'ye (MCR) erişmesine izin verir. Bu, seçilmiş ortamları veya MLflow kod içermeyen dağıtımı kullanmak istediğinizde yararlı olabilir.
  • Kullanıcıların özel kaynaklara özel uç nokta giden kuralları yapılandırmalarına ve genel kaynaklar için giden kuralları (hizmet etiketi veya FQDN) yapılandırmalarına olanak tanır. Giden kurallarını yönetme hakkında daha fazla bilgi için bkz . Giden kurallarını yönetme.

Ayrıca, çalışma alanı tarafından yönetilen sanal ağdan giden trafik için iki yalıtım modu yapılandırabilirsiniz:

  • Yönetilen sanal ağdan gelen tüm İnternet giden trafiğine izin vermek için İnternet'e giden trafiğe izin ver
  • Özel uç noktaları, FQDN giden kurallarını ve hizmet etiketi giden kurallarını kullanarak giden trafiği denetlemek için sadece onaylanmış giden trafiğe izin verin.

Örneğin, çalışma alanınızın yönetilen sanal ağı yönetilen çevrimiçi uç nokta altında iki dağıtım içeriyorsa, her iki dağıtım da iletişim kurmak için çalışma alanının özel uç noktalarını kullanabilir:

  • Azure Machine Learning çalışma alanı
  • Çalışma alanıyla ilişkili Azure Depolama blobu
  • Çalışma alanı için Azure Container Registry
  • Azure Key Vault (Azure Anahtar Kasası)
  • (İsteğe bağlı) özel uç noktaları destekleyen ek özel kaynaklar.

Çalışma alanı tarafından yönetilen sanal ağın yapılandırmaları hakkında daha fazla bilgi edinmek için bkz . Yönetilen sanal ağ mimarisi.

Ağ yalıtımı yapılandırması senaryoları

Azure Machine Learning çalışma alanınızın ve yönetilen çevrimiçi uç noktanızın her birinin gelen iletişimini yapılandırmak için kullanabileceğiniz bir public_network_access bayrağı vardır. Öte yandan, bir dağıtımdan giden iletişim çalışma alanının yönetilen sanal ağına bağlıdır.

Yönetilen çevrimiçi uç noktayla iletişim

Yönetilen çevrimiçi uç noktanın yapay zeka modeli kullanan bir dağıtımı olduğunu ve uç noktaya puanlama istekleri göndermek için bir uygulama kullanmak istediğinizi varsayalım. Yönetilen çevrimiçi uç nokta için hangi ağ yalıtımı yapılandırmasını kullanacağınıza aşağıdaki gibi karar vekleyebilirsiniz:

Gelen iletişim için:

Uygulama İnternet'te genel kullanıma açıksa, uygulamadan gelen puanlama isteklerini alabilmesi için uç nokta için etkinleştirmeniz.

Ancak, uygulama kuruluşunuzdaki bir iç uygulama gibi özelse yapay zeka modelinin İnternet'te kullanıma açmak yerine yalnızca kuruluşunuzda kullanılmasını istersiniz. Bu nedenle, yalnızca çalışma alanının özel uç noktası aracılığıyla gelen puanlama isteklerini alabilmesi için uç noktaları devre dışı bırakmanızpublic_network_access.

Giden iletişim (dağıtım) için:

Dağıtımınızın özel Azure kaynaklarına (Azure Depolama blobu, ACR ve Azure Key Vault gibi) erişmesi gerektiğini veya dağıtımın İnternet'e erişmesinin kabul edilemez olduğunu varsayalım. Bu durumda, çalışma alanının yönetilen sanal ağını yalnızca onaylanan giden yalıtım moduyla etkinleştirmeniz gerekir. Bu yalıtım modu, dağıtımdan yalnızca onaylanan hedeflere giden iletişime olanak tanır ve böylece veri sızdırmaya karşı koruma sağlar. Ayrıca, daha özel veya genel kaynaklara erişime izin vermek için çalışma alanı için giden kuralları ekleyebilirsiniz. Daha fazla bilgi için bkz . Yönetilen sanal ağı yalnızca onaylanan gidene izin verecek şekilde yapılandırma.

Ancak, dağıtımınızın İnternet'e erişmesini istiyorsanız, çalışma alanının yönetilen sanal ağını İnternet'e giden yalıtım moduna izin ver ile kullanabilirsiniz. İnternet'e erişebilmenin dışında, ihtiyacınız olan özel Azure kaynaklarına erişmek için yönetilen sanal ağın özel uç noktalarını da kullanabilirsiniz.

Son olarak, dağıtımınızın özel Azure kaynaklarına erişmesi gerekmiyorsa ve İnternet erişimini denetlemeniz gerekmiyorsa, çalışma alanı tarafından yönetilen bir sanal ağ kullanmanız gerekmez.

Azure Machine Learning çalışma alanına gelen iletişim

Gelen çalışma alanı erişimini etkinleştirmek veya devre dışı bırakmak için Azure Machine Learning çalışma alanınızın bayrağını kullanabilirsiniz public_network_access . Genellikle, çalışma alanınıza gelen iletişimin güvenliğini sağlarsanız (çalışma alanının public_network_access bayrağını devre dışı bırakarak) yönetilen çevrimiçi uç noktanızla gelen iletişimin güvenliğini de sağlamak istersiniz.

Aşağıdaki grafik, Azure Machine Learning çalışma alanınıza ve yönetilen çevrimiçi uç noktanıza gelen iletişimin güvenliğini sağlamaya yönelik tipik bir iş akışını gösterir. En iyi güvenlik için, her ikisine de genel İnternet üzerinden erişilememelerini sağlamak için çalışma alanı ve yönetilen çevrimiçi uç nokta bayraklarını devre dışı bırakmanızı public_network_access öneririz. Çalışma alanının özel uç noktası yoksa, uygun DNS çözümlemesini eklediğinizden emin olarak bir uç nokta oluşturabilirsiniz. Ardından, çalışma alanının özel uç noktasını kullanarak yönetilen çevrimiçi uç noktaya erişebilirsiniz.

Çalışma alanınıza ve yönetilen çevrimiçi uç noktanıza gelen iletişimin güvenliğini sağlamaya yönelik tipik bir iş akışını gösteren ekran görüntüsü.

Not

Yönetilen çevrimiçi uç noktalar çalışma alanının özel uç noktasını paylaşır. DNS kayıtlarını özel DNS bölgesine privatelink.api.azureml.msel ile ekliyorsanız, çalışma alanının altındaki tüm uç noktaları özel uç noktaya yönlendirmek için joker karakter *.<per-workspace globally-unique identifier>.inference.<region>.privatelink.api.azureml.ms içeren bir A kaydı eklenmelidir.

Çalışma alanınız ve özel uç noktanız için DNS çözümlemesi hakkında daha fazla bilgi için bkz . Çalışma alanınızı özel dns sunucusuyla kullanma.

Ek

Eski ağ yalıtım yöntemiyle giden erişimin güvenliğini sağlama

Yönetilen çevrimiçi uç noktalar için, uç noktadaki her dağıtım için Bir Azure Machine Learning yönetilen sanal ağı kullanarak dağıtımlar ve kaynaklar arasındaki giden iletişimin güvenliğini sağlayabilirsiniz. Güvenli giden iletişim, bu hizmet örneklerine özel uç noktalar kullanılarak da işlenir.

Not

Bu eski yöntem yerine Çalışma alanı tarafından yönetilen sanal ağ ile giden erişimi güvenli hale getirin bölümünde açıklanan yaklaşımı kullanmanızı kesinlikle öneririz.

Kullandığı Azure kaynakları dahil olmak üzere bir dağıtım ile dış kaynaklar arasındaki iletişimi kısıtlamak için şunları sağlamanız gerekir:

  • Dağıtımın egress_public_network_access bayrağı şeklindedir disabled. Bu bayrak, dağıtımın gerektirdiği model, kod ve resim indirme işleminin özel bir uç noktayla güvene alınmasını sağlar. Dağıtımı oluşturduktan sonra bayrağı güncelleştiremez (etkinleştiremez veya devre dışı bırakamazsınız).egress_public_network_access Dağıtımı güncelleştirirken bayrağı değiştirme girişimi bir hata nedeniyle başarısız oluyor.

  • Çalışma alanı, özel uç nokta üzerinden Azure kaynaklarına erişim sağlayan özel bir bağlantıya sahiptir.

  • Çalışma alanında etkinleştirebileceğiniz veya devre dışı bırakabileceğiniz bir public_network_access bayrak vardır. Genel giden kullanan bir yönetilen çevrimiçi dağıtım kullanmayı planlıyorsanız, çalışma alanını genel erişime izin verecek şekilde de yapılandırmanız gerekir. Bu gereksinim, çevrimiçi dağıtımdan giden iletişimin çalışma alanı API'sine olması nedeniyle mevcuttur. Dağıtımı genel dışa aktarımlar kullanacak şekilde yapılandırdığınızda, çalışma alanının bu genel iletişime açık olması gerekir (genel erişime izin vermesi).

Birden çok dağıtımınız olduğunda ve yönetilen bir çevrimiçi uç noktadaki her dağıtım için öğesini yapılandırdığınızda egress_public_network_accessdisabled , her dağıtımın kendi bağımsız Azure Machine Learning yönetilen sanal ağı vardır. Azure Machine Learning, her sanal ağ için aşağıdaki hizmetlerle iletişim için üç özel uç nokta oluşturur:

  • Azure Machine Learning çalışma alanı
  • Çalışma alanıyla ilişkili Azure Depolama blobu
  • Çalışma alanı için Azure Container Registry

Örneğin, yönetilen çevrimiçi uç noktanın egress_public_network_access iki dağıtımı için bayrağını disabled olarak ayarlarsanız, toplam altı özel uç nokta oluşturulur. Her dağıtım çalışma alanı, blob ve kapsayıcı kayıt defteriyle iletişim kurmak için üç özel uç nokta kullanır.

Önemli

Azure Machine Learning, dağıtımın yönetilen sanal ağı ile istemcinizin sanal ağı arasında eşlemeyi desteklemez. Dağıtımın gerektirdiği kaynaklara güvenli erişim için kaynaklarla iletişim kurmak için özel uç noktaları kullanırız.

Not

Azure Machine Learning Kayıt Defteri'nden Model veya Ortam'a başvururken veya kullanırken, aşağıdaki hizmetler için iki özel uç nokta da oluşturulur:

  • Kayıt Defteri ile ilişkili Azure Depolama
  • Kayıt Defteri ile ilişkili Azure Container Registry

Azure Machine Learning kayıt defterleriyle ağ yalıtımı hakkında daha fazla bilgi

Aşağıdaki diyagramda, çalışma alanının özel uç noktasından yönetilen çevrimiçi uç noktaya akan istemcinin sanal ağından gelen puanlama istekleri gösterilmektedir. Diyagramda ayrıca her biri kendi Azure Machine Learning yönetilen sanal ağında yer alan iki çevrimiçi dağıtım gösterilmektedir. Her dağıtımın sanal ağında Azure Machine Learning çalışma alanıyla giden iletişim için üç özel uç nokta, çalışma alanıyla ilişkilendirilmiş Azure Depolama blobu ve çalışma alanı için Azure Container Registry bulunur.

Eski yöntemle genel ağ yalıtımı diyagramı.

özel uç noktaları devre dışı bırakmak egress_public_network_access ve oluşturmak için:

az ml online-deployment create -f deployment.yml --set egress_public_network_access=disabled

Özel uç noktaların oluşturulmasını onaylamak için önce çalışma alanıyla ilişkili depolama hesabını ve kapsayıcı kayıt defterini denetleyin (bkz . Yapılandırma dosyası indirme), Azure portalından her kaynağı bulma ve menünün altındaki sekmeyi Private endpoint connectionsNetworking kontrol etme.

Önemli

  • Daha önce belirtildiği gibi, yönetilen çevrimiçi uç nokta dağıtımından çalışma alanı API'sine giden iletişim. Uç nokta genel gideni kullanacak şekilde yapılandırıldığında (başka bir deyişle, public_network_access uç nokta bayrağı olarak enabledayarlanır), çalışma alanının bu genel iletişimi kabul edebilmesi gerekir (public_network_access olarak ayarlanmış enabledçalışma alanı bayrağı).
  • Bayrağı egress_public_network_access olarak ayarlandığında, çevrimiçi dağıtımlar oluşturulduğunda, yalnızca (çalışma alanı, blob ve kapsayıcı kayıt defteri gibi) güvenli kaynaklara erişimleri olur. Örneğin, dağıtım diğer depolama hesaplarına yüklenen model varlıklarını kullanıyorsa model indirme işlemi başarısız olur. Model varlıklarının çalışma alanıyla ilişkili depolama hesabında olduğundan emin olun.
  • egress_public_network_access olarak ayarlandığındadisabled, dağıtım yalnızca sanal ağda güvenliği sağlanan çalışma alanıyla ilişkili kaynaklara erişebilir. Tam tersine, egress_public_network_access olarak ayarlandığında enableddağıtım yalnızca genel erişime sahip kaynaklara erişebilir, bu da sanal ağda güvenliği sağlanan kaynaklara erişememe anlamına gelir.

Aşağıdaki tabloda çevrimiçi uç nokta için gelen ve giden iletişim yapılandırılırken desteklenen yapılandırmalar listelenir:

Yapılandırma Gelen
(Endpoint özelliği)
Giden
(Dağıtım özelliği)
Destekleniyor mu?
güvenli giden iletişimle güvenli gelen iletişim public_network_access devre dışı egress_public_network_access devre dışı Evet
genel giden iletişimle güvenli gelen iletişim public_network_access devre dışı egress_public_network_access etkin
Dağıtım giden çalışma alanı API'sine olduğundan çalışma alanı da genel erişime izin vermelidir.
Evet
güvenli giden iletişimle genel gelen iletişim public_network_access etkin egress_public_network_access devre dışı Evet
genel giden iletişimle genel gelen iletişim public_network_access etkin egress_public_network_access etkin
Dağıtım giden çalışma alanı API'sine olduğundan çalışma alanı da genel erişime izin vermelidir.
Evet

Sonraki adımlar