Verbinding maken met 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 gegevens met de Azure Machine Learning-studio om gegevensarchieven te maken met op identiteit gebaseerde gegevenstoegang via de Azure Machine Learning-studio-gebruikersinterface.
Als u gegevensarchieven wilt maken die gebruikmaken van verificatie op basis van referenties, zoals toegangssleutels of service-principals, raadpleegt u Verbinding maken met opslagservices in Azure.
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:
- Maak rechtstreeks vanuit opslag-URL's een gegevensset.
- Werk interactief met gegevens via een Jupyter Notebook op uw lokale computer of rekenproces.
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
Een Azure-abonnement. Als u nog geen abonnement op Azure hebt, maak dan een gratis account aan voordat u begint. Probeer de gratis of betaalde versie van Azure Machine Learning.
Een Azure-opslagaccount met een ondersteund opslagtype. Deze opslagtypen worden ondersteund:
Een Azure Machine Learning-werkruimte.
Maak een Azure Machine Learning-werkruimte of gebruik een bestaande werkruimte via de Python SDK.
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_key
en subscription_id
de 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.