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 aplikacím, které se mají použít při připojování k prostředkům, které podporují ověřování Microsoft Entra ID (dříve Azure Active Directory).

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í:

  • Být vlastníkem nebo uživatelem s rolí Uživatelský přístup Správa istrator Azure RBAC v účtu úložiště.

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

Access Připojení or 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 Připojení or 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 Uživatelský přístup Správa istrator 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 Uživatelský přístup Správa istrator 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.

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

  1. Postupujte podle výše uvedených kroků 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 úložiště 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 kataloguKatalog.
  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řipojení oru přístupu: 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 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 typprostředku Microsoft.Databricks/access Připojení orů 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ý Připojení or pro Azure Databricks a přiřaďte mu 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.

    Poznamenejte si adresu URL pracovního prostoru, což je první část adresy URL za https:// a včetně azuredatabricks.net.

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

  4. Přidejte osobní přístupový token do .netrc souboru v domovském adresáři. Tím se zlepší zabezpečení tím, že zabráníte zobrazení tokenu pat v historii příkazů prostředí. Viz rozhraní API pro správu tokenů.

  5. Spuštěním následujícího příkazu cURL znovu vytvořte přihlašovací údaje úložiště.

    Nahraďte zástupné hodnoty:

    • <databricks-instance>: Adresa URL pracovního prostoru pracovního prostoru, ve kterém se vygeneroval osobní přístupový token.
    • <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.
    curl -n -X POST --header 'Content-Type: application/json' https://<databricks-instance>/api/2.0/unity-catalog/storage-credentials --data "{
      \"name\": \"<credential-name>\",
      \"azure_managed_identity\": {
        \"access_connector_id\": \"<access-connector-id>\",
        \"managed_identity_id\": \"<managed-identity-id>\"
      }
    }"
    
  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 cURL načtěte metastore_id<databricks-instance>adresu URL pracovního prostoru pracovního prostoru, kde se vygeneroval osobní přístupový token.

    curl -n GET--header 'Content-Type: application/json' https://<databricks-instance>/api/2.0/unity-catalog/metastore_summary
    
  8. Spuštěním následujícího příkazu cURL aktualizujte metastor s použitím nových přihlašovacích údajů kořenového úložiště.

    Nahraďte zástupné hodnoty:

    • <databricks-instance>: Adresa URL pracovního prostoru pracovního prostoru, ve kterém se vygeneroval osobní přístupový token.
    • <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ě.
    curl -n -X PATCH --header 'Content-Type: application/json' https://<databricks-instance>/api/2.0/unity-catalog/metastores/<metastore-id> --data
    "{\"storage_root_credential_id\": \"<storage-credential-id>\"}"