Použití spravovaných identit Azure v katalogu Unity pro přístup k úložišti

Tento článek popisuje, jak používat spravované identity Azure pro připojení k kontejnerům úložiště jménem uživatelů katalogu Unity.

Co jsou spravované identity Azure?

Katalog Unity je možné nakonfigurovat tak, aby používala spravovanou identitu Azure pro přístup k kontejnerům úložiště jménem uživatelů katalogu Unity. Spravované identity poskytují identitu pro aplikace, které se mají použít při připojování k prostředkům, které podporují ověřování Microsoft Entra ID.

Spravované identity v katalogu Unity můžete použít k podpoře dvou primárních případů použití:

  • Identita pro připojení ke spravovaným účtům úložiště metastoru (kde jsou uložené spravované tabulky).
  • Jako identita pro připojení k jiným externím účtům úložiště (pro přístup na základě souborů nebo pro přístup k existujícím datovým sadám prostřednictvím externích tabulek)

Konfigurace katalogu Unity se spravovanou identitou má následující výhody při konfiguraci katalogu Unity s instančním objektem:

Konfigurace spravované identity pro katalog Unity

Pokud chcete nakonfigurovat spravovanou identitu pro použití s Katalogem Unity, nejprve vytvoříte přístupový konektor pro Azure Databricks v Azure. Ve výchozím nastavení se přístupový konektor nasadí se spravovanou identitou přiřazenou systémem. Místo toho můžete připojit spravovanou identitu přiřazenou uživatelem. Potom spravované identitě udělíte přístup k účtu Azure Data Lake Storage Gen2 a použijete přístupový konektor při vytváření metastore katalogu Unity nebo přihlašovacích údajů úložiště.

Požadavky

Uživatel Nebo instanční objekt Azure, který vytvoří přístupový konektor, musí:

  • Buďte přispěvatelem nebo vlastníkem skupiny prostředků Azure.

Uživatel Nebo instanční objekt Azure, který uděluje spravovanou identitu účtu úložiště, musí:

  • Buďte vlastníkem nebo uživatelem s rolí Azure RBAC správce uživatelských přístupů v účtu úložiště.

Krok 1: Vytvoření přístupového konektoru pro Azure Databricks

Přístupový konektor pro Azure Databricks je prostředek Azure první strany, který umožňuje připojit spravované identity k účtu Azure Databricks.

Každý přístupový konektor pro Azure Databricks může obsahovat jednu spravovanou identitu přiřazenou systémem nebo jednu spravovanou identitu přiřazenou uživatelem. Pokud chcete použít více spravovaných identit, vytvořte pro každou z nich samostatný přístupový konektor.

Použití spravované identity přiřazené systémem

  1. Přihlaste se k webu Azure Portal jako přispěvatel nebo vlastník skupiny prostředků.

  2. Klikněte na + Vytvořit nebo vytvořit nový prostředek.

  3. Vyhledejte Access Connector pro Azure Databricks a vyberte ho.

  4. Klikněte na Vytvořit.

  5. Na kartě Základy přijměte, vyberte nebo zadejte hodnoty pro následující pole:

    • Předplatné: Toto je předplatné Azure, ve které se vytvoří přístupový konektor. Výchozí hodnota je předplatné Azure, které aktuálně používáte. Může to být libovolné předplatné v tenantovi.
    • Skupina prostředků: Jedná se o skupinu prostředků Azure, ve které se vytvoří přístupový konektor.
    • Název: Zadejte název, který označuje účel konektoru.
    • Oblast: Tato oblast by měla být stejná jako účet úložiště, ke kterému se připojíte.
  6. Klikněte na Zkontrolovat a vytvořit.

  7. Až se zobrazí zpráva Ověření úspěšného ověření, klikněte na Vytvořit.

    Po úspěšném nasazení se přístupový konektor nasadí se spravovanou identitou přiřazenou systémem.

  8. Po dokončení nasazení klikněte na Přejít k prostředku.

  9. Poznamenejte si ID prostředku.

    ID prostředku je ve formátu:

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

Použití spravované identity přiřazené uživatelem

  1. Pokud ještě nemáte spravovanou identitu přiřazenou uživatelem, vytvořte novou a poznamenejte si její ID prostředku.

    Viz Správa spravovaných identit přiřazených uživatelem.

  2. Přihlaste se k webu Azure Portal jako přispěvatel nebo vlastník skupiny prostředků.

    Skupina prostředků by měla být ve stejné oblasti jako účet úložiště, ke kterému se chcete připojit.

  3. Vyhledejte nasazení vlastní šablony a vyberte ji.

  4. Vyberte Vytvořit vlastní šablonu a vložte do editoru následující šablonu:

    {
     "$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. Na kartě Základy přijměte, vyberte nebo zadejte hodnoty pro následující pole:

    • Předplatné: Předplatné Azure, ve které se vytvoří přístupový konektor. Výchozí hodnota je předplatné Azure, které aktuálně používáte. Může to být libovolné předplatné v tenantovi.
    • Skupina prostředků: Skupina prostředků ve stejné oblasti jako účet úložiště, ke kterému se připojíte.
    • Název: Název, který označuje účel konektoru.
    • Oblast: Tato oblast by měla být stejná jako účet úložiště, ke kterému se připojíte. Pokud byla skupina prostředků vytvořená ve stejné oblasti jako účet úložiště, ke kterému se připojíte, můžete zvolit předem vyplněnou hodnotu [resourceGroup().location].
    • Spravovaná identita přiřazená uživatelem: ID prostředku spravované identity přiřazené uživatelem, kterou chcete použít.
  6. Klikněte na Zkontrolovat a vytvořit.

  7. Až se zobrazí zpráva Ověření úspěšného ověření, klikněte na Vytvořit.

  8. Po dokončení nasazení klikněte na Přejít k prostředku.

  9. Poznamenejte si ID prostředku.

    ID prostředku je ve formátu:

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

Krok 2: Udělení přístupu spravované identity k účtu úložiště

Pokud chcete udělit oprávnění v tomto kroku, musíte mít ve svém účtu úložiště roli Vlastník nebo Správce uživatelských přístupů Azure RBAC.

  1. Přihlaste se ke svému účtu Azure Data Lake Storage Gen2.
  2. Přejděte do řízení přístupu (IAM), klikněte na + Přidat a vyberte Přidat přiřazení role.
  3. Vyberte roli Přispěvatel dat v objektu blob úložiště a klikněte na Další.
  4. V části Přiřadit přístup vyberte Spravovaná identita.
  5. Klikněte na +Vybrat členy a vyberte přístupový konektor pro spravovanou identitu Azure Databricks nebo spravovanou identitu přiřazenou uživatelem.
  6. Vyhledejte název konektoru nebo identitu přiřazenou uživatelem, vyberte ji a klikněte na Zkontrolovat a přiřadit.

Případně můžete omezit přístup k účtu úložiště tím, že udělíte spravované identitě přístup ke konkrétnímu kontejneru. Postupujte podle stejných kroků výše, ale udělte roli Delegátoru objektů blob úložiště v účtu úložiště a roli Přispěvatel dat objektů blob služby Storage v kontejneru.

Krok 3: Udělení přístupu spravované identity k událostem souborů

Udělení přístupu spravované identity k událostem souborů umožňuje službě Azure Databricks přihlásit se k odběru oznámení událostí souborů generovaných poskytovateli cloudu. Díky tomu je zpracování souborů efektivnější. Pokud chcete udělit oprávnění v tomto kroku, musíte mít ve svém účtu úložiště roli Vlastník nebo Správce uživatelských přístupů Azure RBAC.

  1. Přihlaste se ke svému účtu Azure Data Lake Storage Gen2.
  2. Přejděte do řízení přístupu (IAM), klikněte na + Přidat a vyberte Přidat přiřazení role.
  3. Vyberte roli Přispěvatel dat fronty úložiště a klikněte na Další.
  4. V části Přiřadit přístup vyberte Spravovaná identita.
  5. Klikněte na +Vybrat členy a vyberte přístupový konektor pro spravovanou identitu Azure Databricks nebo spravovanou identitu přiřazenou uživatelem.
  6. Vyhledejte název konektoru nebo identitu přiřazenou uživatelem, vyberte ji a klikněte na Zkontrolovat a přiřadit.

Krok 4: Udělení přístupu Azure Databricks ke konfiguraci událostí souborů vaším jménem

Poznámka:

Tento krok je nepovinný, ale důrazně doporučujeme. Pokud službě Azure Databricks neudělíte přístup ke konfiguraci událostí souborů vaším jménem, musíte události souborů nakonfigurovat ručně pro každé umístění. Pokud to neuděláte, budete mít omezený přístup k důležitým funkcím, které může Databricks v budoucnu vydat.

Tento krok umožňuje Službě Azure Databricks automaticky nastavit události souborů. Pokud chcete udělit oprávnění v tomto kroku, musíte mít role Vlastník nebo Správce uživatelských přístupů Azure RBAC pro vaši spravovanou identitu a skupinu prostředků, ve které je váš účet Azure Data Lake Storage Gen2.

  1. Postupujte podle pokynů v kroku 3: Udělte spravované identitě přístup k událostem souborů a přiřaďte přispěvateli účtu úložiště spolu s rolí Přispěvatel dat fronty služby Storage ke spravované identitě.
  2. Přejděte do skupiny prostředků Azure, ve které je váš účet Azure Data Lake Storage Gen2.
  3. Přejděte do řízení přístupu (IAM), klikněte na + Přidat a vyberte Přidat přiřazení role.
  4. Vyberte roli Přispěvatel EventGrid EventSubscription a klikněte na Další.
  5. V části Přiřadit přístup vyberte Spravovaná identita.
  6. Klikněte na +Vybrat členy a vyberte přístupový konektor pro spravovanou identitu Azure Databricks nebo spravovanou identitu přiřazenou uživatelem.
  7. Vyhledejte název konektoru nebo identitu přiřazenou uživatelem, vyberte ji a klikněte na Zkontrolovat a přiřadit.

Použití spravované identity pro přístup ke kořenovému účtu úložiště Katalogu Unity

Tato část popisuje, jak udělit spravované identitě přístup ke kořenovému účtu úložiště při vytváření metastoru katalogu Unity.

Informace o upgradu existujícího metastoru katalogu Unity tak, aby používala spravovanou identitu, najdete v tématu Upgrade existujícího metastoru katalogu Unity tak, aby používal spravovanou identitu pro přístup ke svému kořenovému úložišti.

  1. Jako správce účtu Azure Databricks se přihlaste ke konzole účtu Azure Databricks.
  2. Klikněte na Ikona katalogu Katalog.
  3. Klikněte na Vytvořit metastore.
  4. Zadejte hodnoty pro následující pole:
    • Název metastoru.

    • Oblast , kde se metastor nasadí.

      Nejlepšího výkonu dosáhnete tak, že ve stejné cloudové oblasti vyhledáte přístupový konektor, pracovní prostory, metastor a umístění cloudového úložiště.

    • Cesta ADLS Gen2: Zadejte cestu ke kontejneru úložiště, který použijete jako kořenové úložiště pro metastore.

      Předpona abfss:// se přidá automaticky.

    • ID přístupového konektoru: Zadejte ID prostředku konektoru pro přístup k Azure Databricks ve formátu:

      /subscriptions/12f34567-8ace-9c10-111c-aea8eba12345c/resourceGroups/<resource-group>/providers/Microsoft.Databricks/accessConnectors/<connector-name>
      
    • (Volitelné) ID spravované identity: Pokud jste vytvořili přístupový konektor pomocí spravované identity přiřazené uživatelem, zadejte ID prostředku spravované identity.

  5. Klikněte na Vytvořit.
  6. Po zobrazení výzvy vyberte pracovní prostory, které chcete propojit s metastorem.

Použití spravované identity pro přístup k externímu úložišti spravovanému v katalogu Unity

Katalog Unity umožňuje přístup k existujícím datům v účtech úložiště pomocí přihlašovacích údajů úložiště a externích umístění. Přihlašovací údaje úložiště ukládají spravovanou identitu a externí umístění definují cestu k úložišti spolu s odkazem na přihlašovací údaje úložiště. Tento přístup můžete použít k udělení a řízení přístupu k existujícím datům v cloudovém úložišti a k registraci externích tabulek v katalogu Unity.

Přihlašovací údaje úložiště můžou obsahovat spravovanou identitu nebo instanční objekt. Použití spravované identity má výhodu povolení katalogu Unity pro přístup k účtům úložiště chráněným síťovými pravidly, což není možné pomocí instančních objektů a eliminuje potřebu správy a obměny tajných kódů.

Pokud chcete vytvořit přihlašovací údaje úložiště pomocí spravované identity a přiřadit přihlašovací údaje úložiště k externímu umístění, postupujte podle pokynů v tématu Připojení ke cloudovému úložišti objektů pomocí katalogu Unity.

Pokud je váš pracovní prostor Azure Databricks nasazený ve vaší vlastní virtuální síti Azure, označované také jako injektáž virtuální sítě, a k ochraně účtu Azure Data Lake Storage Gen2 používáte bránu firewall úložiště, musíte:

  1. Povolte svůj pracovní prostor Azure Databricks pro přístup ke službě Azure Storage.
  2. Povolte spravovanou identitu pro přístup ke službě Azure Storage.

Krok 1. Povolení přístupu ke službě Azure Storage v pracovním prostoru Azure Databricks

Musíte nakonfigurovat nastavení sítě, aby měl váš pracovní prostor Azure Databricks přístup ke službě Azure Data Lake Storage Gen2. Můžete nakonfigurovat privátní koncové body nebo přístup z virtuální sítě v Azure Data Lake Storage Gen2 tak, aby povolovali připojení z vašich podsítí k vašemu účtu Azure Data Lake Storage Gen2.

Pokyny najdete v tématu Udělení přístupu k pracovnímu prostoru Azure Databricks ke službě Azure Data Lake Storage Gen2.

Krok 2: Povolení přístupu ke službě Azure Storage pro spravovanou identitu

Tento krok je nezbytný jenom v případě, že je pro váš účet Azure Storage zakázaná možnost Povolit službám Azure v seznamu důvěryhodných služeb přístup k tomuto účtu úložiště. Pokud je tato konfigurace povolená:

  • Jakýkoli přístupový konektor pro Azure Databricks ve stejném tenantovi jako účet úložiště má přístup k účtu úložiště.
  • Každá důvěryhodná služba Azure má přístup k účtu úložiště. Viz Udělení přístupu k důvěryhodným službám Azure.

Následující pokyny zahrnují krok, ve kterém tuto konfiguraci zakážete. Můžete použít Azure Portal nebo Azure CLI.

Použití webu Azure Portal

  1. Přihlaste se k webu Azure Portal, vyhledejte a vyberte účet Azure Storage a přejděte na kartu Sítě .

  2. Nastavte přístup k veřejné síti na Povoleno z vybraných virtuálních sítí a IP adres.

    Jako možnost můžete místo toho nastavit přístup k veřejné síti na zakázáno. Spravovanou identitu je možné použít k obejití kontroly přístupu k veřejné síti.

  3. V části Instance prostředků vyberte typ prostředku Microsoft.Databricks/accessConnectors a vyberte přístupový konektor Azure Databricks.

  4. V části Výjimky zrušte zaškrtnutí políčka Povolit službám Azure v seznamu důvěryhodných služeb přístup k tomuto účtu úložiště.

Použití Azure CLI

  1. Nainstalujte Azure CLI a přihlaste se.

    Pokud se chcete přihlásit pomocí instančního objektu Microsoft Entra ID, přečtěte si téma Přihlášení k Azure CLI pomocí instančního objektu Microsoft Entra ID.

    Pokud se chcete přihlásit pomocí uživatelského účtu Azure Databricks, podívejte se na přihlašovací údaje Azure CLI pomocí uživatelského účtu Azure Databricks.

  2. Přidejte do účtu úložiště pravidlo sítě:

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

    Přidejte ID prostředku ve formátu:

    /subscriptions/12f34567-8ace-9c10-111c-aea8eba12345c/resourceGroups/<resource-group>/providers/Microsoft.Databricks/accessConnectors/<connector-name>
    
  3. Po vytvoření pravidla sítě přejděte na webu Azure Portal do svého účtu Azure Storage a na kartě Sítě v části Instance prostředků zadejte Microsoft.Databricks/accessConnectorsprostředek .

  4. V části Výjimky zrušte zaškrtnutí políčka Povolit službám Azure v seznamu důvěryhodných služeb přístup k tomuto účtu úložiště.

  5. Volitelně můžete nastavit přístup k veřejné síti na zakázáno. Spravovanou identitu je možné použít k obejití kontroly přístupu k veřejné síti.

    Standardním přístupem je ponechat tuto hodnotu nastavenou na Povoleno z vybraných virtuálních sítí a IP adres.

Bezserverové sklady SQL jsou výpočetní prostředky, které běží v předplatném Azure pro Azure Databricks, ne vaše předplatné Azure. Pokud nakonfigurujete bránu firewall ve službě Azure Data Lake Storage Gen2 a plánujete používat bezserverové služby SQL Warehouse, musíte bránu firewall nakonfigurovat tak, aby umožňovala přístup z bezserverových skladů SQL.

Pokyny najdete v tématu Konfigurace brány firewall pro bezserverový výpočetní přístup.

Upgrade stávajícího metastoru katalogu Unity tak, aby používal spravovanou identitu pro přístup ke svému kořenovému úložišti

Pokud máte metastore katalogu Unity, který byl vytvořen pomocí instančního objektu a chcete ho upgradovat tak, aby používal spravovanou identitu, můžete ho aktualizovat pomocí volání rozhraní API.

  1. Vytvořte accessový konektor pro Azure Databricks a přiřaďte ho oprávnění ke kontejneru úložiště, který se používá pro kořenové úložiště metastoru katalogu Unity pomocí pokynů v tématu Konfigurace spravované identity pro Katalog Unity.

    Přístupový konektor můžete vytvořit buď se spravovanou identitou přiřazenou systémem, nebo spravovanou identitou přiřazenou uživatelem.

    Poznamenejte si ID prostředku přístupového konektoru. Pokud používáte spravovanou identitu přiřazenou uživatelem, poznamenejte si také ID prostředku.

  2. Jako správce účtu se přihlaste k pracovnímu prostoru Azure Databricks, který je přiřazený k metastoru.

    Nemusíte být správcem pracovního prostoru.

  3. Vygenerujte osobní přístupový token.

  4. V místním prostředí vytvořte konfigurační profil ověřování Azure Databricks, který obsahuje následující:

    • Název instance pracovního prostoru a ID pracovního prostoru pracovního prostoru, ve kterém jste vygenerovali svůj osobní přístupový token.
    • Hodnota osobního přístupového tokenu.

    Viz ověřování tokenů pat azure Databricks.

  5. Pomocí rozhraní příkazového řádku Databricks spusťte následující příkaz k opětovnému vytvoření přihlašovacích údajů úložiště.

    Nahraďte zástupné hodnoty:

    • <credential-name>: Název přihlašovacích údajů úložiště.
    • <access-connector-id>: ID prostředku pro přístupový konektor Azure Databricks ve formátu /subscriptions/12f34567-8ace-9c10-111c-aea8eba12345c/resourceGroups/<resource-group>/providers/Microsoft.Databricks/accessConnectors/<connector-name>
    • <managed-identity-id>: Pokud jste vytvořili přístupový konektor pomocí spravované identity přiřazené uživatelem, zadejte ID prostředku spravované identity.
    • <profile-name>: Název konfiguračního profilu ověřování Azure Databricks.
    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. Poznamenejte si ID přihlašovacích údajů úložiště v odpovědi.

  7. Spuštěním následujícího příkazu Rozhraní příkazového řádku Databricks načtěte metastore_id. Nahraďte <profile-name> názvem konfiguračního profilu ověřování Azure Databricks.

    databricks metastores summary --profile <profile-name>
    
  8. Spuštěním následujícího příkazu rozhraní příkazového řádku Databricks aktualizujte metastor s použitím nových přihlašovacích údajů kořenového úložiště.

    Nahraďte zástupné hodnoty:

    • <metastore-id>: ID metastoru, které jste získali v předchozím kroku.
    • <storage-credential-id>: ID přihlašovacích údajů úložiště.
    • <profile-name>: Název konfiguračního profilu ověřování Azure Databricks.
    databricks metastores update <metastore-id> \
    --storage-root-credential-id <storage-credential-id> \
    --profile <profile-name>