Azure Databricks 自動化に Azure マネージド ID 認証を設定して使用する
この記事の手順に従って、Azure リソース (旧 Managed Service Identities (MSI)) のマネージド ID を認証し、Azure Databricks アカウントとワークスペースを自動化します。
Azure は、Microsoft Entra ID 認証をサポートするリソースに接続するときに使用するアプリケーションの Microsoft Entra ID の ID を自動的に管理します。 これらのリソースには、Azure Databricks アカウントとワークスペースが含まれます。 Azure Databricks の Azure マネージド ID 認証では、資格情報を管理することなく、マネージド ID を使用して Microsoft Entra ID トークンを取得します。
- マネージド ID の詳細については、「Azure リソースのマネージド ID とは」を参照してください。
- Azure Databricks の Azure マネージド ID 認証の詳細については、「Azure マネージド ID 認証」を参照してください。
Note
Azure リソースのマネージド ID は、Azure Databricks でも認証をサポートする Microsoft Entra ID マネージド サービス プリンシパルとは異なります。 Azure リソースのマネージド ID の代わりに、Azure Databricks 認証に Microsoft Entra ID マネージド サービス プリンシパルを使用する方法については、次をご参照ください。
この記事では、次のように Azure マネージド ID 認証を設定して使用する方法について説明します。
- ユーザー割り当てマネージド ID を作成します。 Azure では、システム割り当てとユーザー割り当てのマネージド ID がサポートされています。 Databricks では、Azure Databricks での Azure マネージド ID 認証にユーザー割り当てマネージド ID を使用することをお勧めします。
- マネージド ID を Azure Databricks アカウントと、そのアカウントの Azure Databricks ワークスペースに割り当てます。
- Azure 仮想マシン (Azure VM) を作成してログインします。 Azure Databricks アカウントとワークスペース操作をプログラムで呼び出すには、Azure VM などのマネージド ID をサポートするリソースと、その Azure VM に割り当てられたマネージド ID を使用する必要があります。
- ユーザー割り当てマネージド ID を Azure VM に割り当てます。
- Azure VM に Databricks CLI をインストールし、割り当てられたマネージド ID を使用して Azure Databricks の Azure マネージド ID 認証用に Databricks CLI を構成します。
- Databricks CLI でコマンドを実行し、割り当てられたマネージド ID で Azure Databricks の Azure マネージド ID 認証を使用して、Azure Databricks アカウントとワークスペースを自動化します。
要件
- ユーザー割り当てマネージド ID を作成して割り当てるには、Azure サブスクリプションに最低限必要な Azure ロールベースのアクセス制御 (Azure RBAC) 権限が必要です。 「リソースのマネージド ID を使用するために必要な Azure RBAC アクセス許可は何ですか?」をご覧ください。
- マネージド ID を Azure Databricks アカウントに割り当てるには、そのアカウントの管理者である必要があります。 「ユーザーにアカウント管理者ロールを割り当てる」をご覧ください。
- マネージド ID を Azure Databricks ワークスペースに割り当てるには、そのワークスペースの管理者である必要があります。 「ワークスペース管理者設定ページを使用してワークスペース管理者ロールをユーザーに割り当てる」をご確認ください。
- Azure VM を作成し、それにユーザーマネージド ID を割り当てるには、少なくとも Azure サブスクリプションに Virtual Machine Contributor ロールと Managed Identity Operator ロールの割り当てが必要です。
手順 1:ユーザー割り当てマネージド ID を作成する
この手順では、Azure リソースのユーザー割り当てマネージド ID を作成します。 Azure では、システム割り当てとユーザー割り当てのマネージド ID がサポートされています。 Databricks では、Azure Databricks での Azure マネージド ID 認証にユーザー割り当てマネージド ID を使用することをお勧めします。 「ユーザー割り当てマネージド ID の管理」も参照してください。
Azure portal にサインインします。
Note
使用するポータルは、Azure パブリック クラウド、各国のクラウドまたはソブリン クラウドのいずれを使用するかによって異なります。 詳細については、各国のクラウドに関する記事をご覧ください。
複数のテナント、サブスクリプション、またはディレクトリにアクセスできる場合は、上部メニューの歯車 ([設定]) アイコンをクリックして、マネージド ID を作成するディレクトリに切り替えます。
[リソース、サービス、ドキュメントの検索] で、マネージド ID という名前の Azure サービスを検索して選択します。
[+ 作成] をクリックします。
[基本] タブの [リソース グループ] で、このマネージド ID を追加する既存のリソース グループを選択するか、[新規作成] をクリックして、このマネージド ID を追加する新しいリソース グループを作成します。 リソース グループの詳細については、「Azure portal を使用した Azure リソース グループの管理」を参照してください。
[リージョン] で、このマネージド ID を追加する適切なリージョンを選択します。 リージョンの詳細については、適切な Azure リージョンの選択に関するページを参照してください。
[名前] に、覚えやすいこのマネージド ID の一意の名前を入力します。
[確認と作成] タブで、[作成] をクリックします。
[リソースに移動] をクリックします。
後で手順 2、3、および 8 で必要になりますので、[クライアント ID] フィールドの値をコピーします。
この値をコピーし忘れた場合は、後でマネージド ID の概要ページに戻って取得できます。 マネージド ID の概要ページに戻すには、[リソース、サービス、ドキュメントの検索] で、マネージド ID の名前を検索して選択します。 次に、マネージド ID の設定ページで、サイドバーの [概要] をクリックします。
手順 2: マネージド ID を Azure Databricks アカウントに割り当てる
この手順では、マネージド ID に Azure Databricks アカウントへのアクセス権を付与します。 マネージド ID に Azure Databricks アカウントへのアクセス権を付与しない場合は、手順 3 に進んでください。
Azure Databricks ワークスペースの上部バーでユーザー名をクリックし、[アカウントを管理する] をクリックします。
または、https://accounts.azuredatabricks.net で Azure Databricks アカウント コンソールに直接移動します。
ダイアログが表示されたら、Azure Databricks アカウントにサインインします。
サイドバーで、[ユーザー管理] をクリックします。
[サービス プリンシパル] タブをクリックします。
Note
このタブにはサービス プリンシパルというラベルが付いていますが、このタブはマネージド ID でも機能します。 Azure Databricks は、マネージド ID を Azure Databricks アカウントのサービス プリンシパルとして扱います。
[サービス プリンシパルの追加] をクリックします。
覚えやすいサービス プリンシパルの一意の名前を入力します。
[UUID]に、手順 1 のマネージド ID のクライアント ID 値を入力します。
[追加] をクリックします。 マネージド ID は、Azure Databricks アカウントのサービス プリンシパルとして追加されます。
サービス プリンシパルに付与するアカウント レベルのアクセス許可を割り当てます。
- [サービス プリンシパル] タブで、サービス プリンシパルの名前をクリックします。
- [ロール] タブで、このサービス プリンシパルに必要な各ターゲット ロールを有効または無効に切り替えます。
- [アクセス許可] タブで、このサービス プリンシパルを管理して使用する Azure Databricks ユーザー、サービス プリンシパル、アカウント グループ ロールにアクセス権を付与します。 「サービス プリンシパルのロールを管理する」を参照してください。
手順 3: マネージド ID を Azure Databricks ワークスペースに割り当てる
この手順では、マネージド ID に Azure Databricks ワークスペースへのアクセス権を付与します。
ワークスペースで ID フェデレーションが有効になっている場合は、次のようにします。
Azure Databricks ワークスペースの上部バーでユーザー名をクリックし、[設定] をクリックします。
[サービス プリンシパル] をクリックします。
Note
このタブにはサービス プリンシパルというラベルが付いていますが、このタブはマネージド ID でも機能します。 Azure Databricks は、マネージド ID を Azure Databricks アカウントのサービス プリンシパルとして扱います。
[サービス プリンシパルの追加] をクリックします。
手順 2 のサービス プリンシパルを選択し、[追加] をクリックします。 サービス プリンシパルが、Azure Databricks ワークスペースのサービス プリンシパルとして追加されます。
サービス プリンシパルに付与するワークスペースレベルのアクセス許可を割り当てます。
- [サービス プリンシパル] タブで、サービス プリンシパルの名前をクリックします。
- [構成] タブで、このサービス プリンシパルに付与する各ターゲットの状態または権利を許可する場合はオン、取り消す場合はオフにします。
- [アクセス許可] タブで、このサービス プリンシパルを管理して使用する Azure Databricks ユーザー、サービス プリンシパル、アカウント グループ ロールにアクセス権を付与します。 「サービス プリンシパルのロールを管理する」を参照してください。
手順 4 に進んでください。
ワークスペースで ID フェデレーションが有効になっていない場合は、次のようにします。
Azure Databricks ワークスペースの上部バーでユーザー名をクリックし、[設定] をクリックします。
[サービス プリンシパル] をクリックします。
Note
このタブにはサービス プリンシパルというラベルが付いていますが、このタブはマネージド ID でも機能します。 Azure Databricks は、マネージド ID を Azure Databricks ワークスペースのサービス プリンシパルとして扱います。
[サービス プリンシパルの追加] をクリックします。
[サービス プリンシパル] の一覧で、[新しいサービス プリンシパルの追加] を選択します。
ApplicationId の場合は、手順 1 でマネージド ID のクライアント ID を入力します。
新しいサービス プリンシパルの覚えやすい表示名を入力し、[追加] をクリックします。 マネージド ID は、Azure Databricks ワークスペースのサービス プリンシパルとして追加されます。
サービス プリンシパルに付与するワークスペースレベルのアクセス許可を割り当てます。
- [サービス プリンシパル] タブで、サービス プリンシパルの名前をクリックします。
- [構成] タブで、このサービス プリンシパルに付与する各ターゲットの状態または権利を許可する場合はオン、取り消す場合はオフにします。
- [アクセス許可] タブで、このサービス プリンシパルを管理して使用する Azure Databricks ユーザー、サービス プリンシパル、アカウント グループ ロールにアクセス権を付与します。 「サービス プリンシパルのロールを管理する」を参照してください。
手順 4: Azure Databricks ワークスペースの Azure リソース ID を取得する
この手順では、Azure が Azure Databricks ワークスペースに割り当てるリソース ID を取得します。 この Azure リソース ID は後で必要です。Azure マネージド ID 認証が、Azure Databricks ワークスペースに関連付けられている特定の Azure リソースを決定するのに役立ちます。
Azure Databricks ワークスペースの上部バーでユーザー名をクリックし、[Azure Portal] をクリックします。
サイド ウィンドウの [設定] セクションで、[プロパティ] をクリックします。
Essential セクションで、Id 値をコピーします。これは、後で手順 8 で必要になります。 次のようになっているはずです。
/subscriptions/<subscription-id>/resourceGroups/<resource-group-id>/providers/Microsoft.Databricks/workspaces/<workspace-id>
手順 5: Azure VM を作成してログインする
この手順では、Azure 仮想マシン (Azure VM) を作成してログインします。 Azure VM は、マネージド ID をサポートするリソースの種類の 1 つです。 「クイック スタート: Azure portal で Linux 仮想マシンを作成する」もご覧ください。
この Azure VM は、デモンストレーションのみを目的としています。 この Azure VM では、継続的な使用ニーズに合わせて最適化されている設定が必ずしも使用されているわけではありません。 この Azure VM の実験が完了したら、手順 11 で後述するように削除する必要があります。
手順 1 でサインインした Azure portal の [リソース、サービス、ドキュメントの検索] で、仮想マシンという名前の Azure サービスを検索して選択します。
Click [+ Create] (+ 作成) > [Azure 仮想マシン] をクリックします。
[基本] タブの [リソース グループ] で、この Azure VM を追加する既存のリソース グループを選択するか、[新規作成] をクリックして、この Azure VM を追加する新しいリソース グループを作成します。 リソース グループの詳細については、「Azure portal を使用した Azure リソース グループの管理」を参照してください。
[仮想マシン名] に、覚えやすいこの Azure VM の一意の名前を入力します。
[リージョン] で、この Azure VM を追加する適切なリージョンを選択します。 リージョンの詳細については、適切な Azure リージョンの選択に関するページを参照してください。
[イメージ] には、[Ubuntu Server 22.04 LTS - x64 Gen 2] を選びます。
[認証の種類] には [SSH 公開キー] を選択します。
[ユーザー名] に「
azureuser
」と入力します。[SSH 公開キー ソース] は、既定値の [新しいキーの組を生成] のままにします。
[キーの組の名前] に「
myKey
」と入力します。[パブリック受信ポート] で、[選択したポートを許可する] を選択します。
[受信ポートを選択] で、[HTTP (80)] と [SSH (22)] を選択します。
それ以外は、既定の設定をそのまま使用します。
[確認と作成] タブで、[作成] をクリックします。
[秘密キーのダウンロードとリソースの作成] をクリックします。 キー ファイルは、ローカル開発マシンに
myKey.pem
としてダウンロードされます。 このmyKey.pem
ファイルがダウンロードされる場所をメモしておきます。この手順の後半で Azure VM にログインするために必要になります。キー ファイルを紛失した場合は、後で Azure VM の設定ページに戻り、代替キー ファイルを取得できます。 Azure VM の設定ページに戻るために、[リソース、サービス、ドキュメントの検索]で、Azure VM を検索して選択します。 Azure VM の設定ページから代替キー ファイルを取得するには、次の操作を行います。
- サイド ウィンドウの [ヘルプ] セクションで、[パスワードのリセット] をクリックします。
- [Add SSH public key] (SSH 公開キーの追加) を選択します。
- [キーの組の名前] に一意の名前を入力します。
- [Update] をクリックします。
- [ダウンロードと作成] をクリックします。 キー ファイルは
.pem
拡張子付きでダウンロードされます。 この.pem
ファイルがダウンロードされる場所をメモしておきます。この手順の後半で Azure VM にログインするために必要になります。
Azure VM の作成後、[リソースに移動] をクリックします。
この手順の後半で Azure VM にログインする必要があるため、[パブリック IP アドレス] フィールドの値をコピーします。
この値をコピーし忘れた場合は、後で Azure VM の概要ページに戻って取得できます。 Azure VM の概要ページに戻るために、[リソース、サービス、ドキュメントの検索]で、Azure VM を検索して選択します。 次に、Azure VM の設定ページで、サイドバーの [概要] をクリックし、[パブリック IP] フィールドを探します。
ローカル開発マシンが Windows 上で Linux、macOS、または WSL を実行している場合は、ダウンロードした秘密キーへの読み取り専用アクセス権があることを確認します。 これを行うには、ローカル開発マシンのターミナルまたはコマンド プロンプトから次のコマンドを実行します。 このコマンドでは、次の値を置き換えます。
- ダウンロードした
.pem
ファイルへのパスで</path/to>
を置き換えます。 - ダウンロードした
.pem
ファイルのファイル名でmyKey.pem
を置き換えます。
chmod 400 </path/to>/myKey.pem
- ダウンロードした
Azure VM にログインします。 これを行うには、ローカル開発マシンのターミナルまたはコマンド プロンプトから次のコマンドを実行します。 このコマンドでは、次の値を置き換えます。
- ダウンロードした
.pem
ファイルへのパスで</path/to>
を置き換えます。 - ダウンロードした
.pem
ファイルのファイル名でmyKey.pem
を置き換えます。 - この手順で先ほどコピーした [パブリック IP アドレス] フィールドの値で
<public-ip-address>
を置き換えます。
ssh -i </path/to>/myKey.pem azureuser@<public-ip-address>
次に例を示します。
ssh -i ./myKey.pem azureuser@192.0.2.0
- ダウンロードした
この Azure VM にこれまで一度も接続したことがない場合は、ホストのフィンガープリントを確認するように求めるメッセージが表示されます。 これを行うには、画面の指示に従います。 Databricks では、ホストの指紋を常に検証することをお勧めします。
ターミナルまたはコマンド プロンプトが
azureuser@<your-azure-vm-name>:~$
に変わります。Azure VM をいつでも終了するには、コマンド
logout
またはexit
を実行します。 その後、ターミナルまたはコマンド プロンプトが通常の状態に戻ります。
手順 6: マネージド ID を Azure VM に割り当てる
この手順では、マネージド ID を Azure VM に関連付けます。 これにより、Azure VM の実行中に必要に応じて、Azure で認証にマネージド ID を使用できます。 「ユーザー割り当てマネージド ID を既存の VM に割り当てる」もご覧ください。
手順 1 でサインインした Azure portal の Azure VM の設定ページのサイド ウィンドウの [設定] セクションで、[ID] をクリックします。
前に閉じた場合に、Azure VM の概要ページに戻るには、[リソース、サービス、ドキュメントの検索]で、Azure VM を検索して選択します。
[ユーザー割り当て済み] タブで [+ 追加] をクリックします。
手順 1 で作成したユーザー割り当てマネージド ID を選択し、[追加] をクリックします。
手順 7: Azure VM に Databricks CLI をインストールする
この手順では、Databricks CLI をインストールし、それを使用して Azure Databricks アカウントとワークスペースを自動化するコマンドを実行できるようにします。
ヒント
Databricks Terraform プロバイダーまたは Databricks SDK for Go を Azure マネージド ID 認証と共に使用して、HCL または Go コードを実行して Azure Databricks アカウントとワークスペースを自動化することもできます。 「Databricks SDK for Go」と「Azure マネージド ID 認証」を参照してください。
ターミナルまたはコマンド プロンプトが引き続き開き、手順 5 で Azure VM にログインしたら、次の 2 つのコマンドを実行して Databricks CLI をインストールします。
sudo apt install unzip curl -fsSL https://raw.githubusercontent.com/databricks/setup-cli/main/install.sh | sudo sh
次のコマンドを実行して、Databricks CLI がインストールされていることを確認します。このコマンドを実行すると、インストールされている Databricks CLI のバージョンが出力されます。
databricks -v
手順 8: Azure マネージド ID 認証用に Databricks CLI を構成する
この手順では、マネージド ID の設定で Azure Databricks の Azure マネージド ID 認証を使用するように Databricks CLI を設定します。 これを行うには、Databricks CLI が必要な認証設定を検索することを想定している既定の場所に、既定のファイル名を含むファイルを作成します。
ターミナルまたはコマンド プロンプトが引き続き開き、手順 5 で Azure VM にログインした状態で、次のコマンドを実行して、
vi
テキスト エディターを使用して、ログインしているユーザーのホーム ディレクトリで編集用の.databrickscfg
という名前のファイルを作成して開きます。vi ~/.databrickscfg
エディター キーの組み合わせ
Esc
を押して.databrickscfg
ファイルの編集を開始し、次にi
を押します。 コマンド プロンプトが表示されなくなり、vi
エディターが起動し、.databrickscfg
ファイルが編集モードであることを示す単語-- INSERT --
がエディターの下部に表示されます。次のコンテンツを入力します。 このコンテンツでは、次の値を置き換えます。
<account-console-url>
を Azure Databricks アカウント コンソールの URL (https://accounts.azuredatabricks.net など) に置き換えます。<account-id>
を Azure Databricks アカウント ID に置き換えます。 「アカウント ID を特定する」を参照してください。<azure-managed-identity-application-id>
を手順 1 のマネージド ID のクライアント ID 値に置き換えます。<workspace-url>
をワークスペースごとの URL に置き換えます (例:https://adb-1234567890123456.7.azuredatabricks.net
)。<azure-workspace-resource-id>
を手順 4 の Azure リソース ID に置き換えます。- 必要に応じて、推奨される構成プロファイル名
AZURE_MI_ACCOUNT
とAZURE_MI_WORKSPACE
を別の構成プロファイル名に置き換えることができます。 これらの特定の名前は必要ありません。
アカウントレベルの操作を実行しない場合は、次の内容の
[AZURE_MI_ACCOUNT]
セクションを省略できます。[AZURE_MI_ACCOUNT] host = <account-console-url> account_id = <account-id> azure_client_id = <azure-managed-identity-application-id> azure_use_msi = true [AZURE_MI_WORKSPACE] host = <workspace-url> azure_workspace_resource_id = <azure-workspace-resource-id> azure_client_id = <azure-managed-identity-application-id> azure_use_msi = true
エディター キーの組み合わせ
Esc
を押し、次に「:wq
」と入力してから、Enter
を入力して、編集内容を.databrickscfg
ファイルに保存します。vi
エディターが閉じ、コマンド プロンプトが再び表示されます。
手順 9: アカウントレベルのコマンドを実行する
この手順では、Databricks CLI を使用して、手順 8 で構成した Azure Databricks アカウントを自動化するコマンドを実行します。
アカウントレベルのコマンドを実行しない場合は、手順 10 に進んでください。
ターミナルまたはコマンド プロンプトが引き続き開き、手順 5 で Azure VM にログインしたら、次のコマンドを実行して、Azure Databricks アカウントで使用可能なすべてのユーザーを一覧表示します。 手順 8 で AZURE_MI_ACCOUNT
の名前を変更した場合は、必ずここで置き換えてください。
databricks account users list -p AZURE_MI_ACCOUNT
手順 10: ワークスペースレベルのコマンドを実行する
この手順では、Databricks CLI を使用して、手順 8 で構成した Azure Databricks ワークスペースを自動化するコマンドを実行します。
ターミナルまたはコマンド プロンプトが引き続き開き、手順 5 で Azure VM にログインしたら、次のコマンドを実行して、Azure Databricks ワークスペースで使用可能なすべてのユーザーを一覧表示します。 手順 8 で AZURE_MI_WORKSPACE
の名前を変更した場合は、必ずここで置き換えてください。
databricks users list -p AZURE_MI_WORKSPACE
手順 9: クリーン アップする
この手順はオプションです。 コストを節約するために Azure VM が削除され、マネージド ID を使用し続けたくない場合は削除されます。 この手順では、Azure Databricks アカウントとワークスペースから削除されたマネージド ID も完全に削除されます。
Azure VM を削除する
- ターミナルまたはコマンド プロンプトが開いたままで、手順 5 で Azure VM にログインしている場合は、コマンド
logout
またはexit
を実行して Azure VM を終了します。 その後、ターミナルまたはコマンド プロンプトが通常の状態に戻ります。 - 手順 1 でサインインした Azure portal で、先ほど閉じた場合は、Azure VM の概要ページに戻ります。 これを行うには、[リソース、サービス、ドキュメントの検索] で、Azure VM の名前を検索して選択します。
- Azure VM の概要ページのメニュー バーで、[削除] をクリックします。
- [I have read and understand] (読んで理解しました) チェック ボックスをオンにし、[削除] をクリックします。
Azure サブスクリプションからマネージド ID を削除する
- 手順 1 でサインインした Azure portal で、先ほど閉じた場合は、マネージド ID の概要ページに戻ります。 これを行うには、[リソース、サービス、ドキュメントの検索] で、マネージド ID の名前を検索して選択します。
- マネージド ID の概要ページのメニュー バーで、[削除] をクリックします。
- [I have read and understand] (読んで理解しました) チェック ボックスをオンにし、[削除] をクリックします。
Azure Databricks アカウントからマネージド ID を削除する
- Azure Databricks アカウントのサイドバーで、[ユーザー管理] をクリックします。
- [サービス プリンシパル] タブをクリックします。
- 手順 2 で追加したサービス プリンシパルの名前をクリックします。 サービス プリンシパルの名前が表示されない場合は、[サービス プリンシパルをフィルター処理します] を使用して検索します。
- 省略記号ボタンをクリックし、[削除] をクリックします。
- [削除の確認] をクリックします。
Azure Databricks ワークスペースからマネージド ID を削除する
- Azure Databricks ワークスペースの上部バーでユーザー名をクリックし、[設定] をクリックします。
- [サービス プリンシパル] タブをクリックします。
- 手順 3 で追加したサービス プリンシパルの名前をクリックします。 サービス プリンシパルの名前が表示されない場合は、[サービス プリンシパルをフィルター処理します] を使用して検索します。
- [削除] をクリックします。
- 確認のダイアログで [削除] をクリックします。