SDK v1 ile kimlik tabanlı veri erişimini kullanarak depolamaya bağlanma
Bu makalede, Python için Azure Machine Learning SDK'sı aracılığıyla kimlik tabanlı veri erişimi ve Azure Machine Learning veri depoları ile Azure'daki depolama hizmetlerine bağlanmayı öğreneceksiniz.
Veri depoları genellikle, depolama hizmetine erişim izniniz olduğunu doğrulamak için kimlik bilgileri tabanlı kimlik doğrulaması kullanır. Veri depoları, abonelik kimliğiniz ve belirteç yetkilendirmeniz gibi bağlantı bilgilerini çalışma alanıyla ilişkili anahtar kasasında tutar. Kimlik tabanlı veri erişimi kullanan bir veri deposu oluşturduğunuzda Azure hesabınız (Microsoft Entra belirteci), depolama hizmetine erişim izniniz olduğunu onaylamak için kullanılır. Kimlik tabanlı veri erişimi senaryosunda kimlik doğrulaması kimlik bilgileri kaydedilmez. Veri deposunda yalnızca depolama hesabı bilgileri depolanır.
Azure Machine Learning stüdyosu kullanıcı arabirimi aracılığıyla kimlik tabanlı veri erişimine sahip veri depoları oluşturmak için bkz. Azure Machine Learning stüdyosu ile verilere bağlanma.
Erişim anahtarları veya hizmet sorumluları gibi kimlik bilgileri tabanlı kimlik doğrulaması kullanan veri depoları oluşturmak için bkz. Azure'da depolama hizmetlerine bağlanma.
Azure Machine Learning'de kimlik tabanlı veri erişimi
Azure Machine Learning'de kimlik tabanlı veri erişimini iki senaryoda uygulayabilirsiniz. Bu senaryolar, gizli verilerle çalışırken kimlik tabanlı erişim için uygundur ve daha ayrıntılı veri erişim yönetimine ihtiyacınız vardır:
Uyarı
Kimlik tabanlı veri erişimi otomatik ML denemeleri için desteklenmez.
- Depolama hizmetlerine erişme
- Makine öğrenmesi modellerini özel verilerle eğitin
Depolama hizmetlerine erişme
Azure Machine Learning veri depoları veya Azure Machine Learning veri kümeleri ile kimlik tabanlı veri erişimi aracılığıyla depolama hizmetlerine bağlanabilirsiniz.
Kimlik doğrulama kimlik bilgileriniz, depolama hizmetine erişim izniniz olmasını sağlayan bir veri deposunda tutulur. Bu kimlik bilgileri veri depoları aracılığıyla kaydedildiğinde, çalışma alanı Okuyucusu rolüne sahip tüm kullanıcılar bunları alabilir. Bu erişim ölçeği bazı kuruluşlar için bir güvenlik sorunu olabilir. Çalışma alanı Okuyucusu rolü hakkında daha fazla bilgi edinin.
Kimlik tabanlı veri erişimini kullandığınızda Azure Machine Learning, kimlik bilgilerinizi veri deposunda tutmak yerine veri erişimi kimlik doğrulaması için Microsoft Entra belirtecinizi ister. Bu yaklaşım, depolama düzeyinde veri erişimi yönetimine olanak tanır ve kimlik bilgisi güvenliğini korur.
Aşağıdaki durumlarda da aynı davranış geçerlidir:
- Doğrudan depolama URL'lerinden bir veri kümesi oluşturun.
- Yerel bilgisayarınızdaki veya işlem örneğinizdeki bir Jupyter Notebook aracılığıyla verilerle etkileşimli olarak çalışın.
Not
Kimlik bilgileri tabanlı kimlik doğrulaması aracılığıyla depolanan kimlik bilgileri abonelik kimlikleri, paylaşılan erişim imzası (SAS) belirteçleri ve istemci kimlikleri ve kiracı kimlikleri gibi depolama erişim anahtarı ve hizmet sorumlusu bilgilerini içerir.
Özel veriler üzerinde model eğitimi
Bazı makine öğrenmesi senaryoları, özel verilerle eğitim modellerini içerir. Bu gibi durumlarda, veri bilimciler gizli giriş verilerine maruz kalmadan eğitim iş akışlarını çalıştırmaları gerekir. Bu senaryoda, eğitim işleminin yönetilen kimliği veri erişiminin kimliğini doğrular. Bu yaklaşım, depolama yöneticilerinin eğitim işleminin eğitim işini çalıştırmak için kullandığı yönetilen kimliğe Depolama Blob Veri Okuyucusu erişimi vermesine olanak tanır. Tek tek veri bilim insanlarına erişim izni verilmesi gerekmez. Daha fazla bilgi için bkz . İşlem kümesinde yönetilen kimliği ayarlama.
Önkoşullar
Azure aboneliği. Azure aboneliğiniz yoksa başlamadan önce ücretsiz bir hesap oluşturun. Azure Machine Learning'in ücretsiz veya ücretli sürümünü deneyin.
Desteklenen depolama türüne sahip bir Azure depolama hesabı. Bu depolama türleri desteklenir:
Azure Machine Learning çalışma alanı.
Bir Azure Machine Learning çalışma alanı oluşturun veya Python SDK'sı aracılığıyla mevcut bir çalışma alanını kullanın.
Veri depoları oluşturma ve kaydetme
Azure'da bir depolama hizmetini veri deposu olarak kaydettiğinizde, bu veri deposunu otomatik olarak oluşturur ve belirli bir çalışma alanına kaydedersiniz. Gerekli izin türleriyle ilgili yönergeler için bkz. Depolama erişim izinleri. Ayrıca, özel izinler olmadan bağlanmak istediğiniz depolama alanını el ile de oluşturabilirsiniz ve yalnızca ada ihtiyacınız vardır.
Sanal ağların arkasındaki veri depolamaya bağlanma hakkında ayrıntılı bilgi için bkz. Sanal ağlarla çalışma.
Aşağıdaki kodda , , account_key
subscription_id
ve hizmet sorumlusu client_id
gibi sas_token
kimlik doğrulama parametrelerinin olmadığına dikkat edin. Bu eksiklik, Azure Machine Learning'in kimlik doğrulaması için kimlik tabanlı veri erişimi kullandığını gösterir. Veri depolarının oluşturulması genellikle bir not defterinde veya stüdyo aracılığıyla etkileşimli olarak gerçekleşir. Veri erişim kimlik doğrulaması Microsoft Entra belirtecinizi kullanır.
Not
Veri deposu adları yalnızca küçük harflerden, sayılardan ve alt çizgilerden oluşmalıdır.
Azure blob kapsayıcısı
Azure blob kapsayıcısını veri deposu olarak kaydetmek için kullanın register_azure_blob_container()
.
Aşağıdaki kod veri depoyu credentialless_blob
oluşturur, çalışma alanına kaydeder ws
ve değişkenine blob_datastore
atar. Bu veri deposu, depolama hesabındaki my_container_name
blob kapsayıcıya my-account-name
erişir.
# Create blob datastore without credentials.
blob_datastore = Datastore.register_azure_blob_container(workspace=ws,
datastore_name='credentialless_blob',
container_name='my_container_name',
account_name='my_account_name')
Azure Data Lake Storage Gen1
azure Data Lake Storage 1. Nesil bağlanan bir veri deposu kaydetmek için register_azure_data_lake() kullanın.
Aşağıdaki kod veri depoyu credentialless_adls1
oluşturur, çalışma alanına kaydeder workspace
ve değişkenine adls_dstore
atar. Bu veri deposu Azure Data Lake Storage hesabına erişir adls_storage
.
# Create Azure Data Lake Storage Gen1 datastore without credentials.
adls_dstore = Datastore.register_azure_data_lake(workspace = workspace,
datastore_name='credentialless_adls1',
store_name='adls_storage')
Azure Data Lake Storage 2. Nesil
Azure Data Lake Storage 2. Nesil bağlanan bir veri deposu kaydetmek için register_azure_data_lake_gen2() kullanın.
Aşağıdaki kod veri depoyu credentialless_adls2
oluşturur, çalışma alanına kaydeder ws
ve değişkenine adls2_dstore
atar. Bu veri deposu, depolama hesabındaki myadls2
dosya sistemine tabular
erişir.
# Create Azure Data Lake Storage Gen2 datastore without credentials.
adls2_dstore = Datastore.register_azure_data_lake_gen2(workspace=ws,
datastore_name='credentialless_adls2',
filesystem='tabular',
account_name='myadls2')
Azure SQL veritabanı
Azure SQL veritabanı için register_azure_sql_database() kullanarak Azure SQL veritabanı depolama alanına bağlanan bir veri deposu kaydedin.
Aşağıdaki kod, veri depolarını credentialless_sqldb
ws
oluşturup çalışma alanına kaydeder ve değişkenine sqldb_dstore
atar. Bu veri deposu SQL DB sunucusundaki myserver
veritabanına mydb
erişir.
# Create a sqldatabase datastore without credentials
sqldb_dstore = Datastore.register_azure_sql_database(workspace=ws,
datastore_name='credentialless_sqldb',
server_name='myserver',
database_name='mydb')
Depolama erişim izinleri
Azure'da depolama hizmetinize güvenli bir şekilde bağlandığınızdan emin olmak için Azure Machine Learning ilgili veri depolama alanına erişim izniniz olmasını gerektirir.
Uyarı
Depolama hesaplarına kiracılar arası erişim desteklenmez. Senaryonuz için kiracılar arası erişim gerekiyorsa özel kod çözümüyle ilgili yardım için lütfen adresinden amldatasupport@microsoft.com Azure Machine Learning Veri Desteği ekip diğer adına ulaşın.
Kimlik tabanlı veri erişimi yalnızca aşağıdaki depolama hizmetlerine bağlantıları destekler.
- Azure Blob Depolama
- Azure Data Lake Storage Gen1
- Azure Data Lake Storage Gen2
- Azure SQL Veritabanı
Bu depolama hizmetlerine erişmek için depolama hesabına en az Depolama Blob Veri Okuyucusu erişiminiz olmalıdır. Azure portalı aracılığıyla erişim düzeyinizi yalnızca depolama hesabı sahipleri değiştirebilir.
Kullanıcı kimliğinizi (Microsoft Entra Id) kullanmamayı tercih ederseniz, veri deponuzu oluşturmak için bir çalışma alanı yönetilen sistem kimliği (MSI) izni de vekleyebilirsiniz. Bunu yapmak için depolama hesabı için Sahip izinlerine sahip olmanız ve parametresini grant_workspace_access= True
veri yazmaç yönteminize eklemeniz gerekir.
Bir modeli uzak işlem hedefinde eğittiyseniz ve eğitim için verilere erişmek istiyorsanız, işlem kimliğine depolama hizmetinden en azından Depolama Blobu Veri Okuyucusu rolü verilmelidir. bir işlem kümesinde yönetilen kimliği ayarlamayı öğrenin.
Sanal ağlarla çalışma
Varsayılan olarak, Azure Machine Learning bir güvenlik duvarının arkasında veya sanal ağda bulunan bir depolama hesabıyla iletişim kuramaz.
Depolama hesaplarını yalnızca belirli sanal ağlardan erişime izin verecek şekilde yapılandırabilirsiniz. Bu yapılandırma, verilerin ağ dışına sızmamasını sağlamak için daha fazla adım gerektirir. Bu davranış, kimlik bilgisi tabanlı veri erişimi için aynıdır. Daha fazla bilgi için bkz . Sanal ağ senaryolarını yapılandırma.
Depolama hesabınızın sanal ağ ayarları varsa, gerekli kimlik türünü ve izin erişimini belirler. Örneğin, veri önizleme ve veri profili için sanal ağ ayarları, veri erişiminin kimliğini doğrulamak için hangi kimlik türünün kullanıldığını belirler.
Depolama alanına yalnızca belirli IP'lerin ve alt ağların erişmesine izin verilen senaryolarda Azure Machine Learning, veri önizlemelerini ve profillerini gerçekleştirmek için çalışma alanı MSI'sini kullanır.
Depolama alanınız ADLS 2. Nesil veya Blob ise ve sanal ağ ayarları varsa, müşteriler oluşturma sırasında tanımlanan veri deposu ayarlarına bağlı olarak kullanıcı kimliğini veya çalışma alanı MSI'sini kullanabilir.
Sanal ağ ayarı "Güvenilen hizmetler listesindeki Azure hizmetlerinin bu depolama hesabına erişmesine izin ver" ise Çalışma Alanı MSI kullanılır.
Depolamada veri kullanma
Azure Machine Learning ile depolama alanındaki verilerinizle etkileşim kurarken Azure Machine Learning veri kümelerini kullanmanızı öneririz.
Önemli
Kimlik tabanlı veri erişimi kullanan veri kümeleri otomatik ML denemeleri için desteklenmez.
Veri kümeleri, verilerinizi eğitim gibi makine öğrenmesi görevleri için gevşek olarak değerlendirilen bir tüketilebilir nesneye paketler. Ayrıca veri kümeleriyle Azure Blob Depolama ve Azure Data Lake Storage gibi Azure depolama hizmetlerinden herhangi bir biçimdeki dosyaları bir işlem hedefine indirebilir veya bağlayabilirsiniz.
Veri kümesi oluşturmak için, kimlik tabanlı veri erişimini de kullanan veri depolarından yollara başvurabilirsiniz.
- Temel alınan depolama hesabı türünüz Blob veya ADLS 2. Nesil ise, kullanıcı kimliğiniz Blob Okuyucusu rolüne ihtiyaç duyar.
- Temel alınan depolama alanınız ADLS 1. Nesil ise, depolamanın Erişim Denetim Listesi (ACL) aracılığıyla izinleri ayarlayabilirsiniz.
Aşağıdaki örnekte, blob_datastore
zaten var ve kimlik tabanlı veri erişimini kullanıyor.
blob_dataset = Dataset.Tabular.from_delimited_files(blob_datastore,'test.csv')
Ayrıca veri deposu oluşturmayı atlayabilir ve doğrudan depolama URL'lerinden veri kümeleri oluşturabilirsiniz. Bu işlevsellik şu anda yalnızca Azure bloblarını, Azure Data Lake Storage 1. Nesil ve 2. Nesil'i destekler. Depolama URL'sini temel alan oluşturma için kimlik doğrulaması için yalnızca kullanıcı kimliği gerekir.
blob_dset = Dataset.File.from_files('https://myblob.blob.core.windows.net/may/keras-mnist-fashion/')
Kimlik tabanlı veri erişimiyle oluşturulan bir veri kümesini kullanan bir eğitim işi gönderdiğinizde, eğitim işlem yönetilen kimliği veri erişimi kimlik doğrulaması için kullanılır. Microsoft Entra belirteciniz kullanılmaz. Bu senaryo için, işlem yönetilen kimliğine depolama hizmetinden en azından Depolama Blobu Veri Okuyucusu rolü verildiğinden emin olun. Daha fazla bilgi için bkz . İşlem kümelerinde yönetilen kimliği ayarlama.