Nawiązywanie połączenia z magazynem przy użyciu dostępu do danych opartych na tożsamościach za pomocą zestawu SDK w wersji 1

W tym artykule dowiesz się, jak połączyć się z usługami magazynu na platformie Azure przy użyciu dostępu do danych opartych na tożsamościach i magazynów danych usługi Azure Machine Learning za pośrednictwem zestawu SDK usługi Azure Machine Learning dla języka Python.

Zazwyczaj magazyny danych używają uwierzytelniania opartego na poświadczeniach, aby sprawdzić, czy masz uprawnienia dostępu do usługi magazynu. Magazyny danych przechowują informacje o połączeniu, takie jak identyfikator subskrypcji i autoryzacja tokenu, w magazynie kluczy skojarzonym z obszarem roboczym. Podczas tworzenia magazynu danych korzystającego z dostępu do danych opartych na tożsamości twoje konto platformy Azure (token Microsoft Entra) jest używane do potwierdzenia, że masz uprawnienia dostępu do usługi magazynu. W scenariuszu dostępu do danych opartych na tożsamości nie są zapisywane żadne poświadczenia uwierzytelniania. Tylko informacje o koncie magazynu są przechowywane w magazynie danych.

Aby utworzyć magazyny danych z dostępem opartym na tożsamości za pośrednictwem interfejsu użytkownika usługi Azure Machine Learning Studio, zobacz Łączenie się z danymi za pomocą usługi Azure Machine Learning Studio.

Aby utworzyć magazyny danych korzystające z uwierzytelniania opartego na poświadczeniach, takie jak klucze dostępu lub jednostki usługi, zobacz Łączenie z usługami magazynu na platformie Azure.

Dostęp do danych opartych na tożsamościach w usłudze Azure Machine Learning

Dostęp do danych opartych na tożsamościach można zastosować w usłudze Azure Machine Learning w dwóch scenariuszach. Te scenariusze są dobrym rozwiązaniem w przypadku dostępu opartego na tożsamościach podczas pracy z poufnymi danymi i potrzebujesz bardziej szczegółowego zarządzania dostępem do danych:

Ostrzeżenie

Dostęp do danych opartych na tożsamościach nie jest obsługiwany w przypadku eksperymentów zautomatyzowanego uczenia maszynowego.

  • Uzyskiwanie dostępu do usług magazynu
  • Trenowanie modeli uczenia maszynowego przy użyciu danych prywatnych

Uzyskiwanie dostępu do usług magazynu

Możesz nawiązać połączenie z usługami magazynu za pośrednictwem dostępu opartego na tożsamościach za pomocą magazynów danych usługi Azure Machine Learning lub zestawów danych usługi Azure Machine Learning.

Poświadczenia uwierzytelniania są przechowywane w magazynie danych, co gwarantuje, że masz uprawnienia dostępu do usługi magazynu. Po zarejestrowaniu tych poświadczeń za pośrednictwem magazynów danych każdy użytkownik z rolą Czytelnik obszaru roboczego może je pobrać. Ta skala dostępu może być problemem zabezpieczeń dla niektórych organizacji. Dowiedz się więcej o roli Czytelnik obszaru roboczego.

W przypadku korzystania z dostępu do danych opartych na tożsamości usługa Azure Machine Learning wyświetla monit o podanie tokenu microsoft Entra na potrzeby uwierzytelniania dostępu do danych zamiast przechowywania poświadczeń w magazynie danych. Takie podejście umożliwia zarządzanie dostępem do danych na poziomie magazynu i zapewnia bezpieczeństwo poświadczeń.

To samo zachowanie ma zastosowanie w następujących przypadkach:

Uwaga

Poświadczenia przechowywane za pośrednictwem uwierzytelniania opartego na poświadczeniach obejmują identyfikatory subskrypcji, tokeny sygnatury dostępu współdzielonego (SAS) oraz informacje o kluczu dostępu do magazynu i jednostce usługi, takie jak identyfikatory klientów i identyfikatory dzierżawy.

Trenowanie modelu na danych prywatnych

Niektóre scenariusze uczenia maszynowego obejmują trenowanie modeli z danymi prywatnymi. W takich przypadkach analitycy danych muszą uruchamiać przepływy pracy trenowania bez ujawnienia poufnych danych wejściowych. W tym scenariuszu tożsamość zarządzana środowiska obliczeniowego trenowania uwierzytelnia dostęp do danych. Takie podejście umożliwia administratorom magazynu przyznanie czytelnikowi danych obiektu blob usługi Storage dostępu do tożsamości zarządzanej używanej przez środowisko obliczeniowe trenowania do uruchamiania zadania szkoleniowego. Indywidualni analitycy danych nie muszą mieć dostępu. Aby uzyskać więcej informacji, zobacz Konfigurowanie tożsamości zarządzanej w klastrze obliczeniowym.

Wymagania wstępne

Tworzenie i rejestrowanie magazynów danych

Gdy zarejestrujesz usługę magazynu na platformie Azure jako magazyn danych, automatycznie utworzysz i zarejestrujesz ten magazyn danych w określonym obszarze roboczym. Zobacz Uprawnienia dostępu do magazynu, aby uzyskać wskazówki dotyczące wymaganych typów uprawnień. Możesz również ręcznie utworzyć magazyn, z którym chcesz nawiązać połączenie bez żadnych specjalnych uprawnień, i po prostu potrzebujesz nazwy.

Aby uzyskać szczegółowe informacje na temat nawiązywania połączenia z magazynem danych za sieciami wirtualnymi, zobacz Praca z sieciami wirtualnymi.

W poniższym kodzie zwróć uwagę na brak parametrów uwierzytelniania, takich jak sas_token, account_key, subscription_idi jednostka usługi client_id. To pominięcie wskazuje, że usługa Azure Machine Learning używa dostępu do danych opartych na tożsamościach do uwierzytelniania. Tworzenie magazynów danych zwykle odbywa się interaktywnie w notesie lub za pośrednictwem programu Studio. Uwierzytelnianie dostępu do danych używa tokenu firmy Microsoft Entra.

Uwaga

Nazwy magazynu danych powinny składać się tylko z małych liter, cyfr i podkreśleń.

Kontener obiektów Blob platformy Azure

Aby zarejestrować kontener obiektów blob platformy Azure jako magazyn danych, użyj polecenia register_azure_blob_container().

Poniższy kod tworzy credentialless_blob magazyn danych, rejestruje go w ws obszarze roboczym i przypisuje go do zmiennej blob_datastore . Ten magazyn danych uzyskuje dostęp do kontenera my_container_name obiektów blob na my-account-name koncie magazynu.

# 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')

Usługa Azure Data Lake Storage 1. generacji

Użyj register_azure_data_lake(), aby zarejestrować magazyn danych łączący się z usługą Azure Data Lake Storage Gen1.

Poniższy kod tworzy credentialless_adls1 magazyn danych, rejestruje go w workspace obszarze roboczym i przypisuje go do zmiennej adls_dstore . Ten magazyn danych uzyskuje adls_storage dostęp do konta usługi Azure Data Lake 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 Gen2

Użyj register_azure_data_lake_gen2(), aby zarejestrować magazyn danych łączący się z usługą Azure Data Lake Storage Gen2.

Poniższy kod tworzy credentialless_adls2 magazyn danych, rejestruje go w ws obszarze roboczym i przypisuje go do zmiennej adls2_dstore . Ten magazyn danych uzyskuje dostęp do systemu tabular plików na myadls2 koncie magazynu.

# 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 database

W przypadku bazy danych Azure SQL Database użyj register_azure_sql_database(), aby zarejestrować magazyn danych łączący się z magazynem bazy danych Azure SQL Database.

Poniższy kod tworzy i rejestruje credentialless_sqldb magazyn danych w ws obszarze roboczym i przypisuje go do zmiennej sqldb_dstore. Ten magazyn danych uzyskuje dostęp do bazy danych na myserver serwerze bazy danych mydb SQL.

# 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')                                                       
                                                   

Uprawnienia dostępu do magazynu

Aby zapewnić bezpieczne połączenie z usługą magazynu na platformie Azure, usługa Azure Machine Learning wymaga uprawnień dostępu do odpowiedniego magazynu danych.

Ostrzeżenie

Dostęp między dzierżawami do kont magazynu nie jest obsługiwany. Jeśli w twoim scenariuszu wymagany jest dostęp między dzierżawami, skontaktuj się z aliasem zespołu pomocy technicznej ds. danych usługi Azure Machine Learning, amldatasupport@microsoft.com aby uzyskać pomoc dotyczącą niestandardowego rozwiązania kodu.

Dostęp do danych oparty na tożsamości obsługuje połączenia tylko z następującymi usługami magazynu.

  • Azure Blob Storage
  • Usługa Azure Data Lake Storage 1. generacji
  • Usługa Azure Data Lake Storage 2. generacji
  • Azure SQL Database

Aby uzyskać dostęp do tych usług magazynu, musisz mieć co najmniej dostęp czytelnika danych obiektu blob usługi Storage do konta magazynu. Tylko właściciele kont magazynu mogą zmienić poziom dostępu za pośrednictwem witryny Azure Portal.

Jeśli wolisz nie używać tożsamości użytkownika (Microsoft Entra ID), możesz również przyznać obszarowi roboczemu uprawnienie tożsamości zarządzanego systemu (MSI) do tworzenia magazynu danych. Aby to zrobić, musisz mieć uprawnienia właściciela do konta magazynu i musisz dodać parametr do metody rejestrowania grant_workspace_access= True danych.

Jeśli wytrenujesz model na zdalnym obiekcie docelowym obliczeniowym i chcesz uzyskać dostęp do danych na potrzeby trenowania, tożsamość obliczeniowa musi mieć co najmniej rolę Czytelnik danych obiektu blob usługi Storage z usługi storage. Dowiedz się, jak skonfigurować tożsamość zarządzaną w klastrze obliczeniowym.

Praca z sieciami wirtualnymi

Domyślnie usługa Azure Machine Learning nie może komunikować się z kontem magazynu znajdującym się za zaporą ani w sieci wirtualnej.

Konta magazynu można skonfigurować tak, aby zezwalały na dostęp tylko z określonych sieci wirtualnych. Ta konfiguracja wymaga wykonania większej liczby kroków, aby upewnić się, że dane nie wyciekają poza sieć. To zachowanie jest takie samo w przypadku dostępu do danych opartych na poświadczeniach. Aby uzyskać więcej informacji, zobacz How to configure virtual network scenarios (Jak skonfigurować scenariusze sieci wirtualnej).

Jeśli konto magazynu ma ustawienia sieci wirtualnej, określają wymagany typ tożsamości i dostęp do uprawnień. Na przykład w przypadku podglądu danych i profilu danych ustawienia sieci wirtualnej określają, jakiego typu tożsamość jest używana do uwierzytelniania dostępu do danych.

  • W scenariuszach, w których tylko niektóre adresy IP i podsieci mogą uzyskiwać dostęp do magazynu, usługa Azure Machine Learning używa tożsamości usługi Zarządzanej obszaru roboczego do wykonywania podglądów danych i profilów.

  • Jeśli magazyn jest usługą ADLS Gen 2 lub obiektem blob i ma ustawienia sieci wirtualnej, klienci mogą używać tożsamości użytkownika lub tożsamości obszaru roboczego usługi zarządzanej w zależności od ustawień magazynu danych zdefiniowanych podczas tworzenia.

  • Jeśli ustawienie sieci wirtualnej to "Zezwalaj usługom platformy Azure na liście zaufanych usług na dostęp do tego konta magazynu", zostanie użyta tożsamość usługi zarządzanej obszaru roboczego.

Używanie danych w magazynie

Zalecamy używanie zestawów danych usługi Azure Machine Learning podczas interakcji z danymi w magazynie z usługą Azure Machine Learning.

Ważne

Zestawy danych korzystające z dostępu do danych opartych na tożsamościach nie są obsługiwane w przypadku eksperymentów zautomatyzowanego uczenia maszynowego.

Zestawy danych pakują dane do leniwie ocenianego obiektu eksploatacyjnego na potrzeby zadań uczenia maszynowego, takich jak trenowanie. Ponadto za pomocą zestawów danych można pobierać lub instalować pliki dowolnego formatu z usług Azure Storage, takich jak Azure Blob Storage i Azure Data Lake Storage, do docelowego obiektu obliczeniowego.

Aby utworzyć zestaw danych, możesz odwoływać się do ścieżek z magazynów danych, które również korzystają z dostępu do danych opartych na tożsamościach.

  • Jeśli podstawowym typem konta magazynu jest blob lub ADLS Gen 2, tożsamość użytkownika wymaga roli Czytelnik obiektów blob.
  • Jeśli podstawowym magazynem jest usługa ADLS Gen 1, możesz ustawić uprawnienia za pośrednictwem listy kontroli dostępu (ACL) magazynu.

W poniższym przykładzie blob_datastore już istnieje i korzysta z dostępu do danych opartych na tożsamościach.

blob_dataset = Dataset.Tabular.from_delimited_files(blob_datastore,'test.csv') 

Możesz również pominąć tworzenie magazynu danych i utworzyć zestawy danych bezpośrednio z adresów URL magazynu. Ta funkcja obsługuje obecnie tylko obiekty blob platformy Azure i usługi Azure Data Lake Storage Gen1 i Gen2. Do utworzenia na podstawie adresu URL magazynu wymagana jest tylko tożsamość użytkownika do uwierzytelnienia.

blob_dset = Dataset.File.from_files('https://myblob.blob.core.windows.net/may/keras-mnist-fashion/')

Podczas przesyłania zadania szkoleniowego, które korzysta z zestawu danych utworzonego przy użyciu dostępu do danych opartych na tożsamościach, trenowanie tożsamości zarządzanej obliczeniowej jest używane do uwierzytelniania dostępu do danych. Token entra firmy Microsoft nie jest używany. W tym scenariuszu upewnij się, że tożsamość zarządzana zasobów obliczeniowych ma co najmniej rolę Czytelnik danych obiektu blob usługi Storage z usługi storage. Aby uzyskać więcej informacji, zobacz Konfigurowanie tożsamości zarządzanej w klastrach obliczeniowych.

Następne kroki