Použití instančního objektu Microsoft Entra k ověření přístupu ke složkám Git v Azure Databricks
Zjistěte, jak nakonfigurovat ověřený přístup ke složkám Git Azure Databricks hostovaným v Azure DevOps (Azure Repos) pomocí instančního objektu Microsoft Entra.
Pokud máte složky Git Databricks v projektu Databricks, které jsou podporovány úložišti Git Azure Repos a chcete je spravovat ve vaší automatizaci, můžete pomocí informací v tomto článku nakonfigurovat ověřování pomocí instančního objektu Microsoft Entra a Azure DevOps. Po dokončení této úlohy budete mít ověřené přihlašovací údaje Gitu Databricks, které můžete použít ve své automatizaci.
Proč používat Microsoft Entra a ne PAT?
V minulosti byly osobní přístupové tokeny (PAT) upřednostňovaným způsobem ověřování při volání rozhraní API, které vyžaduje specifický přístup a oprávnění k prostředkům. Tyto nosné tokeny představovaly uživatelské jméno a heslo a vyžadovaly pravidelnou rotaci, aby se minimalizovalo riziko zabezpečení, které předložili. Přístupové tokeny Microsoft Entra ID řeší tento problém automatickou správou obměny těchto tokenů každou hodinu a Databricks je doporučuje jako osvědčený postup při práci s prostředky Azure. Vytvořením instančního objektu Microsoft Entra můžete spravovat oprávnění udělená pro přístup k těmto prostředkům bez použití uživatelského účtu Microsoft Azure.
Požadavky
Musíte mít:
- Přístup k projektu Azure DevOps s úložištěm Git Azure Repos připojeným ke složce Git Databricks
- Oprávnění k vašemu účtu Azure k vytvoření instančního objektu MS Entra
- Nainstalovali jsme Azure CLI .
- Nainstalované rozhraní příkazového řádku Databricks
Krok 1: Vytvoření instančního objektu Microsoft Entra
Tento krok můžete přeskočit, pokud už máte nakonfigurovaný instanční objekt Microsoft Entra.
Pokud chcete vytvořit instanční objekt Microsoft Entra, postupujte podle pokynů v dokumentaci k Microsoft Azure: Zaregistrujte aplikaci Microsoft Entra a vytvořte instanční objekt. V části Nastavit ověřování v tomto článku ignorujte první dvě možnosti a postupujte podle kroků v části "Možnost 3: Vytvoření nového tajného klíče klienta".
Po nastavení budete mít:
- Tajný klíč klienta. Bude přítomen jako dlouhý řetězec náhodných znaků.
-
- ID instančního objektu. Toto je jedinečný název, který jste přiřadili instančnímu objektu MS Entra. Osvědčeným postupem je, že název by měl také indikovat, jak a kdy se má použít (například
Databricks_CICD_SP
).
- ID instančního objektu. Toto je jedinečný název, který jste přiřadili instančnímu objektu MS Entra. Osvědčeným postupem je, že název by měl také indikovat, jak a kdy se má použít (například
(Volitelné uživatelské rozhraní pro přesměrování můžete ignorovat v dialogovém okně konfigurace MS Entra, protože se v této konfiguraci nepoužije.)
Zkopírujte je někam dolů, protože je budete používat v budoucích krocích. Po úspěšném dokončení procesu v této dokumentaci zabezpečte nebo odstraňte tyto informace.
Krok 2: Konfigurace oprávnění Azure DevOps pro instanční objekt MS Entra
Nejprve musíte instančnímu objektu MS Entra udělit oprávnění pro přístup k prostředkům Azure DevOps. K tomu musíte použít portál Azure DevOps.
Přihlaste se ke svému účtu Azure DevOps a přejděte k projektu.
V části Oprávnění nastavení>projektu klepněte na tlačítko Čtenáři.
Klikněte na kartu Členové, klepněte na tlačítko Přidat a potom přidejte název instančního objektu MS Entra, který jste vytvořili.
V konzole se vraťte na úroveň organizace vaší organizace Azure DevOps a v dolní části levého podokna klikněte na Nastavení organizace.
Klikněte na Přidat uživatele a>nakonfigurujte přístup pro váš instanční objekt následujícím způsobem:
- Přidejte instanční objekt MS Entra pomocí ID, které jste vytvořili dříve.
- Nakonfigurujte přístup instančního objektu na minimální úroveň, kterou potřebuje k provádění operací v Azure Repos. Oprávnění základní úrovně jsou obvykle dostatečná. Pokud si nejste jistí, jakou úroveň použít, obraťte se na správce organizace Azure DevOps.
- Přidejte instanční objekt do projektu Azure DevOps.
- Přiřaďte instanční objekt ke skupině Přispěvatelé projektu.
Krok 3: Přiřazení oprávnění k instančnímu objektu v Azure Databricks
K instančnímu objektu Microsoft Entra musíte také přiřadit oprávnění v rámci Azure Databricks.
- Přihlaste se ke konzole pro správu účtu Azure Databricks pro váš účet.
- Klikněte na Uživatelé a skupiny.
- Klikněte na kartu Instanční objekty a potom klikněte na Přidat instanční objekt.
- Na stránce Přidat instanční objekt klikněte na spravované ID Microsoft Entra a pak přidejte ID aplikace Microsoft Entra a název instančního objektu z kroku 1: Vytvoření instančního objektu Microsoft Entra. Po dokončení klikněte na Přidat .
- Kliknutím na přidaný instanční objekt Microsoft Entra zobrazíte kartu Informace o objektu zabezpečení.
- Kliknutím na Vygenerovat tajný kód v levém dolním rohu stránky vygenerujete tajný kód OAuth. Tento tajný klíč umožňuje ověřovat volání rozhraní API Azure Databricks pomocí rozhraní příkazového řádku Databricks.
- Zkopírujte tajný řetězec a ID klienta a klikněte na tlačítko Hotovo. Oba použijete v dalším kroku. Vyberte Hotovo.
- Na levém bočním panelu klikněte na Pracovní prostory, zvolte pracovní prostor a potom klikněte na kartu Oprávnění .
- Udělte instančnímu objektu oprávnění "Uživatel" a potom klikněte na přidat oprávnění.
Důležité
Pokud je karta Oprávnění zobrazená šedě, váš pracovní prostor Azure Databricks není přiřazený k metastoru katalogu Unity. Obraťte se na správce Databricks.
Dále vytvoříte přihlašovací údaje Gitu v Azure Databricks.
Krok 4: Vytvoření přístupového tokenu Microsoft Entra ID a jeho uložení jako přihlašovacích údajů Gitu v Azure Databricks
Poznámka:
Tento krok vyžaduje použití rozhraní CLI Azure i Databricks.
Pokud se chcete ověřit v Azure Databricks, musíte mít nakonfigurovaný konfigurační profil (.databrickscfg
) s tajným kódem OAuth, který jste vytvořili v předchozím kroku. Chcete-li nastavit tuto konfiguraci, otevřete .databrickscfg
soubor v editoru a přidejte do souboru následující:
[DEFAULT]
host = https://<workspace-url>.azuredatabricks.net/
client_id = <service principal ID>
client_secret = <Databricks OAuth token value>
Kde host
je adresa URL vašeho pracovního prostoru Databricks, client_id
je ID instančního objektu Microsoft Entra a client_secret
jedná se o tajný klíč klienta OAuth, který jste vytvořili v kroku 3: Přiřazení oprávnění k instančnímu objektu v Azure Databricks.
Teď byste měli mít k dispozici následující hodnoty pro volání rozhraní příkazového řádku v tomto procesu:
- ID klienta instančního objektu z kroků 1 nebo 3 – měly by být stejné. (
sp_id
v následujících příkladech rozhraní příkazového řádku.) - Název instančního objektu z kroku 1. (
sp_name
) - Tajný řetězec klienta instančního objektu z kroku 1. (
sp_secret
) - Název vaší organizace Azure DevOps (
devops_org
) - Název vašeho projektu Azure DevOps (
devops_project
) - Název úložiště Azure Repos (
devops_repo
)
Kromě toho potřebujete ID tenanta Azure (tenant_id
v následujících příkladech) pro vaše předplatné Azure. Pokud ho chcete získat z webu Azure Portal, postupujte podle těchto pokynů.
Teď můžete vytvořit přihlašovací údaje Gitu z Azure CLI.
- Otevřete okno příkazového řádku s přístupem k rozhraní příkazového řádku Azure a rozhraní příkazového řádku Databricks.
- Spuštěním následujícího příkazu Azure CLI se přihlaste jako instanční objekt Microsoft Entra:
az login --allow-no-subscriptions --service-principal -u $sp_id -p $sp_secret --tenant $tenant_id
- Jako instanční objekt Microsoft Entra požádejte přístupový token Microsoft Entra ID a přiřaďte ho proměnné:
ENTRA_ID_TOKEN=$(az account get-access-token --resource "499b84ac-1321-427f-aa17-267ca6975798" --query "accessToken" --output tsv)
- Pomocí přístupového tokenu vytvořte přihlašovací údaje Gitu pro přístup k Azure Databricks pomocí úrovní oprávnění, které jste pro něj nakonfigurovali:
databricks git-credentials create azureDevOpsServices --personal-access-token $ENTRA_ID_TOKEN --git-username $sp_name
- Nakonec vytvořte novou složku Git pomocí instančního objektu Microsoft Entra:
databricks repos create \https://$sp_name@dev.azure.com/$devops_org/$devops_project/_git/$devops_repo
Odpovídající složka Git pro toto úložiště Azure DevOps je teď dostupná ve vašem pracovním prostoru Azure Databricks. Přihlašovací údaje Gitu můžete zadat ke správě z kódu pomocí rozhraní REST API Databricks Repos nebo rozhraní příkazového řádku Databricks.
Naučili jste se, jak vygenerovat přístupový token Microsoft Entra ID vymezený na Azure DevOps a uložit ho jako přihlašovací údaje Gitu Databricks.
Osvědčené postupy
Přístupový token Entra ID je krátkodobý, takže váš kanál musí aktualizovat přihlašovací údaje Gitu Databricks pomocí git-credentials update
. Pak můžete z ní aktivovat žádost o přijetí změn pomocí databricks repos update
.
Důležité
V produkčním nastavení jsou vyžadována další bezpečnostní opatření. V produkčním prostředí byste měli uložit tajný klíč klienta instančního objektu a token Databricks OAuth do zabezpečeného úložiště tajných kódů, jako je Azure Key Vault.