Azure CLI veya Azure Machine Learning SDK v2'den 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 otomatikleştirilmiş bir işlemin kimliğini doğrulamak için 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. Machine Learning için Azure CLI uzantısı ( ml uzantı veya CLI v2), Azure Machine Learning ile çalışmaya yönelik bir komut satırı aracıdı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 Machine Learning SDK v2'yi bir işlem örneğinde veya azure sanal makinesinde 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, 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 kullanamaz. Bir veri bilimcisi bunu kullanabilir, ancak silemez veya oluşturmaz. 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.
Ç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.
Etkileşimli kimlik doğrulaması, Python için Azure Kimlik paketini kullanır. Etkileşimli olarak kimlik doğrulaması yapmanın birden çok yolu vardır, ancak çoğu örnek çoğu kimlik doğrulama senaryolarını işlediğinden bunu kullanır DefaultAzureCredential . sınıfı DefaultAzureCredential birden çok yaklaşım (EnvironmentCredential, ManagedIdentityCredential, SharedTokenCacheCredential, VisualStudioCodeCredential, , AzureCliCredential, AzurePowerShellCredential) kullanır ve belirteç sağlandığında durduruluyor. Daha fazla bilgi için bkz . DefaultAzureCredential sınıf başvurusu.
Aşağıdaki kod, kimlik doğrulaması için kullanımın DefaultAzureCredential bir örneğidir. kullanarak DefaultAzureCredential kimlik doğrulaması başarısız olursa, bunun yerine web tarayıcınızda kimlik doğrulamasının geri dönüşü kullanılır.
Python
from azure.identity import DefaultAzureCredential, InteractiveBrowserCredential
try:
credential = DefaultAzureCredential()
# Check if given credential can get token successfully.
credential.get_token("https://management.azure.com/.default")
except Exception as ex:
# Fall back to InteractiveBrowserCredential in case DefaultAzureCredential not work# This will open a browser page for
credential = InteractiveBrowserCredential()
Kimlik bilgisi nesnesi oluşturulduktan sonra, çalışma alanına bağlanmak için MLClient sınıfı kullanılır. Örneğin, aşağıdaki kod bağlantı bilgilerini yüklemek için yöntemini kullanır from_config() :
Python
from azure.ai.ml import MLClient
try:
ml_client = MLClient.from_config(credential=credential)
except Exception as ex:
# NOTE: Update following workspace information to contain# your subscription ID, resource group name, and workspace name
client_config = {
"subscription_id": "<SUBSCRIPTION_ID>",
"resource_group": "<RESOURCE_GROUP>",
"workspace_name": "<AZUREML_WORKSPACE_NAME>",
}
# write and reload from config fileimport json, os
config_path = "../.azureml/config.json"
os.makedirs(os.path.dirname(config_path), exist_ok=True)
with open(config_path, "w") as fo:
fo.write(json.dumps(client_config))
ml_client = MLClient.from_config(credential=credential, path=config_path)
print(ml_client)
Azure CLI kullandığınızda, az login komutu CLI oturumunun kimliğini doğrulamak için kullanılır. Daha fazla bilgi için bkz . Azure CLI ile çalışmaya başlama.
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.
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ı:
Azure CLI
az login
CLI varsayılan tarayıcınızı açabiliyorsa, bunu yapar ve bir oturum açma sayfası 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:
Azure CLI
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 --sdk-authönceki sürümler.
Çıkış, aşağıdakine benzer bir JSON belgesidir. Bu makaledeki clientIddiğer adımlar için ihtiyacınız olduğu için , clientSecretve tenantId alanlarını not alın.
Önceki adımda döndürülen değeri kullanarak hizmet sorumlusunun clientId ayrıntılarını alın:
Azure CLI
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.
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 Azure Sanal Makinesinden, Azure Machine Learning işlem kümesinden veya işlem örneğinden Azure Machine Learning SDK'sı kullanıldığında 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.
Hizmet sorumlusuyla kimlik doğrulaması, Python için Azure Kimlik paketini kullanır.
DefaultAzureCredential sınıfı aşağıdaki ortam değişkenlerini arar ve hizmet sorumlusu olarak kimlik doğrulaması yaparken değerleri kullanır:
AZURE_CLIENT_ID - Hizmet sorumlusunu oluşturduğunuzda döndürülen istemci kimliği.
AZURE_TENANT_ID - Hizmet sorumlusunu oluşturduğunuzda döndürülen kiracı kimliği.
AZURE_CLIENT_SECRET - Hizmet sorumlusu için oluşturulan parola/kimlik bilgisi.
İpucu
Geliştirme sırasında bu ortam değişkenlerini ayarlamak için python-dotenv paketini kullanmayı göz önünde bulundurun. Python-dotenv, dosyalardan .env ortam değişkenlerini yükler. Python için standart .gitignore dosya otomatik olarak dosyaları dışlar .env , bu nedenle geliştirme sırasında hiçbir GitHub deposunda denetlenmemelidir.
Aşağıdaki örnek, python-dotenv kullanarak bir .env dosyadan ortam değişkenlerini yüklemeyi ve ardından kimlik bilgisi nesnesini oluşturmak için kullanmayı DefaultAzureCredential gösterir:
Python
from dotenv import load_dotenv
if ( os.environ['ENVIRONMENT'] == 'development'):
print("Loading environment variables from .env file")
load_dotenv(".env")
from azure.identity import DefaultAzureCredential
credential = DefaultAzureCredential()
# Check if given credential can get token successfully.
credential.get_token("https://management.azure.com/.default")
Kimlik bilgisi nesnesi oluşturulduktan sonra, çalışma alanına bağlanmak için MLClient sınıfı kullanılır. Örneğin, aşağıdaki kod bağlantı bilgilerini yüklemek için yöntemini kullanır from_config() :
Python
try:
ml_client = MLClient.from_config(credential=credential)
except Exception as ex:
# NOTE: Update following workspace information to contain# your subscription ID, resource group name, and workspace name
client_config = {
"subscription_id": "<SUBSCRIPTION_ID>",
"resource_group": "<RESOURCE_GROUP>",
"workspace_name": "<AZUREML_WORKSPACE_NAME>",
}
# write and reload from config fileimport json, os
config_path = "../.azureml/config.json"
os.makedirs(os.path.dirname(config_path), exist_ok=True)
with open(config_path, "w") as fo:
fo.write(json.dumps(client_config))
ml_client = MLClient.from_config(credential=credential, path=config_path)
print(ml_client)
Azure CLI komutları için hizmet sorumlusu kullanabilirsiniz. Daha fazla bilgi için bkz . Hizmet sorumlusu kullanarak oturum açma.
Hizmet sorumlusu, Azure Machine Learning REST API'sinde kimlik doğrulaması yapmak için de kullanılabilir. Otomatik iş akışlarında başsız kimlik doğrulaması için hizmet-hizmet çağrılarına izin veren Microsoft Entra Id istemci kimlik bilgileri verme akışını kullanırsınız.
Önemli
Kimlik bilgilerini almak için şu anda Azure Active Directory Kimlik Doğrulama Kitaplığı 'nı (ADAL) kullanıyorsanız, Microsoft Kimlik Doğrulama Kitaplığı'na (MSAL) geçmenizi öneririz. ADAL desteği 30 Haziran 2022'de sona erdi.
MSAL ile kimlik doğrulaması hakkında bilgi ve örnekler için aşağıdaki makalelere bakın:
Yönetilen kimlikle kimlik doğrulaması, Python için Azure Kimlik paketini kullanır. Yönetilen kimlikle yapılandırılmış bir VM veya işlem kümesinden çalışma alanında kimlik doğrulaması yapmak için sınıfını DefaultAzureCredential kullanın. Bu sınıf, yönetilen kimliğin kullanılıp kullanılmadığını otomatik olarak algılar ve Azure hizmetlerinde kimlik doğrulaması yapmak için yönetilen kimliği kullanır.
Aşağıdaki örnek, kimlik bilgisi nesnesini oluşturmak için sınıfını DefaultAzureCredential ve ardından çalışma alanına bağlanmak için sınıfını kullanmayı MLClient gösterir:
Python
from azure.identity import DefaultAzureCredential
credential = DefaultAzureCredential()
# Check if given credential can get token successfully.
credential.get_token("https://management.azure.com/.default")
try:
ml_client = MLClient.from_config(credential=credential)
except Exception as ex:
# NOTE: Update following workspace information to contain# your subscription ID, resource group name, and workspace name
client_config = {
"subscription_id": "<SUBSCRIPTION_ID>",
"resource_group": "<RESOURCE_GROUP>",
"workspace_name": "<AZUREML_WORKSPACE_NAME>",
}
# write and reload from config fileimport json, os
config_path = "../.azureml/config.json"
os.makedirs(os.path.dirname(config_path), exist_ok=True)
with open(config_path, "w") as fo:
fo.write(json.dumps(client_config))
ml_client = MLClient.from_config(credential=credential, path=config_path)
print(ml_client)
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. Koşullu erişim için kullanılacak uygulama kimlikleri şunlardır:
Uygulama Kimliği
Veri Akışı Adı
Not
d7304df8-741f-47d3-9bc2-df0e24e2071f
Azure Machine Learning Workbench Web Uygulaması
Azure Machine Learning Studio
cb2ff863-7f30-4ced-ab89-a00194bcf6d9
Azure AI Foundry Uygulaması
Azure Yapay Zeka Atölyesi
Hizmet sorumlusunu denetleme
Koşullu erişim ilkesini eklemeden önce, uygulama kimliğinin Azure portalının Kurumsal uygulamalar bölümünde listelendiğini doğrulayın:
Önemli
Bu bölümdeki adımları gerçekleştirmek için Microsoft Entra Id P2'ye sahip olmanız gerekir. Daha fazla bilgi için bkz . Microsoft Entra lisanslama.
Portalın üst kısmındaki arama alanında Kurumsal Uygulamalar'ı arayın ve kurumsal uygulama girişini seçin.
Kurumsal Uygulamalar'da, koşullu erişimle kullanmak istediğiniz girişi aramak için Uygulama adına veya nesne kimliğine göre ara alanını kullanın. Bir girdi görüntülenirse, uygulama kimliği için bir hizmet sorumlusu zaten vardır. Bu bölümdeki adımların geri kalanını atlayın ve Koşullu erişim ekle bölümüne gidin.
Önemli
Tek filtre Uygulama Kimliği ile başlamalıdır. Mevcut olabilecek diğer tüm filtreleri kaldırın.
Herhangi bir giriş görünmüyorsa, uygulama kimliği için bir hizmet sorumlusu oluşturmak için aşağıdaki Azure PowerShell cmdlet'ini kullanın:
Örneğin, New-AzADServicePrincipal -ApplicationId "d7304df8-741f-47d3-9bc2-df0e24e2071f".
Hizmet sorumlusunu oluşturduktan sonra Kurumsal uygulamalar'a dönün ve artık uygulama kimliğini bulabileceğinizi doğrulayın. Kimliklerin listesini Koşullu Erişimi Kullanma bölümünde bulabilirsiniz.
Koşullu erişim ekleme
Koşullu Erişim'i kullanmak için Koşullu Erişim ilkesini uygulama kimliğine atayın. Uygulama Koşullu Erişim'de görünmüyorsa Hizmet sorumlusunu denetle bölümündeki adımları kullanın.
Koşullu Erişim, hangi kullanıcıların belirli etkinlikleri gerçekleştirebileceği, hangi kaynaklara erişebileceği ve verilerin ve sistemlerin güvenli olmasını nasıl sağlayabileceğiniz konusunda ayrıntılı bir denetim sağlar.
Key Vault Gizli Dizileri istemci kitaplığını kullanarak eğitim işlerinizde Azure Key Vault'tan gizli dizileri nasıl güvenli bir şekilde alacağınızı öğrenin.