Azure Databricks ワークスペースにアクセスできないときのトラブルシューティング

## はじめに

Azure Databricks ワークスペースでは Entra ID 認証を使用してログインが行われます。

ワークスペースにアクセスできないときのパターンをいくつか紹介し、その際に考えられる原因と解決策を説明していこうと思います。

## 事象 1

### ● エラー内容

<img width="350" alt="スクリーンショット 2022-09-23 14.00.57.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/307853/83ae4e28-e2fc-ab8b-45d4-c442e2a484fc.png">

```text
The workspace you are trying to access does not exist in this Azure region, or your account hoge@hoge.com does not belong to any Databricks workspace in the region.
Please ask your administrator to add you as a user, or click here to logout of Microsoft Entra ID and login with a different user.
```

### ● 原因

ログインを試みている`ユーザーA`がワークスペースに存在していない

### ● 解決策

以下 3 つの方法が考えられます。

* `ワークスペース管理者`が、ワークスペースにて`ユーザーA`を追加する
* `アカウント管理者`が、[アカウントコンソール](https://learn.microsoft.com/ja-jp/azure/databricks/admin/account-settings/)にて`ユーザーA`を該当ワークスペースに追加する
* `ユーザーA`が、Databricks ワークスペースに対し以下のいずれかの権限を持ったうえで、Azure Portal の Databricks 画面にて `Launch Workspace` をクリックする
    * `共同作成者`
    * `所有者`
    *  `Microsoft.Databricks/workspaces/assignWorkspaceAdmin/action` を許可されたカスタム ロール

3 つ目の方法については、`Launch Workspace` をクリックした際に、自動でワークスペースにユーザー追加されます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/307853/0d14880c-9771-5d8a-b262-0e37ba6abca1.png)


### ● 備考

アカウントコンソールに`ユーザーA`が存在していても、ワークスペースに`ユーザーA`が存在するとは限らないことに注意しましょう。

## 事象 2

### ● エラー内容

<img width="350" alt="スクリーンショット 2022-09-23 14.00.57.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/307853/be1f73d9-6791-8683-0380-354386a368c5.png">


```text
Your administrator denied access to workspace XXXXXXXXXX from your current IP.
Contact your administrator for more information.
```

### ● 原因

[IP アクセス リスト](https://learn.microsoft.com/ja-jp/azure/databricks/security/network/front-end/ip-access-list) により、ログインを試みている`ユーザーA`のマシンの IP が拒否されている

### ● 解決策

以下 2 つの方法が考えられます。

* `ワークスペース管理者`が IP アクセス リストの設定を変更し、`ユーザーA`のマシンの IP を許可する
* `ユーザーA`がワークスペースに対し、パブリックアクセスではなく、プライベートエンドポイントを経由してアクセスする

### ● 備考

IP アクセス リストの設定方法は[こちらの記事](https://qiita.com/samskeyti/items/0c5e3543d6d39691cf37)に詳細を記載してあります。

IP アクセスリストはアクセス元パブリック IP の制御であり、プライベートエンドポイントを経由したアクセスについては関与しません。

## 事象 3

### ● エラー内容

<img width="350" alt="スクリーンショット 2022-09-23 14.00.57.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/307853/5e2e44d7-64ad-0811-c6ce-7be204b3231e.png">


```text
Configured privacy settings disallow access for workspace XXXXXXXXXX over your current network.
Please contact your administrator for more information.
```

### ● 原因

下図のようにパブリック アクセス許可が無効のワークスペースに対し、パブリック アクセスしている

<img width="500" alt="スクリーンショット 2022-09-23 14.00.57.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/307853/46f02f35-4991-142b-e2c2-1722a8253fdd.png">

### ● 解決策

以下 2 つの方法が考えられます。

* Azure Portal にてワークスペースのパブリック アクセス許可を有効にする
* ワークスペースに対しプライベート エンドポイント経由でアクセスする

### ● 備考

このエラーでよくあるパターンとして、**プライベート エンドポイント経由でアクセスしているつもりが設定不備によりパブリック アクセスとなっている**場合です。

まずはブラウザのデベロッパーツールでプライベート エンドポイントの IP にアクセスできているか確認しましょう。下図のようにパブリック IP でアクセスしているのであれば、名前解決方式を見直す必要があります。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/307853/5998ac25-90ca-babf-6ca3-744ee186083a.png)

なお、プロキシを利用しているのであれば、デベロッパーツールにプロキシの IP が表示される可能性があります。
その際には、プロキシで Databricks のプライベート エンドポイントがアクセス許可されているか確認しましょう。

## 事象 4

### ● エラー内容

ログイン成功後に以下の画面となる

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/307853/fb6464ff-ad3a-71ba-2834-80036bf1bc1d.png)

```text
Unable to view page
You do not have permission to access this page in workspace XXXXXXXXXX. 
Please contact your workspace administrator to ensure you are assigned to the workspace and have either the "Workspace access" or the "Databricks SQL access" entitlement, which is required to access this page.
If you believe you have received this message an error, please contact Databricks support.
```

### ● 原因

ログインを試みている`ユーザーA`に `Workspace access` が許可されていない

### ● 解決策

`ワークスペース管理者`がワークスペースにて`ユーザーA`に `Workspace access` を有効化する。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/307853/42f8b03c-51fd-44ae-a8a7-210ecc275b3c.png)

## 事象 5

### ● エラー内容

ログイン成功後に真っ白の画面に遷移するなどの UI エラーが発生する

<img width="400" alt="スクリーンショット 2022-09-23 14.00.57.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/307853/d925308b-2e5b-1104-6bf1-bfd26b6e6956.png">

### ● 原因

ブラウザのバージョンが古く、Databricks ワークスペースの UI に対応していない

### ● 解決策

ブラウザのバージョンをアップデートする

### ● 備考

[こちらのページ](https://learn.microsoft.com/ja-jp/azure/databricks/resources/supported-browsers)に記載されている通り、Databricks ワークスペースは最新バージョンのブラウザのみサポートされています。


## 事象 6

### ● エラー内容

ログイン画面に到達しない

<img width="450" alt="スクリーンショット 2022-09-23 14.00.57.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/307853/fb77aac3-c017-7194-fcea-400898231d1f.png">

```text
adb-XXXXXXXXXX.azuredatabricks.net からの応答時間が長すぎます。
次をお試しください
・接続を確認する
・プロキシとファイアウォールを確認する
ERR_CONNECTION_TIMED_OUT
```

### ● 原因

アクセスを試みているマシンから、ワークスペースのエンドポイントへの疎通ができていない

### ● 解決策

ネットワーク疎通の問題なので、例えば以下を確認する必要があります。

* 名前解決で利用している Private DNS Zone や hosts ファイルなどの設定を見直す
* プライベートエンドポイントを利用している際には、アクセス元マシンからプライベートエンドポイントに到達可能か見直す
* プロキシを経由している際には、プロキシのアクセス許可設定を見直す

Azure Databricks のネットワーク設定の詳細は[こちらの記事](https://qiita.com/samskeyti/items/08985ba910fae726124e)に纏めてあります。

## おわりに

Azure Databricks ワークスペースにアクセスできないときの考えられる原因と解決策を説明しました。

問題切り分けの際にお役に立てば幸いです。