Delen via


Verbinding maken voor opslag met behulp van op identiteit gebaseerde gegevenstoegang met SDK v1

In dit artikel leert u hoe u verbinding maakt met opslagservices in Azure met op identiteit gebaseerde gegevenstoegang en Azure Machine Learning-gegevensarchieven, via de Azure Machine Learning SDK voor Python.

Gegevensarchieven gebruiken doorgaans verificatie op basis van referenties om te controleren of u gemachtigd bent om toegang te krijgen tot de opslagservice. Gegevensarchieven bewaren verbindingsgegevens, zoals uw abonnements-id en tokenautorisatie, in de sleutelkluis die is gekoppeld aan de werkruimte. Wanneer u een gegevensarchief maakt dat gebruikmaakt van op identiteit gebaseerde gegevenstoegang, wordt uw Azure-account (Microsoft Entra-token) gebruikt om te bevestigen dat u gemachtigd bent om toegang te krijgen tot de opslagservice. In het scenario voor gegevenstoegang op basis van identiteit worden er geen verificatiereferenties opgeslagen. Alleen de gegevens van het opslagaccount worden opgeslagen in het gegevensarchief.

Zie Verbinding maken met de Azure Machine Learning-studio om gegevensarchieven te maken met op identiteit gebaseerde gegevenstoegang via de gebruikersinterface van Azure Machine Learning-studio.

Zie Verbinding maken voor opslagservices in Azure om gegevensarchieven te maken die gebruikmaken van verificatie op basis van referenties, zoals toegangssleutels of service-principals.

Gegevenstoegang op basis van identiteit in Azure Machine Learning

In twee scenario's kunt u op identiteit gebaseerde gegevenstoegang toepassen in Azure Machine Learning. Deze scenario's zijn geschikt voor op identiteit gebaseerde toegang wanneer u met vertrouwelijke gegevens werkt en u meer gedetailleerd gegevenstoegangsbeheer nodig hebt:

Waarschuwing

Gegevenstoegang op basis van identiteit wordt niet ondersteund voor geautomatiseerde ML-experimenten.

  • Toegang tot opslagservices
  • Machine learning-modellen trainen met persoonlijke gegevens

Toegang tot opslagservices

U kunt verbinding maken met opslagservices via op identiteit gebaseerde gegevenstoegang met Azure Machine Learning-gegevensarchieven of Azure Machine Learning-gegevenssets.

Uw verificatiereferenties worden bewaard in een gegevensarchief, waardoor u gemachtigd bent om toegang te krijgen tot de opslagservice. Wanneer deze referenties zijn geregistreerd via gegevensarchieven, kan elke gebruiker met de rol Lezer van de werkruimte deze ophalen. Deze schaal van toegang kan een beveiligingsprobleem zijn voor sommige organisaties. Meer informatie over de rol lezer van de werkruimte.

Wanneer u op identiteit gebaseerde gegevenstoegang gebruikt, vraagt Azure Machine Learning u om uw Microsoft Entra-token voor verificatie van gegevenstoegang in plaats van uw referenties in het gegevensarchief te bewaren. Met deze methode kunt u gegevenstoegangsbeheer op opslagniveau beheren en referenties beveiligen.

Hetzelfde gedrag is van toepassing wanneer u:

Notitie

Referenties die zijn opgeslagen via verificatie op basis van referenties, zijn abonnements-id's, SAS-tokens (Shared Access Signature) en opslagtoegangssleutel en service-principalgegevens, zoals client-id's en tenant-id's.

Modeltraining voor persoonlijke gegevens

Bepaalde machine learning-scenario's omvatten trainingsmodellen met persoonlijke gegevens. In dergelijke gevallen moeten gegevenswetenschappers trainingswerkstromen uitvoeren zonder blootstelling aan de vertrouwelijke invoergegevens. In dit scenario verifieert een beheerde identiteit van het trainingsreken de toegang tot gegevens. Met deze methode kunnen opslagbeheerders opslagblobgegevenslezer toegang verlenen tot de beheerde identiteit die door het trainingsreken wordt gebruikt om de trainingstaak uit te voeren. De individuele gegevenswetenschappers hoeven geen toegang te krijgen. Ga naar Beheerde identiteit instellen op een rekencluster voor meer informatie.

Vereisten

Gegevensarchieven maken en registreren

Wanneer u een opslagservice in Azure registreert als gegevensarchief, maakt en registreert u dat gegevensarchief automatisch in een specifieke werkruimte. Zie Toegangsmachtigingen voor opslag voor hulp bij de vereiste machtigingstypen . U kunt ook handmatig de opslag maken waarmee u verbinding wilt maken zonder speciale machtigingen en u hebt alleen de naam nodig.

Zie Werken met virtuele netwerken voor meer informatie over het maken van verbinding met gegevensopslag achter virtuele netwerken.

In de volgende code ziet u dat er geen verificatieparameters zijn, zoals sas_token, account_keyen subscription_idde service-principal client_id. Deze weglating geeft aan dat Azure Machine Learning gebruikmaakt van op identiteit gebaseerde gegevenstoegang voor verificatie. Het maken van gegevensarchieven vindt doorgaans interactief plaats in een notebook of via de studio. De verificatie voor gegevenstoegang maakt gebruik van uw Microsoft Entra-token.

Notitie

Namen van gegevensarchieven mogen alleen bestaan uit kleine letters, cijfers en onderstrepingstekens.

Azure-blobcontainer

Als u een Azure Blob-container wilt registreren als een gegevensarchief, gebruikt u register_azure_blob_container().

Met de volgende code wordt het credentialless_blob gegevensarchief gemaakt, geregistreerd bij de ws werkruimte en aan de blob_datastore variabele toegewezen. Dit gegevensarchief heeft toegang tot de my_container_name blobcontainer in het my-account-name opslagaccount.

# 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

Gebruik register_azure_data_lake() om een gegevensarchief te registreren dat verbinding maakt met Azure Data Lake Storage Gen1.

Met de volgende code wordt het credentialless_adls1 gegevensarchief gemaakt, geregistreerd bij de workspace werkruimte en aan de adls_dstore variabele toegewezen. Dit gegevensarchief heeft toegang tot het adls_storage Azure Data Lake Storage-account.

# 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

Gebruik register_azure_data_lake_gen2() om een gegevensarchief te registreren dat verbinding maakt met Azure Data Lake Storage Gen2.

Met de volgende code wordt het credentialless_adls2 gegevensarchief gemaakt, geregistreerd bij de ws werkruimte en aan de adls2_dstore variabele toegewezen. Dit gegevensarchief heeft toegang tot het bestandssysteem tabular in het myadls2 opslagaccount.

# 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 (Azure SQL-database)

Voor een Azure SQL-database gebruikt u register_azure_sql_database() om een gegevensarchief te registreren dat verbinding maakt met een Azure SQL-databaseopslag.

De volgende code maakt en registreert het credentialless_sqldb gegevensarchief aan de ws werkruimte en wijst deze toe aan de variabele. sqldb_dstore Dit gegevensarchief heeft toegang tot de database mydb in de myserver SQL DB-server.

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

Toegangsmachtigingen voor opslag

Om ervoor te zorgen dat u veilig verbinding maakt met uw opslagservice in Azure, moet u voor Azure Machine Learning gemachtigd zijn om toegang te krijgen tot de bijbehorende gegevensopslag.

Waarschuwing

Toegang tussen tenants tot opslagaccounts wordt niet ondersteund. Als toegang tussen tenants nodig is voor uw scenario, neemt u contact op met de alias van het Azure Machine Learning Data Support-team op amldatasupport@microsoft.com voor hulp bij een aangepaste codeoplossing.

Gegevenstoegang op basis van identiteit ondersteunt alleen verbindingen met de volgende opslagservices.

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

Als u toegang wilt krijgen tot deze opslagservices, moet u ten minste toegang hebben tot opslagblobgegevenslezer tot het opslagaccount. Alleen eigenaren van opslagaccounts kunnen uw toegangsniveau wijzigen via Azure Portal.

Als u uw gebruikersidentiteit (Microsoft Entra ID) liever niet gebruikt, kunt u ook een msi-machtiging (Managed System Identity) voor een werkruimte verlenen om het gegevensarchief te maken. Hiervoor moet u eigenaarsmachtigingen hebben voor het opslagaccount en moet u de grant_workspace_access= True parameter toevoegen aan de methode voor het registreren van gegevens.

Als u een model traint op een extern rekendoel en u toegang wilt tot de gegevens voor training, moet de rekenidentiteit ten minste de rol Opslagblobgegevenslezer van de opslagservice krijgen. Meer informatie over het instellen van een beheerde identiteit in een rekencluster.

Werken met virtuele netwerken

Standaard kan Azure Machine Learning niet communiceren met een opslagaccount dat zich achter een firewall of in een virtueel netwerk bevindt.

U kunt opslagaccounts zo configureren dat alleen toegang vanuit specifieke virtuele netwerken is toegestaan. Deze configuratie vereist meer stappen om ervoor te zorgen dat gegevens niet buiten het netwerk lekken. Dit gedrag is hetzelfde voor gegevenstoegang op basis van referenties. Zie Scenario's voor virtuele netwerken configureren voor meer informatie.

Als uw opslagaccount instellingen voor het virtuele netwerk heeft, bepalen ze het benodigde identiteitstype en de benodigde toegang tot machtigingen. Voor voorbeeldgegevens en gegevensprofiel bepalen de instellingen van het virtuele netwerk welk type identiteit wordt gebruikt om gegevenstoegang te verifiëren.

  • In scenario's waarin alleen bepaalde IP-adressen en subnetten toegang hebben tot de opslag, gebruikt Azure Machine Learning de msi van de werkruimte om gegevensvoorbeelden en -profielen uit te voeren.

  • Als uw opslag ADLS Gen 2 of Blob is en instellingen voor het virtuele netwerk heeft, kunnen klanten msi van gebruikersidentiteiten of werkruimten gebruiken, afhankelijk van de instellingen voor het gegevensarchief die tijdens het maken zijn gedefinieerd.

  • Als de instelling voor het virtuele netwerk 'Toestaan dat Azure-services in de lijst met vertrouwde services toegang krijgen tot dit opslagaccount' is, wordt werkruimte-MSI gebruikt.

Gegevens in opslag gebruiken

U wordt aangeraden Azure Machine Learning-gegevenssets te gebruiken wanneer u met Azure Machine Learning communiceert met uw gegevens in de opslag.

Belangrijk

Gegevenssets die gebruikmaken van gegevenstoegang op basis van identiteiten, worden niet ondersteund voor geautomatiseerde ML-experimenten.

Gegevenssets verpakken uw gegevens in een lazily geëvalueerd verbruiksobject voor machine learning-taken zoals training. Met gegevenssets kunt u ook bestanden van elke indeling van Azure Storage-services, zoals Azure Blob Storage en Azure Data Lake Storage, downloaden of koppelen aan een rekendoel.

Als u een gegevensset wilt maken, kunt u verwijzen naar paden uit gegevensarchieven die ook op identiteit gebaseerde gegevenstoegang gebruiken.

  • Als uw onderliggende opslagaccounttype Blob of ADLS Gen 2 is, heeft uw gebruikersidentiteit de rol bloblezer nodig.
  • Als uw onderliggende opslag ADLS Gen 1 is, kunt u machtigingen instellen via de toegangsbeheerlijst (ACL) van de opslag.

In het volgende voorbeeld blob_datastore bestaat al toegang tot gegevens op basis van identiteiten.

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

U kunt het maken van gegevensarchieven ook overslaan en gegevenssets rechtstreeks vanuit opslag-URL's maken. Deze functionaliteit ondersteunt momenteel alleen Azure-blobs en Azure Data Lake Storage Gen1 en Gen2. Voor het maken op basis van de opslag-URL is alleen de gebruikersidentiteit nodig om te verifiëren.

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

Wanneer u een trainingstaak verzendt die gebruikmaakt van een gegevensset die is gemaakt met gegevenstoegang op basis van identiteit, wordt de beheerde identiteit van de training berekend voor verificatie van gegevenstoegang gebruikt. Uw Microsoft Entra-token wordt niet gebruikt. Voor dit scenario moet u ervoor zorgen dat de beheerde identiteit van de berekening ten minste de rol Opslagblobgegevenslezer van de opslagservice krijgt. Zie Beheerde identiteit instellen voor rekenclusters voor meer informatie.

Volgende stappen