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

Tato stránka popisuje, jak používat spravované identity služby Azure pro připojení ke kontejnerům úložiště jménem uživatelů katalogu Unity.

Co jsou spravované identity Azure?

Unity Catalog 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.

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 oproti konfiguraci katalogu Unity se služebním principálem:

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 ke svému účtu Azure Data Lake Storage a použijete přístupový konektor při vytváření metastoru katalogu Unity nebo přihlašovacích údajů úložiště.

Požadavky

Azure uživatel nebo služební principál, který vytvoří přístupový konektor, musí:

  • Být Contributor nebo Owner skupiny prostředků Azure.

Azure uživatel nebo služba principal, který přiřazuje spravovanou identitu úložišti, musí:

  • Buď Owner, nebo uživatel s rolí Azure RBAC na účtu úložiště.

Step 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 zahrnovat spravovanou identitu přiřazenou systémem, jednu nebo více spravovaných identit přiřazených uživatelem nebo obojí.

  1. Přihlaste se k 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 záložce Základy přijměte, vyberte nebo zadejte hodnoty pro následující pole:

    • Subscription: Toto je předplatné Azure, ve které se vytvoří přístupový konektor. Výchozí hodnota je Azure předplatné, které aktuálně používáte. Může to být libovolné předplatné v rámci účtu tenant.
    • Skupina prostředků: Toto je skupina 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 Další, zadejte značky a klikněte na Další.

  7. Na kartě Spravovaná identita vytvořte spravované identity následujícím způsobem:

    • Pokud chcete použít spravovanou identitu přiřazenou systémem, nastavte stav na Zapnuto
    • Pokud chcete přidat spravované identity přiřazené uživatelem, klikněte na + Přidat a vyberte jednu nebo více spravovaných identit přiřazených uživatelem.

    Konfigurace spravovaných identit pro přístupový konektor

  8. Klikněte na Zkontrolovat a vytvořit.

  9. Až se zobrazí zpráva Ověření proběhlo úspěšně, klikněte na Vytvořit.

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

  11. 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 v účtu úložiště roli Owner nebo User Access Administrator Azure RBAC.

Pokud spravované identitě udělíte přístup k účtu úložiště a kontejneru, máte následující možnosti:

  • Udělte oprávnění ke čtení a zápisu k celému účtu úložiště pomocí role Storage Blob Data Contributor.
  • Udělte účtu úložiště omezenější roli pomocí role Storage Blob Delegator a umožněte přístup ke čtení a zápisu ke konkrétnímu kontejneru pomocí role Storage Blob Data Contributor.

Následující pokyny předpokládají, že udělujete Storage Blob Data Contributor roli účtu úložiště, ale podle potřeby můžete nahradit další možnosti:

  1. Přihlaste se ke svému účtu Azure Data Lake Storage.
  2. Přejděte na Access Control (IAM), klikněte na + Přidat a vyberte Přidat přiřazení role.
  3. Vyberte roli přispěvatele dat objektu blob služby Storage a klikněte na Další.
  4. V části Přiřadit přístup kvyberte spravovanou identitu.
  5. Klikněte na +Vybrat členy a vyberte konektor Access pro Azure Databricks nebo uživatelem přiřazenou spravovanou identitu.
  6. Vyhledejte název konektoru nebo uživatelsky přiřazenou identitu, vyberte jej a klikněte na Zkontrolujte a přiřaďte.

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

Informace o konfiguraci požadovaných rolí Azure a povolení událostí souborů pro externí umístění najdete v tématu Nastavení událostí souborů pro externí umístění.

Použití spravované identity pro přístup k účtu kořenového úložiště katalogu Unity

Tato část popisuje, jak udělit spravované identitě přístup k hlavní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 k 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 ikonu Data.Katalog.

  3. Klikněte na Vytvořit metastore.

  4. Zadejte hodnoty do následujících polí:

    • 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ě.

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

      Ujistěte se, že cesta začíná na abfss://.

    • ID konektoru Access: Zadejte ID prostředku přístupového konektoru 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 vám umožňuje přistupovat k existujícím datům v účtech úložiště za pomoci přístupových údajů úložiště a externích umístění. Údaje pro přístup k úložišti ukládají spravovanou identitu a externí umístění definují cestu k úložišti spolu s odkazem na přístupové údaje. 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ě mohou obsahovat spravovanou identitu nebo služební účet. Použití spravované identity umožňuje katalogu Unity přístup k účtům úložiště chráněným síťovými pravidly, což není možné pomocí servisních identit, a odstraňuje potřebu spravovat a měnit tajné kódy.

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í Azure virtuální síti, označované také jako injekce VNet, a k ochraně účtu Azure Data Lake Storage používáte bránu firewall úložiště, musíte:

  1. Povolte pracovnímu prostoru Azure Databricks přístup k Azure Storage.
  2. Povolte spravovanou identitu pro přístup k Azure Storage.

Krok 1. Povolte vašemu pracovnímu prostoru Azure Databricks přístup k Azure Storage.

Musíte nakonfigurovat nastavení sítě tak, aby váš pracovní prostor Azure Databricks měl přístup k Azure Data Lake Storage. Nejprve se ujistěte, že je váš pracovní prostor Azure Databricks nasazený ve vaší vlastní virtuální síti podle pokynů v Nasazení Azure Databricks ve virtuální síti Azure (vkládání VNet). Pak můžete nakonfigurovat buď soukromé koncové body, nebo přístup z vaší virtuální sítě tak, aby umožňovaly připojení z vašich podsítí k vašemu účtu Azure Data Lake Storage.

Pokud používáte bezserverové výpočetní prostředky, jako jsou bezserverové služby SQL Warehouse, musíte udělit přístup z bezserverové výpočetní roviny pro Azure Data Lake Storage. Viz Bezserverové výpočetní platformové sítě.

Krok 2: Povolte spravované identitě přístup k Azure Storage

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

  • Každý přístupový konektor pro Azure Databricks ve stejném tenantovi jako účet úložiště má přístup k účtu úložiště.
  • K účtu úložiště mají přístup všechny Azure důvěryhodné služby. Podívejte se na Přístup 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í Azure Portal

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

  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 zdrojů vyberte typ prostředku jako Microsoft.Databricks/accessConnectors a zvolte svůj přístupový konektor Azure Databricks.

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

Použití Azure CLI

  1. Instalujte Azure CLI a sign in. Pokud se chcete přihlásit pomocí uživatelského účtu nebo představitele služby, viz Přihlaste se pomocí Azure CLI.

  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 do svého účtu Azure Storage v Azure Portal a zobrazte spravovanou identitu v Networking v části instance Resource instance, typ prostředku Microsoft.Databricks/accessConnectors.

  4. V části Exceptions zrušte zaškrtnutí políčka Volit Azure služby v seznamu důvěryhodných služeb pro 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 zachovat tuto hodnotu nastavenou na Povoleno z vybraných virtuálních sítí a IP adres.

Serverless SQL Warehouses jsou výpočetní prostředky, které běží v předplatném Azure pro Azure Databricks, ne pro vaše Azure předplatné. Pokud nakonfigurujete bránu firewall na Azure Data Lake Storage 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 (starší verze).

Upgradujte stávající metastore katalogu Unity, aby používal spravovanou identitu pro přístup ke 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 přístupový 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, a to pomocí pokynů v Konfigurujte spravovanou identitu 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.

    Zapište si ID prostředku přístupového konektoru. Pokud používáte uživatelem přiřazenou spravovanou identitu, také si poznamenejte její 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. Vygenerování osobního přístupového tokenu.

  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, ve kterém jste vygenerovali svůj osobní přístupový token.
    • Hodnota osobního přístupového tokenu.

    Viz ověřování osobního přístupového tokenu (starší verze).

  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 zdroje 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>
    • <managed-identity-id>: Pokud jste vytvořili přístupový konektor pomocí uživatelem přiřazené spravované identity, zadejte ID prostředku této 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. Spusťte následující příkaz Databricks CLI pro načtení 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>