Sdílet prostřednictvím


Ověřování pomocí Azure DevOps v Azure Databricks

Tato stránka vysvětluje, jak nakonfigurovat kanály Azure DevOps pro ověření rozhraní příkazového řádku Databricks a volání rozhraní API do Azure Databricks.

Než začnete

Před konfigurací ověřování Azure DevOps proveďte tyto kroky:

  1. Vytvořte instanční objekt v Azure a přidejte ho do pracovního prostoru Azure Databricks s příslušnými oprávněními. Bez tohoto kroku ověřování selže i v případě, že je váš kanál správně nakonfigurovaný.

    Pro služební hlavní účty spravované Microsoft Entra ID vytvořte aplikaci Microsoft Entra ID v Azure a pak ji přidejte do pracovního prostoru. Viz Obslužní uživatelé a správa obslužních uživatelů.

  2. Přidejte krok do svého pipeline pro instalaci Databricks CLI na agenta:

    - script: |
        curl -fsSL https://raw.githubusercontent.com/databricks/setup-cli/main/install.sh | sh
      displayName: 'Install Databricks CLI'
    

    Návod

    Pokud chcete připnout instalaci rozhraní příkazového řádku na konkrétní verzi místo nejnovější verze, nahraďte main ji značkou verze (například v0.224.0).

Volba metody ověřování

Azure DevOps spravuje ověřování prostřednictvím připojení služeb. Přístup k nim najdete na portálu Azure DevOps v částiPřipojení služby> Service.

Výběr připojení služby v nastavení Projectu v Azure DevOps

K ověření rozhraní příkazového řádku Databricks použijte typ připojení služby Azure Resource Manager s jednou z těchto metod:

Metoda Description Nejvhodnější pro
Federace identit úloh (doporučeno) K získání tokenů používá OpenID Connect (OIDC). Pro konfiguraci je nutné nastavit vystavitele a identifikátor subjektu vygenerované v Azure DevOps s vaším servisním účtem. Zabezpečené ověřování bez tajných kódů
Principál služby s tajným klíčem klienta Používá ID klienta a tajný klíč k vygenerování krátkodobých tokenů OAuth. Vyžaduje vygenerování tajemství pro služební principál. Scénáře vyžadující sdílené přihlašovací údaje napříč úlohami
Spravovaná identita Používá identitu přiřazenou k virtuálnímu počítači nebo kontejneru, na kterém běží kanál. Platí jenom pro vlastní spouštěče. Prohlédnou si dokumentaci k Azure. Běžci pro vlastní hostování s přiřazenými identitami

Poznámka:

Pokud je to možné, použijte federaci identit pracovních úloh. Nespoléhá na tajné kódy, takže je bezpečnější než jiné metody. Funguje automaticky s úlohou AzureCLI@2 bez ruční konfigurace. Viz Vytvořte připojení služby, které používá federaci identit úloh.

Konfigurace ověřování Azure CLI

Rozhraní příkazového řádku Databricks používá k ověřování ve výchozím nastavení Azure CLI. Všechny příkazy rozhraní příkazového řádku Databricks se musí spouštět uvnitř AzureCLI@2 úlohy, což znamená, že se jednotlivé úlohy ověřují nezávisle. To představuje určitou latenci, ale vyžaduje minimální konfiguraci.

- task: AzureCLI@2
  inputs:
    azureSubscription: <your-service-connection-name>
    useGlobalConfig: true
    scriptType: bash
    scriptLocation: inlineScript
    inlineScript: |
      export DATABRICKS_HOST=https://adb-<workspace-id>.<region>.azuredatabricks.net
      databricks bundle deploy

Aktualizujte tyto hodnoty:

  • azureSubscription: Název připojení služby Azure Resource Manager.
  • useGlobalConfig:Požadovaný. Zajišťuje, že podprocesy vytvářené pomocí příkazů databricks bundle mají přístup k uživatelsky ověřené relaci.
  • DATABRICKS_HOST: Tuto hodnotu nastavte, pokud ještě není definována v konfiguraci sady prostředků nebo v předchozím kroku.

Konfigurace ověřování tajných klíčů klienta

Tajný klíč klienta použijte v případě, že potřebujete sdílet přihlašovací údaje napříč několika úlohami nebo když ověřování Azure CLI přidává příliš velkou latenci.

Tento přístup načte podrobnosti ověřování z připojení služby v jedné úloze a pak je exportuje jako proměnné prostředí na úrovni úlohy pro následné úlohy.

- task: AzureCLI@2
  inputs:
    azureSubscription: <your-service-connection-name>
    addSpnToEnvironment: true
    scriptType: bash
    scriptLocation: inlineScript
    inlineScript: |
      echo "##vso[task.setvariable variable=ARM_CLIENT_ID]${servicePrincipalId}"
      echo "##vso[task.setvariable variable=ARM_CLIENT_SECRET]${servicePrincipalKey}"
      echo "##vso[task.setvariable variable=ARM_TENANT_ID]${tenantId}"

- script: |
    export DATABRICKS_HOST=https://adb-<workspace-id>.<region>.azuredatabricks.net
    databricks bundle deploy

Poznámka:

  • Klíč addSpnToEnvironment zpřístupňuje servicePrincipalId, servicePrincipalKey a tenantId vloženému skriptu.
  • Příkazy ##vso převedou proměnné s úlohovým rozsahem na proměnné s rozsahem úlohy, které rozhraní příkazového řádku Databricks automaticky rozpozná.
  • Ve výchozím nastavení je ARM_CLIENT_SECRET dostupná pro všechny následné kroky. Pokud chcete omezit přístup, přidejte issecret=true do definice proměnné a pak ho explicitně předejte každému kroku, který ho potřebuje. Tajný kód se maskuje v protokolech bez ohledu na toto nastavení.

Úplný příklad najdete v tématu Autorizace služebního principálu Microsoft Entra pro přístup ke složkám Git.

Konfigurace ověřování spravovaných identit

Ověřování spravované identity spoléhá na konfiguraci virtuálního počítače nebo kontejneru místo úloh kanálu. Tato metoda nevyžaduje AzureCLI@2 úlohu.

- script: |
    export DATABRICKS_AZURE_RESOURCE_ID=/subscriptions/<subscription-id>/resourceGroups/<resource-group>/providers/Microsoft.Databricks/workspaces/<workspace-name>
    export ARM_CLIENT_ID=<managed-identity-client-id>
    export ARM_USE_MSI=true
    export DATABRICKS_HOST=https://adb-<workspace-id>.<region>.azuredatabricks.net
    databricks current-user me

Aktualizujte tyto hodnoty:

  • DATABRICKS_AZURE_RESOURCE_ID: Tuto hodnotu vyhledejte v části Vlastnosti vašeho pracovního prostoru na webu Azure Portal.
  • ARM_CLIENT_ID: ID klienta spravované identity.
  • DATABRICKS_HOST: Volitelné. Pokud není nastavena, hodnota je odvozena z DATABRICKS_AZURE_RESOURCE_ID.

Spravovaná identita musí mít roli Přispěvatel v pracovním prostoru Azure Databricks.

Viz také