SDK v1 kullanarak Azure Machine Learning kaynakları ve iş akışları için kimlik doğrulamasını ayarlama
ŞUNUN IÇIN GEÇERLIDIR: Python SDK azureml v1
Azure Machine Learning çalışma alanınızda kimlik doğrulamasını ayarlamayı öğrenin. Azure Machine Learning çalışma alanınızda kimlik doğrulaması çoğu şey için Microsoft Entra Id'yi temel alır. Genel olarak, çalışma alanına bağlanırken kullanabileceğiniz dört kimlik doğrulama iş akışı vardır:
Etkileşimli: Microsoft Entra Id'de hesabınızı doğrudan kimlik doğrulaması yapmak veya kimlik doğrulaması için kullanılan bir belirteç almak için kullanırsınız. Etkileşimli kimlik doğrulaması, deneme ve yinelemeli geliştirme sırasında kullanılır. Etkileşimli kimlik doğrulaması, kaynaklara (web hizmeti gibi) erişimi kullanıcı bazında denetlemenizi sağlar.
Hizmet sorumlusu: Microsoft Entra Id'de bir hizmet sorumlusu hesabı oluşturur ve kimlik doğrulaması yapmak veya belirteç almak için bu hesabı kullanırsınız. Hizmet sorumlusu, kullanıcı etkileşimi gerektirmeden hizmette kimlik doğrulaması yapmak için otomatik bir işleme ihtiyacınız olduğunda kullanılır. Örneğin, eğitim kodu her değiştiğinde modeli eğiten ve test eden sürekli tümleştirme ve dağıtım betiği.
Azure CLI oturumu: Kimlik doğrulaması için etkin bir Azure CLI oturumu kullanırsınız. Azure CLI kimlik doğrulaması, deneme ve yinelemeli geliştirme sırasında veya önceden kimliği doğrulanmış bir oturum kullanarak hizmette kimlik doğrulaması yapmak için otomatik bir işleme ihtiyacınız olduğunda kullanılır. Kimlik bilgilerini Python kodunda depolamadan veya kullanıcıdan kimlik doğrulaması istemeden yerel iş istasyonunuzda Azure CLI aracılığıyla Azure'da oturum açabilirsiniz. Benzer şekilde, azure CLI'nin kimliğini bir hizmet sorumlusu kimliğiyle doğrularken sürekli tümleştirme ve dağıtım işlem hatlarının bir parçası olarak aynı betikleri yeniden kullanabilirsiniz.
Yönetilen kimlik: Azure Sanal Makinesinde Azure Machine Learning SDK'sını kullanırken, Azure için yönetilen kimlik kullanabilirsiniz. Bu iş akışı, kimlik bilgilerini Python kodunda depolamadan veya kullanıcıdan kimlik doğrulaması istemeden VM'nin yönetilen kimliği kullanarak çalışma alanına bağlanmasını sağlar. Azure Machine Learning işlem kümeleri ve işlem örnekleri, modelleri eğitirken çalışma alanına erişmek için yönetilen kimlik kullanacak şekilde de yapılandırılabilir.
Kullanılan kimlik doğrulama iş akışından bağımsız olarak, kaynaklara izin verilen erişim düzeyini (yetkilendirme) kapsamak için Azure rol tabanlı erişim denetimi (Azure RBAC) kullanılır. Örneğin, bir yönetici veya otomasyon işlemi bir işlem örneği oluşturma erişimine sahip olabilir, ancak bunu kullanamazken, veri bilimcisi bunu kullanabilir, ancak silemez veya oluşturamayabilir. Daha fazla bilgi için bkz . Azure Machine Learning çalışma alanına erişimi yönetme.
Microsoft Entra Koşullu Erişim, her kimlik doğrulama iş akışı için çalışma alanına erişimi daha fazla denetlemek veya kısıtlamak için kullanılabilir. Örneğin, bir yönetici yalnızca yönetilen cihazlardan çalışma alanı erişimine izin verebilir.
Önkoşullar
- Azure Machine Learning çalışma alanı oluşturun.
- Geliştirme ortamınızı Azure Machine Learning SDK'sını yükleyecek şekilde yapılandırın veya SDK'nın zaten yüklü olduğu bir Azure Machine Learning işlem örneği kullanın.
Microsoft Entra Kimlik
Çalışma alanınız için tüm kimlik doğrulama iş akışları Microsoft Entra ID'ye dayanır. Kullanıcıların tek tek hesapları kullanarak kimlik doğrulamasını istiyorsanız, Microsoft Entra Kimliğinizde hesapları olmalıdır. Hizmet sorumlularını kullanmak istiyorsanız, bunların Microsoft Entra Kimliğinizde mevcut olması gerekir. Yönetilen kimlikler, Microsoft Entra Id'nin de bir özelliğidir.
Microsoft Entra Id hakkında daha fazla bilgi için bkz . Microsoft Entra kimlik doğrulaması nedir?
Microsoft Entra hesaplarını oluşturduktan sonra, Azure Machine Learning'deki çalışma alanına ve diğer işlemlere erişim verme hakkında bilgi için bkz. Azure Machine Learning çalışma alanına erişimi yönetme.
Hizmet sorumlusu yapılandırma
Hizmet sorumlusu (SP) kullanmak için önce SP'yi oluşturmanız gerekir. Ardından çalışma alanınıza erişim izni verin. Daha önce de belirtildiği gibi, erişimi denetlemek için Azure rol tabanlı erişim denetimi (Azure RBAC) kullanılır, bu nedenle SP'ye hangi erişimin vereceğine de karar vermeniz gerekir.
Önemli
Hizmet sorumlusu kullanırken, hizmet sorumlusuna , kullanıldığı görev için gereken en düşük erişimi verin. Örneğin, yalnızca bir web dağıtımı için erişim belirtecini okumak için kullanılıyorsa hizmet sorumlusu sahibine veya katkıda bulunana erişim izni vermezsiniz.
En az erişim vermenin nedeni, hizmet sorumlusunun kimlik doğrulaması için parola kullanması ve parolanın otomasyon betiğinin bir parçası olarak depolanabileceğidir. Parola sızdırılırsa, belirli görevler için gereken en düşük erişime sahip olmak, SP'nin kötü amaçlı kullanımını en aza indirir.
Hizmet sorumlusu parolası gibi gizli dizileri düzenli aralıklarla döndürmeniz gerekir.
SP oluşturmanın ve çalışma alanınıza erişim vermenin en kolay yolu Azure CLI'yi kullanmaktır. Bir hizmet sorumlusu oluşturmak ve çalışma alanınıza erişim vermek için aşağıdaki adımları kullanın:
Not
Bu adımların tümünü gerçekleştirmek için abonelikte yönetici olmanız gerekir.
Azure aboneliğinizde kimlik doğrulaması:
az login
CLI varsayılan tarayıcınızı açabiliyorsa, tarayıcıyı açar ve oturum açma sayfasını yükler. Aksi takdirde, bir tarayıcı açmanız ve komut satırındaki yönergeleri izlemeniz gerekir. Yönergeler, yetkilendirme koduna https://aka.ms/devicelogin göz atmayı ve bu kodu girmeyi içerir.
Birden çok Azure aboneliğiniz varsa, aboneliği ayarlamak için komutunu kullanabilirsiniz
az account set -s <subscription name or ID>
. Daha fazla bilgi için bkz . Birden çok Azure aboneliği kullanma.Diğer kimlik doğrulama yöntemleri için bkz . Azure CLI ile oturum açma.
Hizmet sorumlusunu oluşturun. Aşağıdaki örnekte ml-auth adlı bir SP oluşturulur:
az ad sp create-for-rbac --json-auth --name ml-auth --role Contributor --scopes /subscriptions/<subscription id>
parametresi
--json-auth
Azure CLI sürümlerinde >= 2.51.0 kullanılabilir. Bu kullanımdan önceki sürümler kullanılır--sdk-auth
.Çıkış, aşağıdakine benzer bir JSON olacaktır. Bu makaledeki
clientId
diğer adımlar için ihtiyaç duyacağınız için ,clientSecret
vetenantId
alanlarını not alın.{ "clientId": "your-client-id", "clientSecret": "your-client-secret", "subscriptionId": "your-sub-id", "tenantId": "your-tenant-id", "activeDirectoryEndpointUrl": "https://login.microsoftonline.com", "resourceManagerEndpointUrl": "https://management.azure.com", "activeDirectoryGraphResourceId": "https://graph.windows.net", "sqlManagementEndpointUrl": "https://management.core.windows.net:5555", "galleryEndpointUrl": "https://gallery.azure.com/", "managementEndpointUrl": "https://management.core.windows.net" }
Önceki adımda döndürülen değeri kullanarak hizmet sorumlusunun
clientId
ayrıntılarını alın:az ad sp show --id your-client-id
Aşağıdaki JSON komutundan elde edilen çıkışın basitleştirilmiş bir örneğidir. Bir sonraki adım için değerine ihtiyacınız olduğundan alanı not
objectId
alın.{ "accountEnabled": "True", "addIns": [], "appDisplayName": "ml-auth", ... ... ... "objectId": "your-sp-object-id", "objectType": "ServicePrincipal" }
Azure Machine Learning tarafından kullanılan çalışma alanına ve diğer kaynaklara erişim vermek için aşağıdaki makalelerdeki bilgileri kullanın:
Önemli
Sahip erişimi, hizmet sorumlusunun çalışma alanınızdaki neredeyse tüm işlemleri gerçekleştirmesine olanak tanır. Bu belgede erişim vermenin nasıl yapıldığını göstermek için kullanılır; Bir üretim ortamında Microsoft, hizmet sorumlusuna amaçladığınız rolü gerçekleştirmek için gereken en düşük erişimi vermenizi önerir. Senaryonuz için gereken erişimle özel rol oluşturma hakkında bilgi için bkz . Azure Machine Learning çalışma alanına erişimi yönetme.
Yönetilen kimliği yapılandırma
Önemli
Yönetilen kimlik yalnızca Bir Azure Sanal Makinesinden Azure Machine Learning SDK'sı kullanıldığında veya bir Azure Machine Learning işlem kümesinde veya işlem örneğinde desteklenir.
VM ile yönetilen kimlik
VM'de Azure kaynakları için sistem tarafından atanan yönetilen kimliği etkinleştirin.
Azure portalında çalışma alanınızı ve ardından Erişim Denetimi (IAM) seçeneğini belirleyin.
Rol ataması ekle sayfasını açmak için Ekle, Rol Ataması Ekle'yi seçin.
Aşağıdaki rolü atayın. Ayrıntılı adımlar için bkz. Azure portalı kullanarak Azure rolleri atama.
Ayar Value Role Atamak istediğiniz rol. Şu kişiye erişim ata: Yönetilen Kimlik Üyeler Daha önce oluşturduğunuz yönetilen kimlik
İşlem kümesi ile yönetilen kimlik
Daha fazla bilgi için bkz . İşlem kümesi için yönetilen kimliği ayarlama.
Etkileşimli kimlik doğrulamayı kullanma
Önemli
Etkileşimli kimlik doğrulaması tarayıcınızı kullanır ve tanımlama bilgileri (üçüncü taraf tanımlama bilgileri dahil) gerektirir. Tanımlama bilgilerini devre dışı bırakmışsanız "oturum açamadık" gibi bir hata alabilirsiniz. Bu hata, Microsoft Entra çok faktörlü kimlik doğrulamasını etkinleştirdiyseniz de oluşabilir.
Belgelerdeki ve örneklerdeki örneklerin çoğu etkileşimli kimlik doğrulaması kullanır. Örneğin, SDK'yı kullanırken kullanıcı arabirimi tabanlı kimlik doğrulama akışını otomatik olarak girmenizi isteyen iki işlev çağrısı vardır:
işlevi çağrılırsa
from_config()
istem verilir.from azureml.core import Workspace ws = Workspace.from_config()
from_config()
işlevi, çalışma alanı bağlantı bilgilerinizi içeren bir JSON dosyası arar.Oluşturucuyu
Workspace
kullanarak abonelik, kaynak grubu ve çalışma alanı bilgilerini sağlamak için etkileşimli kimlik doğrulaması da istenir.ws = Workspace(subscription_id="your-sub-id", resource_group="your-resource-group-id", workspace_name="your-workspace-name" )
İpucu
Birden çok kiracıya erişiminiz varsa sınıfı içeri aktarmanız ve hedeflediğiniz kiracıyı açıkça tanımlamanız gerekebilir. oluşturucunun InteractiveLoginAuthentication
çağrılması, yukarıdaki çağrılara benzer şekilde oturum açmanızı da ister.
from azureml.core.authentication import InteractiveLoginAuthentication
interactive_auth = InteractiveLoginAuthentication(tenant_id="your-tenant-id")
Azure CLI kullanılırken komutu CLI az login
oturumunun kimliğini doğrulamak için kullanılır. Daha fazla bilgi için bkz . Azure CLI ile çalışmaya başlama.
İpucu
SDK'yı daha önce Azure CLI kullanarak etkileşimli olarak kimlik doğrulaması yaptığınız bir ortamdan kullanıyorsanız, CLI tarafından önbelleğe alınan kimlik bilgilerini kullanarak çalışma alanında kimlik doğrulaması yapmak için sınıfını kullanabilirsiniz AzureCliAuthentication
:
from azureml.core.authentication import AzureCliAuthentication
cli_auth = AzureCliAuthentication()
ws = Workspace(subscription_id="your-sub-id",
resource_group="your-resource-group-id",
workspace_name="your-workspace-name",
auth=cli_auth
)
Hizmet sorumlusu kimlik doğrulamayı kullanma
Hizmet sorumlusu kullanarak SDK'dan çalışma alanınızda kimlik doğrulaması yapmak için sınıf oluşturucusunu ServicePrincipalAuthentication
kullanın. Parametreler olarak hizmet sağlayıcısını oluştururken sahip olduğunuz değerleri kullanın. tenant_id
parametresi yukarıdan ile eşlerclientId
tenantId
, service_principal_id
ile ve service_principal_password
ile eşlerclientSecret
.
from azureml.core.authentication import ServicePrincipalAuthentication
sp = ServicePrincipalAuthentication(tenant_id="your-tenant-id", # tenantID
service_principal_id="your-client-id", # clientId
service_principal_password="your-client-secret") # clientSecret
Değişkeni sp
artık doğrudan SDK'da kullandığınız bir kimlik doğrulama nesnesini barındırıyor. Genel olarak, aşağıdaki kodda gösterildiği gibi yukarıdaki ortam değişkenlerinde kullanılan kimlikleri/gizli dizileri depolamak iyi bir fikirdir. Ortam değişkenlerinde depolama, bilgilerin yanlışlıkla GitHub deposunda denetlenmesini önler.
import os
sp = ServicePrincipalAuthentication(tenant_id=os.environ['AML_TENANT_ID'],
service_principal_id=os.environ['AML_PRINCIPAL_ID'],
service_principal_password=os.environ['AML_PRINCIPAL_PASS'])
Python'da çalışan ve öncelikli olarak SDK'yı kullanan otomatik iş akışları için, kimlik doğrulamanız için çoğu durumda olduğu gibi bu nesneyi kullanabilirsiniz. Aşağıdaki kod, oluşturduğunuz kimlik doğrulama nesnesini kullanarak çalışma alanınızda kimlik doğrulaması yapar.
from azureml.core import Workspace
ws = Workspace.get(name="ml-example",
auth=sp,
subscription_id="your-sub-id",
resource_group="your-rg-name")
ws.get_details()
Yönetilen kimlik kimlik doğrulamayı kullanma
Yönetilen kimlikle yapılandırılmış bir VM, işlem kümesi veya işlem örneğinden çalışma alanında kimlik doğrulaması yapmak için sınıfını MsiAuthentication
kullanın. Aşağıdaki örnekte, bir çalışma alanında kimlik doğrulaması yapmak için bu sınıfın nasıl kullanılacağı gösterilmektedir:
from azureml.core.authentication import MsiAuthentication
msi_auth = MsiAuthentication()
ws = Workspace(subscription_id="your-sub-id",
resource_group="your-resource-group-id",
workspace_name="your-workspace-name",
auth=msi_auth
)
Koşullu Erişim kullanma
Yönetici olarak, çalışma alanında oturum açmış kullanıcılar için Microsoft Entra Koşullu Erişim ilkelerini zorunlu kılabilirsiniz. Örneğin, iki öğeli kimlik doğrulaması gerektirebilir veya yalnızca yönetilen cihazlardan oturum açmaya izin vekleyebilirsiniz. Azure Machine Learning çalışma alanları için Koşullu Erişim'i özellikle kullanmak için Koşullu Erişim ilkesini Azure Machine Learning adlı uygulamaya atayın. Uygulama kimliği : 0736f41a-0425-bdb5-1563eff02385.
Sonraki adımlar
- Eğitimde gizli dizileri kullanma.
- Web hizmeti olarak dağıtılan modeller için kimlik doğrulamasını yapılandırma.
- Web hizmeti olarak dağıtılan bir Azure Machine Learning modelini kullanma.