Dela via


Använda Azure-hanterade identiteter i Unity Catalog för att få åtkomst till lagring

Den här artikeln beskriver hur du använder Azure-hanterade identiteter för att ansluta till lagringscontainrar för Unity Catalog-användares räkning.

Vad är Hanterade Azure-identiteter?

Unity Catalog kan konfigureras för att använda en hanterad Azure-identitet för att få åtkomst till lagringscontainrar åt Unity Catalog-användare. Hanterade identiteter tillhandahåller en identitet som program kan använda när de ansluter till resurser som stöder Microsoft Entra-ID-autentisering.

Du kan använda hanterade identiteter i Unity Catalog för att stödja två primära användningsfall:

  • Som en identitet för att ansluta till metaarkivets hanterade lagringskonton (där hanterade tabeller lagras).
  • Som en identitet för att ansluta till andra externa lagringskonton (antingen för filbaserad åtkomst eller för åtkomst till befintliga datauppsättningar via externa tabeller).

Att konfigurera Unity Catalog med en hanterad identitet har följande fördelar jämfört med att konfigurera Unity Catalog med tjänstens huvudnamn:

Konfigurera en hanterad identitet för Unity Catalog

Om du vill konfigurera en hanterad identitet som ska användas med Unity Catalog skapar du först en åtkomstanslutning för Azure Databricks i Azure. Som standard distribueras åtkomstanslutningsappen med en systemtilldelad hanterad identitet. Du kan i stället välja att koppla en användartilldelad hanterad identitet. Sedan beviljar du den hanterade identiteten åtkomst till ditt Azure Data Lake Storage Gen2-konto och använder åtkomstanslutningsappen när du skapar ett Unity Catalog-metaarkiv eller lagringsautentiseringsuppgifter.

Krav

Azure-användaren eller tjänstens huvudnamn som skapar åtkomstanslutningen måste:

  • Vara deltagare eller ägare till en Azure-resursgrupp.

Azure-användaren eller tjänstens huvudnamn som beviljar den hanterade identiteten till lagringskontot måste:

  • Vara ägare eller användare med azure RBAC-rollen Administratör för användaråtkomst på lagringskontot.

Steg 1: Skapa en åtkomstanslutning för Azure Databricks

Access Connector för Azure Databricks är en Azure-resurs från första part som gör att du kan ansluta hanterade identiteter till ett Azure Databricks-konto.

Varje åtkomstanslutning för Azure Databricks kan innehålla antingen en systemtilldelad hanterad identitet eller en användartilldelad hanterad identitet. Om du vill använda flera hanterade identiteter skapar du en separat åtkomstanslutning för var och en.

Använda en systemtilldelad hanterad identitet

  1. Logga in på Azure-portalen som deltagare eller ägare av en resursgrupp.

  2. Klicka på + Skapa eller Skapa en ny resurs.

  3. Sök efter Access Connector för Azure Databricks och välj det.

  4. Klicka på Skapa.

  5. På fliken Grundläggande accepterar, väljer eller anger du värden för följande fält:

    • Prenumeration: Det här är den Azure-prenumeration som åtkomstanslutningsappen kommer att skapas i. Standardvärdet är den Azure-prenumeration som du använder för närvarande. Det kan vara vilken prenumeration som helst i klientorganisationen.
    • Resursgrupp: Det här är den Azure-resursgrupp som åtkomstanslutningsappen kommer att skapas i.
    • Namn: Ange ett namn som anger syftet med anslutningsappen.
    • Region: Detta bör vara samma region som det lagringskonto som du ska ansluta till.
  6. Klicka på Granska och skapa.

  7. När du ser meddelandet Validering har skickats klickar du på Skapa.

    När distributionen lyckas distribueras åtkomstanslutningsappen med en systemtilldelad hanterad identitet.

  8. När distributionen är färdig klickar du på Gå till resurs.

  9. Anteckna resurs-ID:t.

    Resurs-ID:t är i formatet:

    /subscriptions/12f34567-8ace-9c10-111c-aea8eba12345c/resourceGroups/<resource-group>/providers/Microsoft.Databricks/accessConnectors/<connector-name>
    

Använda en användartilldelad hanterad identitet

  1. Om du inte redan har en användartilldelad hanterad identitet skapar du en ny och noterar dess resurs-ID.

    Se Hantera användartilldelade hanterade identiteter.

  2. Logga in på Azure-portalen som deltagare eller ägare av en resursgrupp.

    Resursgruppen ska finnas i samma region som det lagringskonto som du vill ansluta till.

  3. Sök efter Distribuera en anpassad mall och välj den.

  4. Välj Skapa en egen mall och klistra in följande mall i redigeraren:

    {
     "$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')]": {}
                 }
              }
          }
       ]
    }
    
  5. På fliken Grundläggande accepterar, väljer eller anger du värden för följande fält:

    • Prenumeration: Den Azure-prenumeration som åtkomstanslutningsappen ska skapas i. Standardvärdet är den Azure-prenumeration som du använder för närvarande. Det kan vara vilken prenumeration som helst i klientorganisationen.
    • Resursgrupp: En resursgrupp i samma region som det lagringskonto som du ska ansluta till.
    • Namn: Ett namn som anger syftet med anslutningsappen.
    • Region: Detta bör vara samma region som det lagringskonto som du ska ansluta till. Du kan välja det förifyllda värdet "[resourceGroup().location]" om resursgruppen skapades i samma region som det lagringskonto som du ska ansluta till.
    • Användartilldelad hanterad identitet: Resurs-ID för den användartilldelade hanterade identitet som du vill använda.
  6. Klicka på Granska och skapa.

  7. När du ser meddelandet Validering har skickats klickar du på Skapa.

  8. När distributionen är färdig klickar du på Gå till resurs.

  9. Anteckna resurs-ID:t.

    Resurs-ID:t är i formatet:

    /subscriptions/12f34567-8ace-9c10-111c-aea8eba12345c/resourceGroups/<resource-group>/providers/Microsoft.Databricks/accessConnectors/<connector-name>
    

Steg 2: Bevilja den hanterade identiteten åtkomst till lagringskontot

Om du vill bevilja behörigheterna i det här steget måste du ha rollen Ägare eller Administratör för användaråtkomst för Azure RBAC på ditt lagringskonto.

  1. Logga in på ditt Azure Data Lake Storage Gen2-konto.
  2. Gå till Åtkomstkontroll (IAM), klicka på + Lägg till och välj Lägg till rolltilldelning.
  3. Välj rollen Storage Blob Data-deltagare och klicka på Nästa.
  4. Under Tilldela åtkomst till väljer du Hanterad identitet.
  5. Klicka på +Välj medlemmar och välj antingen Åtkomstanslutning för Azure Databricks eller Användartilldelad hanterad identitet.
  6. Sök efter anslutningsappens namn eller användartilldelade identitet, välj den och klicka på Granska och Tilldela.

Du kan också begränsa åtkomsten till lagringskontot genom att ge den hanterade identiteten åtkomst till en specifik container. Följ samma steg ovan, men bevilja rollen Storage Blob Delegator för lagringskontot och rollen Storage Blob Data Contributor i containern.

Steg 3: Bevilja den hanterade identiteten åtkomst till filhändelser

Genom att ge din hanterade identitet åtkomst till filhändelser kan Azure Databricks prenumerera på filhändelsemeddelanden som genereras av molnleverantörer. Detta gör filbearbetningen mer effektiv. Om du vill bevilja behörigheterna i det här steget måste du ha rollen Ägare eller Administratör för användaråtkomst för Azure RBAC på ditt lagringskonto.

  1. Logga in på ditt Azure Data Lake Storage Gen2-konto.
  2. Gå till Åtkomstkontroll (IAM), klicka på + Lägg till och välj Lägg till rolltilldelning.
  3. Välj rollen Lagringsködatadeltagare och klicka på Nästa.
  4. Under Tilldela åtkomst till väljer du Hanterad identitet.
  5. Klicka på +Välj medlemmar och välj antingen Åtkomstanslutning för Azure Databricks eller Användartilldelad hanterad identitet.
  6. Sök efter anslutningsappens namn eller användartilldelade identitet, välj den och klicka på Granska och Tilldela.

Steg 4: Ge Azure Databricks åtkomst för att konfigurera filhändelser åt dig

Kommentar

Det här steget är valfritt men rekommenderas starkt. Om du inte ger Azure Databricks åtkomst till att konfigurera filhändelser åt dig måste du konfigurera filhändelser manuellt för varje plats. Om du inte gör det har du begränsad åtkomst till viktiga funktioner som Databricks kan släppa i framtiden.

Med det här steget kan Azure Databricks konfigurera filhändelser automatiskt. Om du vill bevilja behörigheterna i det här steget måste du ha Azure RBAC-rollerna Ägare eller Användaråtkomstadministratör för din hanterade identitet och resursgruppen som ditt Azure Data Lake Storage Gen2-konto finns i.

  1. Följ anvisningarna i Steg 3: Bevilja den hanterade identiteten åtkomst till filhändelser och tilldela lagringskontodeltagaren, tillsammans med rollen Lagringsködatadeltagare , till din hanterade identitet.
  2. Gå till den Azure-resursgrupp som ditt Azure Data Lake Storage Gen2-konto finns i.
  3. Gå till Åtkomstkontroll (IAM), klicka på + Lägg till och välj Lägg till rolltilldelning.
  4. Välj rollen EventGrid EventSubscription-deltagare och klicka på Nästa.
  5. Under Tilldela åtkomst till väljer du Hanterad identitet.
  6. Klicka på +Välj medlemmar och välj antingen Åtkomstanslutning för Azure Databricks eller Användartilldelad hanterad identitet.
  7. Sök efter anslutningsappens namn eller användartilldelade identitet, välj den och klicka på Granska och Tilldela.

Använda en hanterad identitet för att komma åt Unity Catalog-rotlagringskontot

I det här avsnittet beskrivs hur du ger den hanterade identiteten åtkomst till rotlagringskontot när du skapar ett Unity Catalog-metaarkiv.

Information om hur du uppgraderar ett befintligt Unity Catalog-metaarkiv för att använda en hanterad identitet finns i Uppgradera ditt befintliga Unity Catalog-metaarkiv för att använda en hanterad identitet för att få åtkomst till dess rotlagring.

  1. Som Azure Databricks-kontoadministratör loggar du in på Azure Databricks-kontokonsolen.
  2. Klicka på Katalogikon Katalog.
  3. Klicka på Skapa metaarkiv.
  4. Ange värden för följande fält:
    • Namn på metaarkivet.

    • Region där metaarkivet ska distribueras.

      För bästa prestanda kan du samplacerar åtkomstanslutningen, arbetsytor, metaarkiv och molnlagringsplats i samma molnregion.

    • ADLS Gen 2-sökväg: Ange sökvägen till den lagringscontainer som du ska använda som rotlagring för metaarkivet.

      Prefixet abfss:// läggs till automatiskt.

    • Åtkomstanslutnings-ID: Ange Azure Databricks-åtkomstanslutningsappens resurs-ID i formatet:

      /subscriptions/12f34567-8ace-9c10-111c-aea8eba12345c/resourceGroups/<resource-group>/providers/Microsoft.Databricks/accessConnectors/<connector-name>
      
    • (Valfritt) Hanterat identitets-ID: Om du skapade åtkomstanslutningsappen med hjälp av en användartilldelad hanterad identitet anger du resurs-ID för den hanterade identiteten.

  5. Klicka på Skapa.
  6. När du uppmanas till det väljer du arbetsytor som ska länkas till metaarkivet.

Använda en hanterad identitet för att komma åt extern lagring som hanteras i Unity Catalog

Unity Catalog ger dig möjlighet att komma åt befintliga data i lagringskonton med hjälp av autentiseringsuppgifter för lagring och externa platser. Lagringsuppgifter lagrar den hanterade identiteten och externa platser definierar en sökväg till lagring tillsammans med en referens till lagringsautentiseringsuppgifterna. Du kan använda den här metoden för att bevilja och kontrollera åtkomst till befintliga data i molnlagring och för att registrera externa tabeller i Unity Catalog.

En lagringsautentiseringsuppgift kan innehålla en hanterad identitet eller tjänstens huvudnamn. Att använda en hanterad identitet har fördelen att ge Unity Catalog åtkomst till lagringskonton som skyddas av nätverksregler, vilket inte är möjligt med hjälp av tjänstens huvudnamn, och det tar bort behovet av att hantera och rotera hemligheter.

Om du vill skapa en lagringsautentiseringsuppgift med hjälp av en hanterad identitet och tilldela lagringsautentiseringsuppgifterna till en extern plats följer du anvisningarna i Anslut till molnobjektlagring och -tjänster med hjälp av Unity Catalog.

Om din Azure Databricks-arbetsyta distribueras i ditt eget virtuella Azure-nätverk, även kallat "VNet-inmatning", och du använder en lagringsbrandvägg för att skydda ett Azure Data Lake Storage Gen2-konto, måste du:

  1. Aktivera din Azure Databricks-arbetsyta för åtkomst till Azure Storage.
  2. Aktivera din hanterade identitet för åtkomst till Azure Storage.

Steg 1. Aktivera din Azure Databricks-arbetsyta för åtkomst till Azure Storage

Du måste konfigurera nätverksinställningar så att din Azure Databricks-arbetsyta får åtkomst till Azure Data Lake Storage Gen2. Du kan konfigurera antingen privata slutpunkter eller åtkomst från ditt virtuella nätverk på Azure Data Lake Storage Gen2 för att tillåta anslutningar från dina undernät till ditt Azure Data Lake Storage Gen2-konto.

Anvisningar finns i Bevilja din Azure Databricks-arbetsyta åtkomst till Azure Data Lake Storage Gen2.

Steg 2: Aktivera din hanterade identitet för åtkomst till Azure Storage

Det här steget är bara nödvändigt om "Tillåt att Azure-tjänster i listan över betrodda tjänster får åtkomst till det här lagringskontot" är inaktiverat för ditt Azure Storage-konto. Om konfigurationen är aktiverad:

  • Alla åtkomstanslutningar för Azure Databricks i samma klientorganisation som lagringskontot kan komma åt lagringskontot.
  • Alla Betrodda Azure-tjänster kan komma åt lagringskontot. Se Bevilja åtkomst till betrodda Azure-tjänster.

Anvisningarna nedan innehåller ett steg där du inaktiverar den här konfigurationen. Du kan använda Azure-portalen eller Azure CLI.

Använda Azure Portal

  1. Logga in på Azure-portalen, leta upp och välj Azure Storage-kontot och gå till fliken Nätverk .

  2. Ange Offentlig nätverksåtkomst till Aktiverad från valda virtuella nätverk och IP-adresser.

    Som ett alternativ kan du i stället ange Åtkomst till offentligt nätverk till Inaktiverad. Den hanterade identiteten kan användas för att kringgå kontrollen av åtkomst till offentliga nätverk.

  3. Under Resursinstanser väljer du resurstypen Microsoft.Databricks/accessConnectors och väljer åtkomstanslutningsappen för Azure Databricks.

  4. Under Undantag avmarkerar du kryssrutan Tillåt Azure-tjänster i listan över betrodda tjänster att komma åt det här lagringskontot .

Använda Azure CLI

  1. Installera Azure CLI och logga in.

    Information om hur du loggar in med hjälp av tjänstens huvudnamn för Microsoft Entra-ID finns i Azure CLI-inloggning med tjänstens huvudnamn för Microsoft Entra-ID.

    Information om hur du loggar in med hjälp av ett Azure Databricks-användarkonto finns i Azure CLI-inloggning med ett Azure Databricks-användarkonto.

  2. Lägg till en nätverksregel i lagringskontot:

    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> \
    

    Lägg till resurs-ID:t i formatet:

    /subscriptions/12f34567-8ace-9c10-111c-aea8eba12345c/resourceGroups/<resource-group>/providers/Microsoft.Databricks/accessConnectors/<connector-name>
    
  3. När du har skapat nätverksregeln går du till ditt Azure Storage-konto i Azure-portalen och visar den hanterade identiteten på fliken Nätverk under Resursinstanser, resurstyp Microsoft.Databricks/accessConnectors.

  4. Under Undantag avmarkerar du kryssrutan Tillåt Azure-tjänster i listan över betrodda tjänster att komma åt det här lagringskontot .

  5. Du kan också ange Åtkomst till offentligt nätverk till Inaktiverad. Den hanterade identiteten kan användas för att kringgå kontrollen av åtkomst till offentliga nätverk.

    Standardmetoden är att hålla det här värdet inställt på Aktiverad från valda virtuella nätverk och IP-adresser.

Serverlösa SQL-lager är beräkningsresurser som körs i Azure-prenumerationen för Azure Databricks, inte din Azure-prenumeration. Om du konfigurerar en brandvägg på Azure Data Lake Storage Gen2 och planerar att använda serverlösa SQL-lager måste du konfigurera brandväggen för att tillåta åtkomst från serverlösa SQL-lager.

Anvisningar finns i Konfigurera en brandvägg för serverlös beräkningsåtkomst.

Uppgradera ditt befintliga Unity Catalog-metaarkiv för att använda en hanterad identitet för att få åtkomst till dess rotlagring

Om du har ett Unity Catalog-metaarkiv som har skapats med ett huvudnamn för tjänsten och du vill uppgradera det till att använda en hanterad identitet kan du uppdatera det med hjälp av ett API-anrop.

  1. Skapa en Access Connector för Azure Databricks och tilldela den behörigheter till lagringscontainern som används för rotlagringen i Unity Catalog-metaarkivet med hjälp av anvisningarna i Konfigurera en hanterad identitet för Unity Catalog.

    Du kan skapa åtkomstanslutningsappen med antingen en systemtilldelad hanterad identitet eller en användartilldelad hanterad identitet.

    Anteckna åtkomstanslutningsappens resurs-ID. Om du använder en användartilldelad hanterad identitet bör du även anteckna dess resurs-ID.

  2. Som kontoadministratör loggar du in på en Azure Databricks-arbetsyta som har tilldelats metaarkivet.

    Du behöver inte vara arbetsyteadministratör.

  3. Generera en personlig åtkomsttoken.

  4. Skapa en konfigurationsprofil för Azure Databricks-autentisering i din lokala miljö som innehåller följande:

    • Arbetsytans instansnamn och arbetsyte-ID för arbetsytan där du genererade din personliga åtkomsttoken.
    • Värdet för personlig åtkomsttoken.

    Mer information finns i autentisering med personlig åtkomsttoken i Azure Databricks.

  5. Använd Databricks CLI för att köra följande kommando för att återskapa lagringsautentiseringsuppgifterna.

    Ersätt platshållarvärdena:

    • <credential-name>: Ett namn på lagringsautentiseringsuppgifterna.
    • <access-connector-id>: Resurs-ID för Azure Databricks-åtkomstanslutningen i formatet /subscriptions/12f34567-8ace-9c10-111c-aea8eba12345c/resourceGroups/<resource-group>/providers/Microsoft.Databricks/accessConnectors/<connector-name>
    • <managed-identity-id>: Om du har skapat åtkomstanslutningsappen med hjälp av en användartilldelad hanterad identitet anger du resurs-ID för den hanterade identiteten.
    • <profile-name>: Namnet på din Azure Databricks-autentiseringskonfigurationsprofil.
    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>
    
  6. Anteckna lagringsautentiserings-ID:t i svaret.

  7. Kör följande Databricks CLI-kommando för att hämta metastore_id. Ersätt <profile-name> med namnet på din Azure Databricks-autentiseringskonfigurationsprofil.

    databricks metastores summary --profile <profile-name>
    
  8. Kör följande Databricks CLI-kommando för att uppdatera metaarkivet med den nya rotlagringsautentiseringsuppgiften.

    Ersätt platshållarvärdena:

    • <metastore-id>: Det metaarkiv-ID som du hämtade i föregående steg.
    • <storage-credential-id>: ID för lagringsautentiseringsuppgifter.
    • <profile-name>: Namnet på din Azure Databricks-autentiseringskonfigurationsprofil.
    databricks metastores update <metastore-id> \
    --storage-root-credential-id <storage-credential-id> \
    --profile <profile-name>