Dela via


Ansluta till lagring med hjälp av identitetsbaserad dataåtkomst med SDK v1

I den här artikeln får du lära dig hur du ansluter till lagringstjänster i Azure med identitetsbaserad dataåtkomst och Azure Machine Learning-datalager via Azure Machine Learning SDK för Python.

Vanligtvis använder datalager autentiseringsbaserad autentisering för att verifiera att du har behörighet att komma åt lagringstjänsten. Datalager behåller anslutningsinformation, till exempel ditt prenumerations-ID och tokenauktorisering, i nyckelvalvet som är associerat med arbetsytan. När du skapar ett datalager som använder identitetsbaserad dataåtkomst används ditt Azure-konto (Microsoft Entra-token) för att bekräfta att du har behörighet att komma åt lagringstjänsten. I scenariot för identitetsbaserad dataåtkomst sparas inga autentiseringsuppgifter. Endast lagringskontoinformationen lagras i datalagringen.

Information om hur du skapar datalager med identitetsbaserad dataåtkomst via Azure Machine Learning-studio användargränssnittet finns i Ansluta till data med Azure Machine Learning-studio.

Information om hur du skapar datalager som använder autentiseringsbaserad autentisering, t.ex. åtkomstnycklar eller tjänstens huvudnamn, finns i Ansluta till lagringstjänster i Azure.

Identitetsbaserad dataåtkomst i Azure Machine Learning

Du kan använda identitetsbaserad dataåtkomst i Azure Machine Learning i två scenarier. De här scenarierna passar bra för identitetsbaserad åtkomst när du arbetar med konfidentiella data och du behöver mer detaljerad dataåtkomsthantering:

Varning

Identitetsbaserad dataåtkomst stöds inte för automatiserade ML-experiment.

  • Åtkomst till lagringstjänster
  • Träna maskininlärningsmodeller med privata data

Åtkomst till lagringstjänster

Du kan ansluta till lagringstjänster via identitetsbaserad dataåtkomst med Azure Machine Learning-datalager eller Azure Machine Learning-datauppsättningar.

Dina autentiseringsuppgifter sparas i ett datalager, vilket säkerställer att du har behörighet att komma åt lagringstjänsten. När dessa autentiseringsuppgifter registreras via datalager kan alla användare med arbetsytans läsarroll hämta dem. Den här omfattningen av åtkomst kan vara ett säkerhetsproblem för vissa organisationer. Läs mer om rollen läsare för arbetsytan.

När du använder identitetsbaserad dataåtkomst uppmanar Azure Machine Learning dig att ange din Microsoft Entra-token för dataåtkomstautentisering i stället för att behålla dina autentiseringsuppgifter i datalagringen. Den metoden möjliggör hantering av dataåtkomst på lagringsnivå och upprätthåller säkerhet för autentiseringsuppgifter.

Samma beteende gäller när du:

Kommentar

Autentiseringsuppgifter som lagras via autentiseringsbaserad autentisering omfattar prenumerations-ID: er, SAS-token (signatur för delad åtkomst) och information om lagringsåtkomstnyckel och tjänstens huvudnamn, till exempel klient-ID:t och klient-ID:t.

Modellträning för privata data

Vissa maskininlärningsscenarier omfattar träningsmodeller med privata data. I sådana fall måste dataexperter köra träningsarbetsflöden utan att exponeras för konfidentiella indata. I det här scenariot autentiserar en hanterad identitet för träningsberäkningen dataåtkomsten. Med den här metoden kan lagringsadministratörer ge Storage Blob Data Reader åtkomst till den hanterade identitet som träningsberäkningen använder för att köra träningsjobbet. De enskilda dataexperterna behöver inte beviljas åtkomst. Mer information finns i Konfigurera hanterad identitet i ett beräkningskluster.

Förutsättningar

Skapa och registrera datalager

När du registrerar en lagringstjänst i Azure som ett datalager skapar och registrerar du automatiskt datalagringen på en specifik arbetsyta. Se Behörigheter för lagringsåtkomst för vägledning om nödvändiga behörighetstyper. Du kan också skapa lagringen som du vill ansluta till manuellt utan några särskilda behörigheter, och du behöver bara namnet.

Mer information om hur du ansluter till datalagring bakom virtuella nätverk finns i Arbeta med virtuella nätverk .

Observera avsaknaden av autentiseringsparametrar som sas_token, account_key, subscription_idoch tjänstens huvudnamn client_idi följande kod. Den här utelämnandet anger att Azure Machine Learning använder identitetsbaserad dataåtkomst för autentisering. Skapande av datalager sker vanligtvis interaktivt i en notebook-fil eller via studion. Autentiseringen för dataåtkomst använder din Microsoft Entra-token.

Kommentar

Datalagernamn bör endast bestå av gemener, siffror och understreck.

Azure Blob-container

Om du vill registrera en Azure Blob-container som ett datalager använder du register_azure_blob_container().

Följande kod skapar credentialless_blob datalagret, registrerar det till ws arbetsytan och tilldelar det till variabeln blob_datastore . Det här dataarkivet my_container_name kommer åt blobcontainern på lagringskontot my-account-name .

# 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

Använd register_azure_data_lake() för att registrera ett datalager som ansluter till Azure Data Lake Storage Gen1.

Följande kod skapar credentialless_adls1 datalagret, registrerar det till workspace arbetsytan och tilldelar det till variabeln adls_dstore . Det här dataarkivet adls_storage har åtkomst till Azure Data Lake Storage-kontot.

# 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

Använd register_azure_data_lake_gen2() för att registrera ett datalager som ansluter till Azure Data Lake Storage Gen2.

Följande kod skapar credentialless_adls2 datalagret, registrerar det till ws arbetsytan och tilldelar det till variabeln adls2_dstore . Det här dataarkivet kommer åt filsystemet tabular i lagringskontot myadls2 .

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

För en Azure SQL-databas använder du register_azure_sql_database() för att registrera ett datalager som ansluter till en Azure SQL-databaslagring.

Följande kod skapar och registrerar credentialless_sqldb datalagret på ws arbetsytan och tilldelar det till variabeln . sqldb_dstore Det här dataarkivet kommer åt databasen mydbmyserver SQL DB-servern.

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

Behörigheter för lagringsåtkomst

För att säkerställa att du ansluter säkert till din lagringstjänst i Azure kräver Azure Machine Learning att du har behörighet att komma åt motsvarande datalagring.

Varning

Åtkomst mellan klientorganisationer till lagringskonton stöds inte. Om åtkomst mellan klientorganisationer behövs för ditt scenario kontaktar du Azure Machine Learning Data Support-teamets alias för amldatasupport@microsoft.com att få hjälp med en anpassad kodlösning.

Identitetsbaserad dataåtkomst stöder endast anslutningar till följande lagringstjänster.

  • Azure Blob Storage
  • Azure Data Lake Storage Gen1
  • Azure Data Lake Storage Gen2
  • Azure SQL Database

För att få åtkomst till dessa lagringstjänster måste du minst ha åtkomst till lagringskontot för Blob Data Reader . Endast lagringskontoägare kan ändra åtkomstnivån via Azure Portal.

Om du föredrar att inte använda din användaridentitet (Microsoft Entra-ID) kan du även ge en msi-behörighet (managed-system identity) för arbetsytan för att skapa datalagringen. För att göra det måste du ha ägarbehörighet till lagringskontot och du måste lägga till parametern i grant_workspace_access= True dataregistreringsmetoden.

Om du tränar en modell på ett fjärrberäkningsmål och vill komma åt data för träning, måste beräkningsidentiteten beviljas minst rollen Storage Blob Data Reader från lagringstjänsten. Lär dig hur du konfigurerar hanterad identitet i ett beräkningskluster.

Arbeta med virtuella nätverk

Som standard kan Azure Machine Learning inte kommunicera med ett lagringskonto som finns bakom en brandvägg eller i ett virtuellt nätverk.

Du kan konfigurera lagringskonton för att endast tillåta åtkomst inifrån specifika virtuella nätverk. Den här konfigurationen kräver fler steg för att säkerställa att data inte läcker utanför nätverket. Det här beteendet är detsamma för autentiseringsbaserad dataåtkomst. Mer information finns i Konfigurera scenarier för virtuella nätverk.

Om lagringskontot har inställningar för virtuellt nätverk avgör de vilken identitetstyp och behörighet som krävs. För dataförhandsgranskning och dataprofil avgör till exempel inställningarna för det virtuella nätverket vilken typ av identitet som används för att autentisera dataåtkomst.

  • I scenarier där endast vissa IP-adresser och undernät får åtkomst till lagringen använder Azure Machine Learning arbetsytans MSI för att utföra dataförhandsgranskningar och profiler.

  • Om din lagring är ADLS Gen 2 eller Blob och har inställningar för virtuellt nätverk kan kunderna använda antingen användaridentitet eller arbetsytans MSI beroende på de datalagerinställningar som definierades när de skapades.

  • Om inställningen för virtuellt nätverk är "Tillåt att Azure-tjänster i listan över betrodda tjänster får åtkomst till det här lagringskontot" används MSI för arbetsyta.

Använda data i lagring

Vi rekommenderar att du använder Azure Machine Learning-datauppsättningar när du interagerar med dina data i lagringen med Azure Machine Learning.

Viktigt!

Datauppsättningar som använder identitetsbaserad dataåtkomst stöds inte för automatiserade ML-experiment.

Datauppsättningar paketera dina data i ett lätt utvärderat förbrukningsobjekt för maskininlärningsuppgifter som träning. Med datauppsättningar kan du också ladda ned eller montera filer i valfritt format från Azure Storage-tjänster som Azure Blob Storage och Azure Data Lake Storage till ett beräkningsmål.

Om du vill skapa en datauppsättning kan du referera till sökvägar från datalager som också använder identitetsbaserad dataåtkomst.

  • Om din underliggande lagringskontotyp är Blob eller ADLS Gen 2 behöver din användaridentitet rollen BlobLäsare.
  • Om din underliggande lagring är ADLS Gen 1 kan du ange behörigheter via lagringens åtkomstkontrollista (ACL).

I följande exempel blob_datastore finns det redan och använder identitetsbaserad dataåtkomst.

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

Du kan också hoppa över att skapa datalager och skapa datauppsättningar direkt från lagrings-URL:er. Den här funktionen stöder för närvarande endast Azure-blobar och Azure Data Lake Storage Gen1 och Gen2. För att skapa baserat på lagrings-URL krävs endast användaridentiteten för att autentisera.

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

När du skickar ett träningsjobb som använder en datauppsättning som skapats med identitetsbaserad dataåtkomst används den hanterade identiteten för träningsberäkning för autentisering med dataåtkomst. Din Microsoft Entra-token används inte. I det här scenariot kontrollerar du att den hanterade identiteten för beräkningen beviljas minst rollen Storage Blob Data Reader från lagringstjänsten. Mer information finns i Konfigurera hanterad identitet i beräkningskluster.

Nästa steg