Beheerde Azure-identiteiten gebruiken in Unity Catalog voor toegang tot opslag
In dit artikel wordt beschreven hoe u door Azure beheerde identiteiten gebruikt voor het maken van verbinding met opslagcontainers namens Unity Catalog-gebruikers.
Wat zijn door Azure beheerde identiteiten?
Unity Catalog kan worden geconfigureerd voor het gebruik van een door Azure beheerde identiteit voor toegang tot opslagcontainers namens Unity Catalog-gebruikers. Beheerde identiteiten bieden een identiteit die toepassingen kunnen gebruiken wanneer ze verbinding maken met resources die ondersteuning bieden voor Microsoft Entra ID-verificatie.
U kunt beheerde identiteiten in Unity Catalog gebruiken ter ondersteuning van twee primaire use cases:
- Als identiteit om verbinding te maken met de beheerde opslagaccounts van de metastore (waar beheerde tabellen worden opgeslagen).
- Als identiteit om verbinding te maken met andere externe opslagaccounts (voor bestandstoegang of voor toegang tot bestaande gegevenssets via externe tabellen).
Het configureren van Unity Catalog met een beheerde identiteit heeft de volgende voordelen ten opzichte van het configureren van Unity Catalog met een service-principal:
Voor beheerde identiteiten hoeft u geen referenties te onderhouden of geheimen te roteren.
Als uw Azure Databricks-werkruimte is geïmplementeerd in uw eigen VNet (ook wel VNet-injectie genoemd) en u een opslagfirewall gebruikt om een Azure Data Lake Storage Gen2-account te beveiligen, kunt u de beheerde identiteit gebruiken om de werkruimte te verbinden met dat account. Zie (Aanbevolen voor door VNet geïnjecteerde werkruimten) Vertrouwde toegang tot Azure Storage configureren op basis van uw beheerde identiteit.
Notitie
U kunt geen opslagfirewall gebruiken in een standaardimplementatie van Azure Databricks.
Een beheerde identiteit configureren voor Unity Catalog
Als u een beheerde identiteit wilt configureren voor gebruik met Unity Catalog, maakt u eerst een toegangsconnector voor Azure Databricks in Azure. De toegangsconnector wordt standaard geïmplementeerd met een door het systeem toegewezen beheerde identiteit. U kunt in plaats daarvan kiezen om een door de gebruiker toegewezen beheerde identiteit toe te voegen. Vervolgens verleent u de beheerde identiteit toegang tot uw Azure Data Lake Storage Gen2-account en gebruikt u de toegangsconnector wanneer u een Unity Catalog-metastore of opslagreferentie maakt.
Vereisten
De Azure-gebruiker of service-principal die de toegangsconnector maakt, moet:
- Wees inzender of eigenaar van een Azure-resourcegroep.
De Azure-gebruiker of -service-principal die de beheerde identiteit aan het opslagaccount verleent, moet:
- Wees een eigenaar of een gebruiker met de azure RBAC-rol Gebruikerstoegangsbeheerder in het opslagaccount.
Stap 1: Een toegangsconnector maken voor Azure Databricks
De Access Connector voor Azure Databricks is een eigen Azure-resource waarmee u beheerde identiteiten kunt verbinden met een Azure Databricks-account.
Elke toegangsconnector voor Azure Databricks kan één door het systeem toegewezen beheerde identiteit of één door de gebruiker toegewezen beheerde identiteit bevatten. Als u meerdere beheerde identiteiten wilt gebruiken, maakt u een afzonderlijke toegangsconnector voor elke identiteit.
Een door het systeem toegewezen beheerde identiteit gebruiken
Meld u aan bij Azure Portal als inzender of eigenaar van een resourcegroep.
Klik op + Maken of Een nieuwe resource maken.
Zoek naar Access Connector voor Azure Databricks en selecteer deze.
Klik op Create.
Accepteer, selecteer of voer waarden in voor de volgende velden op het tabblad Basisbeginselen :
- Abonnement: Dit is het Azure-abonnement waarin de toegangsconnector wordt gemaakt. De standaardwaarde is het Azure-abonnement dat u momenteel gebruikt. Dit kan elk abonnement in de tenant zijn.
- Resourcegroep: dit is de Azure-resourcegroep waarin de toegangsconnector wordt gemaakt.
- Naam: Voer een naam in die het doel van de connector aangeeft.
- Regio: Dit moet dezelfde regio zijn als het opslagaccount waarmee u verbinding maakt.
Klik op Controleren + maken.
Wanneer u het bericht Validatie geslaagd ziet, klikt u op Maken.
Wanneer de implementatie slaagt, wordt de toegangsconnector geïmplementeerd met een door het systeem toegewezen beheerde identiteit.
Nadat de implementatie is voltooid, klikt u op Ga naar resource.
Noteer de resource-id.
De resource-id heeft de volgende indeling:
/subscriptions/12f34567-8ace-9c10-111c-aea8eba12345c/resourceGroups/<resource-group>/providers/Microsoft.Databricks/accessConnectors/<connector-name>
Een door de gebruiker toegewezen beheerde identiteit gebruiken
Als u nog geen door de gebruiker toegewezen beheerde identiteit hebt, maakt u een nieuwe identiteit en noteert u de resource-id.
Zie Door de gebruiker toegewezen beheerde identiteiten beheren.
Meld u aan bij Azure Portal als inzender of eigenaar van een resourcegroep.
De resourcegroep moet zich in dezelfde regio bevinden als het opslagaccount waarmee u verbinding wilt maken.
Zoek naar Een aangepaste sjabloon implementeren en selecteer deze.
Selecteer Uw eigen sjabloon bouwen en plak de volgende sjabloon in de editor:
{ "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#", "contentVersion": "1.0.0.0", "parameters": { "connectorName": { "defaultValue": "testConnector", "type": "String", "metadata": { "description": "The name of the Azure Databricks Access Connector to create." } }, "accessConnectorRegion": { "defaultValue": "[resourceGroup().location]", "type": "String", "metadata": { "description": "Location for the access connector resource." } }, "userAssignedManagedIdentiy": { "type": "String", "metadata": { "description": "The resource Id of the user assigned managed identity." } } }, "resources": [ { "type": "Microsoft.Databricks/accessConnectors", "apiVersion": "2023-05-01", "name": "[parameters('connectorName')]", "location": "[parameters('accessConnectorRegion')]", "identity": { "type": "UserAssigned", "userAssignedIdentities": { "[parameters('userAssignedManagedIdentiy')]": {} } } } ] }
Accepteer, selecteer of voer waarden in voor de volgende velden op het tabblad Basisbeginselen:
- Abonnement: het Azure-abonnement waarin de toegangsconnector wordt gemaakt. De standaardwaarde is het Azure-abonnement dat u momenteel gebruikt. Dit kan elk abonnement in de tenant zijn.
- Resourcegroep: Een resourcegroep in dezelfde regio als het opslagaccount waarmee u verbinding maakt.
- Naam: Een naam die het doel van de connector aangeeft.
- Regio: Dit moet dezelfde regio zijn als het opslagaccount waarmee u verbinding maakt. U kunt de vooraf ingevulde waarde [resourceGroup().location] kiezen als de resourcegroep is gemaakt in dezelfde regio als het opslagaccount waarmee u verbinding maakt.
- Door de gebruiker toegewezen beheerde identiteit: de resource-id van de door de gebruiker toegewezen beheerde identiteit die u wilt gebruiken.
Klik op Controleren + maken.
Wanneer u het bericht Validatie geslaagd ziet, klikt u op Maken.
Nadat de implementatie is voltooid, klikt u op Ga naar resource.
Noteer de resource-id.
De resource-id heeft de volgende indeling:
/subscriptions/12f34567-8ace-9c10-111c-aea8eba12345c/resourceGroups/<resource-group>/providers/Microsoft.Databricks/accessConnectors/<connector-name>
Stap 2: De beheerde identiteit toegang verlenen tot het opslagaccount
Als u de machtigingen in deze stap wilt verlenen, moet u de Azure RBAC-rol Eigenaar of Gebruikertoegangsbeheerder voor uw opslagaccount hebben.
- Meld u aan bij uw Azure Data Lake Storage Gen2-account.
- Ga naar Toegangsbeheer (IAM), klik op + Toevoegen en selecteer Roltoewijzing toevoegen.
- Selecteer de rol Inzender voor opslagblobgegevens en klik op Volgende.
- Selecteer beheerde identiteit onder Toegang toewijzen aan.
- Klik op +Leden selecteren en selecteer toegangsconnector voor Azure Databricks of door de gebruiker toegewezen beheerde identiteit.
- Zoek de naam van uw connector of door de gebruiker toegewezen identiteit, selecteer deze en klik op Controleren en toewijzen.
U kunt de toegang tot het opslagaccount ook beperken door de beheerde identiteit toegang te geven tot een specifieke container. Volg dezelfde stappen hierboven, maar verleen de rol Storage Blob Delegator voor het opslagaccount en de rol Inzender voor opslagblobgegevens in de container.
Stap 3: De beheerde identiteit toegang verlenen tot bestandsevenementen
Door uw beheerde identiteit toegang te verlenen tot bestandsevenementen, kan Azure Databricks zich abonneren op meldingen van bestandsevenementen die worden verzonden door cloudproviders. Dit maakt bestandsverwerking efficiënter. Als u de machtigingen in deze stap wilt verlenen, moet u de Azure RBAC-rol Eigenaar of Gebruikertoegangsbeheerder voor uw opslagaccount hebben.
- Meld u aan bij uw Azure Data Lake Storage Gen2-account.
- Ga naar Toegangsbeheer (IAM), klik op + Toevoegen en selecteer Roltoewijzing toevoegen.
- Selecteer de rol Inzender voor opslagwachtrijgegevens en klik op Volgende.
- Selecteer beheerde identiteit onder Toegang toewijzen aan.
- Klik op +Leden selecteren en selecteer toegangsconnector voor Azure Databricks of door de gebruiker toegewezen beheerde identiteit.
- Zoek de naam van uw connector of door de gebruiker toegewezen identiteit, selecteer deze en klik op Controleren en toewijzen.
Stap 4: Azure Databricks toegang verlenen om bestandsevenementen namens u te configureren
Notitie
Deze stap is optioneel, maar wordt ten zeerste aanbevolen. Als u Azure Databricks geen toegang verleent om bestandsevenementen namens u te configureren, moet u bestandsevenementen handmatig configureren voor elke locatie. Als u dit niet doet, hebt u beperkte toegang tot essentiële functies die Databricks in de toekomst kan vrijgeven.
Met deze stap kan Azure Databricks bestandsevenementen automatisch instellen. Als u de machtigingen in deze stap wilt verlenen, moet u de Azure RBAC-rollen Eigenaar of Gebruikertoegangsbeheerder hebben voor uw beheerde identiteit en de resourcegroep waarin uw Azure Data Lake Storage Gen2-account zich bevindt.
- Volg de instructies in stap 3: De beheerde identiteit toegang verlenen tot bestandsevenementen en de rol Inzender voor opslagaccounts, naast de rol Inzender voor opslagwachtrijgegevens, toewijzen aan uw beheerde identiteit.
- Navigeer naar de Azure-resourcegroep waarin uw Azure Data Lake Storage Gen2-account zich bevindt.
- Ga naar Toegangsbeheer (IAM), klik op + Toevoegen en selecteer Roltoewijzing toevoegen.
- Selecteer de rol EventGrid EventSubscription-inzender en klik op Volgende.
- Selecteer beheerde identiteit onder Toegang toewijzen aan.
- Klik op +Leden selecteren en selecteer toegangsconnector voor Azure Databricks of door de gebruiker toegewezen beheerde identiteit.
- Zoek de naam van uw connector of door de gebruiker toegewezen identiteit, selecteer deze en klik op Controleren en toewijzen.
Een beheerde identiteit gebruiken om toegang te krijgen tot het hoofdopslagaccount van de Unity Catalog
In deze sectie wordt beschreven hoe u de beheerde identiteit toegang geeft tot het hoofdopslagaccount wanneer u een Unity Catalog-metastore maakt.
- Meld u als azure Databricks-accountbeheerder aan bij de Azure Databricks-accountconsole.
- Klik op Catalogus.
- Klik op Metastore maken.
- Voer waarden in voor de volgende velden:
Naam voor de metastore.
Regio waar de metastore wordt geïmplementeerd.
Voor de beste prestaties zoekt u de toegangsconnector, werkruimten, metastore en cloudopslaglocatie in dezelfde cloudregio.
ADLS Gen 2-pad: voer het pad in naar de opslagcontainer die u gaat gebruiken als hoofdopslag voor de metastore.
Het
abfss://
voorvoegsel wordt automatisch toegevoegd.Toegangsconnector-id: voer de resource-id van de Azure Databricks-toegangsconnector in de indeling in:
/subscriptions/12f34567-8ace-9c10-111c-aea8eba12345c/resourceGroups/<resource-group>/providers/Microsoft.Databricks/accessConnectors/<connector-name>
(Optioneel) Beheerde identiteit-id: Als u de toegangsconnector hebt gemaakt met behulp van een door de gebruiker toegewezen beheerde identiteit, voert u de resource-id van de beheerde identiteit in.
- Klik op Create.
- Wanneer u hierom wordt gevraagd, selecteert u werkruimten die u wilt koppelen aan de metastore.
Een beheerde identiteit gebruiken voor toegang tot externe opslag die wordt beheerd in Unity Catalog
Unity Catalog biedt u de mogelijkheid om toegang te krijgen tot bestaande gegevens in opslagaccounts met behulp van opslagreferenties en externe locaties. Opslagreferenties slaan de beheerde identiteit op en externe locaties definiëren een pad naar opslag, samen met een verwijzing naar de opslagreferentie. U kunt deze methode gebruiken om bestaande gegevens in cloudopslag toegang te verlenen en te beheren en externe tabellen te registreren in Unity Catalog.
Een opslagreferentie kan een beheerde identiteit of service-principal bevatten. Het gebruik van een beheerde identiteit heeft het voordeel dat Unity Catalog toegang heeft tot opslagaccounts die worden beveiligd door netwerkregels, wat niet mogelijk is met behulp van service-principals, en de noodzaak om geheimen te beheren en te roteren, wordt verwijderd.
Als u een opslagreferentie wilt maken met behulp van een beheerde identiteit en deze opslagreferentie wilt toewijzen aan een externe locatie, volgt u de instructies in Verbinding maken met opslag en services voor cloudobjecten met behulp van Unity Catalog.
(Aanbevolen voor door VNet geïnjecteerde werkruimten) Vertrouwde toegang tot Azure Storage configureren op basis van uw beheerde identiteit
Als uw Azure Databricks-werkruimte is geïmplementeerd in uw eigen virtuele Azure-netwerk, ook wel 'VNet-injectie' genoemd, en u een opslagfirewall gebruikt om een Azure Data Lake Storage Gen2-account te beveiligen, moet u het volgende doen:
- Schakel uw Azure Databricks-werkruimte in voor toegang tot Azure Storage.
- Uw beheerde identiteit toegang geven tot Azure Storage.
Stap 1. Uw Azure Databricks-werkruimte toegang geven tot Azure Storage
U moet netwerkinstellingen configureren om uw Azure Databricks-werkruimte toegang te geven tot Azure Data Lake Storage Gen2. U kunt privé-eindpunten of toegang vanuit uw virtuele netwerk in Azure Data Lake Storage Gen2 configureren om verbindingen van uw subnetten met uw Azure Data Lake Storage Gen2-account toe te staan.
Zie Uw Azure Databricks-werkruimte toegang verlenen tot Azure Data Lake Storage Gen2 voor instructies.
Stap 2: Uw beheerde identiteit toegang geven tot Azure Storage
Deze stap is alleen nodig als Azure-services in de lijst met vertrouwde services toegang hebben tot dit opslagaccount is uitgeschakeld voor uw Azure Storage-account. Als deze configuratie is ingeschakeld:
- Elke toegangsconnector voor Azure Databricks in dezelfde tenant als het opslagaccount heeft toegang tot het opslagaccount.
- Elke vertrouwde Azure-service heeft toegang tot het opslagaccount. Zie Toegang verlenen tot vertrouwde Azure-services.
De onderstaande instructies bevatten een stap waarin u deze configuratie uitschakelt. U kunt De Azure-portal of de Azure CLI gebruiken.
De Azure-portal gebruiken
Meld u aan bij Azure Portal, zoek en selecteer het Azure Storage-account en ga naar het tabblad Netwerken .
Stel openbare netwerktoegang in op Ingeschakeld vanuit geselecteerde virtuele netwerken en IP-adressen.
Als optie kunt u in plaats daarvan openbare netwerktoegang instellen op Uitgeschakeld. De beheerde identiteit kan worden gebruikt om de controle over openbare netwerktoegang te omzeilen.
Selecteer onder Resource-exemplaren een resourcetype van Microsoft.Databricks/accessConnectors en selecteer uw Azure Databricks-toegangsconnector.
Schakel onder Uitzonderingen het selectievakje Azure-services in de lijst met vertrouwde services toestaan uit voor toegang tot dit opslagaccount .
De Azure CLI gebruiken
Installeer de Azure CLI en meld u aan.
Als u zich wilt aanmelden met behulp van een Service-principal voor Microsoft Entra ID, raadpleegt u de Azure CLI-aanmelding met een Service-principal voor Microsoft Entra ID.
Als u zich wilt aanmelden met behulp van een Azure Databricks-gebruikersaccount, raadpleegt u azure CLI-aanmelding met een Azure Databricks-gebruikersaccount.
Voeg een netwerkregel toe aan het opslagaccount:
az storage account network-rule add \ -–subscription <subscription id of the resource group> \ -–resource-id <resource Id of the access connector for Azure Databricks> \ -–tenant-id <tenant Id> \ -g <name of the Azure Storage resource group> \ -–account-name <name of the Azure Storage resource> \
Voeg de resource-id toe in de indeling:
/subscriptions/12f34567-8ace-9c10-111c-aea8eba12345c/resourceGroups/<resource-group>/providers/Microsoft.Databricks/accessConnectors/<connector-name>
Nadat u de netwerkregel hebt gemaakt, gaat u naar uw Azure Storage-account in Azure Portal en bekijkt u de beheerde identiteit op het tabblad Netwerken onder Resource-exemplaren, resourcetype
Microsoft.Databricks/accessConnectors
.Schakel onder Uitzonderingen het selectievakje Azure-services in de lijst met vertrouwde services toestaan uit voor toegang tot dit opslagaccount .
U kunt desgewenst openbare netwerktoegang instellen op Uitgeschakeld. De beheerde identiteit kan worden gebruikt om de controle over openbare netwerktoegang te omzeilen.
De standaardmethode is om deze waarde ingesteld te houden op Ingeschakeld vanuit geselecteerde virtuele netwerken en IP-adressen.
(Aanbevolen) Azure Storage-firewalls configureren om toegang vanuit serverloze SQL-warehouses toe te staan
Serverloze SQL-warehouses zijn rekenresources die worden uitgevoerd in het Azure-abonnement voor Azure Databricks, niet uw Azure-abonnement. Als u een firewall configureert in Azure Data Lake Storage Gen2 en u van plan bent serverloze SQL Warehouses te gebruiken, moet u de firewall configureren om toegang vanuit serverloze SQL-warehouses toe te staan.
Zie Een firewall configureren voor serverloze rekentoegang voor instructies.
Upgrade uw bestaande Unity Catalog-metastore om een beheerde identiteit te gebruiken voor toegang tot de hoofdopslag
Als u een Unity Catalog-metastore hebt die is gemaakt met behulp van een service-principal en u deze wilt upgraden om een beheerde identiteit te gebruiken, kunt u deze bijwerken met behulp van een API-aanroep.
Maak een Access Connector voor Azure Databricks en wijs deze machtigingen toe aan de opslagcontainer die wordt gebruikt voor de hoofdopslag van uw Unity Catalog-metastore met behulp van de instructies in Een beheerde identiteit configureren voor Unity Catalog.
U kunt de toegangsconnector maken met een door het systeem toegewezen beheerde identiteit of een door de gebruiker toegewezen beheerde identiteit.
Noteer de resource-id van de toegangsconnector. Als u een door de gebruiker toegewezen beheerde identiteit gebruikt, noteert u ook de resource-id.
Meld u als accountbeheerder aan bij een Azure Databricks-werkruimte die is toegewezen aan de metastore.
U hoeft geen werkruimtebeheerder te zijn.
Maak een Azure Databricks-verificatieconfiguratieprofiel in uw lokale omgeving die het volgende bevat:
- De naam van het werkruimte-exemplaar en de werkruimte-id van de werkruimte waarin u uw persoonlijke toegangstoken hebt gegenereerd.
- De waarde van het persoonlijke toegangstoken.
Zie persoonlijke toegangstokenverificatie van Azure Databricks.
Gebruik de Databricks CLI om de volgende opdracht uit te voeren om de opslagreferentie opnieuw te maken.
Vervang de waarden van de tijdelijke aanduidingen:
<credential-name>
: Een naam voor de opslagreferentie.<access-connector-id>
: Resource-id voor de Azure Databricks-toegangsconnector in de indeling/subscriptions/12f34567-8ace-9c10-111c-aea8eba12345c/resourceGroups/<resource-group>/providers/Microsoft.Databricks/accessConnectors/<connector-name>
<managed-identity-id>
: Als u de toegangsconnector hebt gemaakt met behulp van een door de gebruiker toegewezen beheerde identiteit, geeft u de resource-id van de beheerde identiteit op.<profile-name>
: de naam van uw Configuratieprofiel voor Azure Databricks-verificatie.
databricks storage-credentials create --json '{ "name\": "<credential-name>", "azure_managed_identity": { "access_connector_id": "<access-connector-id>", "managed_identity_id": "<managed-identity-id>" } }' --profile <profile-name>
Noteer de opslagreferentie-id in het antwoord.
Voer de volgende Databricks CLI-opdracht uit om de
metastore_id
opdracht op te halen. Vervang door<profile-name>
de naam van uw Azure Databricks-verificatieconfiguratieprofiel.databricks metastores summary --profile <profile-name>
Voer de volgende Databricks CLI-opdracht uit om de metastore bij te werken met de nieuwe basisopslagreferenties.
Vervang de waarden van de tijdelijke aanduidingen:
<metastore-id>
: de metastore-id die u in de vorige stap hebt opgehaald.<storage-credential-id>
: de opslagreferentie-id.<profile-name>
: de naam van uw Configuratieprofiel voor Azure Databricks-verificatie.
databricks metastores update <metastore-id> \ --storage-root-credential-id <storage-credential-id> \ --profile <profile-name>