これはなに?
DatabricksでIP制限するための手順メモ。
Azureを利用している場合は、P1ライセンスを持っていればAzureADの認証部分でも実施可能ですが、今回はDatabricksの機能を使ってIP制限します。
環境情報
- クラウド: Azure
- Databricks ライセンス: Premium
※ IP制限(IPアクセスリスト)はPremiumライセンスが必須
構成イメージ

オフィス等の特定のIPからのみDatabricksへのアクセスを許可し、それ以外の場所からのアクセスを拒否するようIP制限する。
手順
IP制限は、DatabricksAPIから実施する必要があります。 DatabricksAPIの利用にはアクセストークンが必要なため、アクセストークンを払い出し、その後、APIを使ってIP制限の設定を実施します。
1. アクセストークンの払い出し
① Databricksコンソールにログインし、[User Settings] - [Generete New Token] をクリックする

② Comment と Lifetime に任意の値を入れて、[Generate] をクリックする

③ 表示されたアクセストークン情報をメモする

上記でアクセストークンの払い出しは完了です。
2. IPアクセスリスト 設定
APIを実行するのはPostmanを利用していますが、Curlなど利用する場合は以下を参照ください。
Azure Databricks 個人用アクセストークンを使用した認証-Azure Databricks - Workspace | Microsoft Docs
① IPアクセスリスト 設定の確認
- メソッド: Get
- エンドポイント: https://<DatabricksのURL>/api/2.0/workspace-conf?keys=enableIpAccessLists
- 認証(Bearer Token): <1で取得したアクセストークン>
<レスポンス >
{
"enableIpAccessLists": null
}
一度も設定していない場合は、Nullが返ってきます。
② IP アクセスリスト機能を有効にする
- メソッド: PATCH
- エンドポイント: https://<DatabricksのURL>/api/2.0/workspace-conf?keys=enableIpAccessLists
- 認証(Bearer Token): <1で取得したアクセストークン>
- Body(Json) :
{
"enableIpAccessLists": "true"
}
<レスポンス >
null
①の設定確認APIを実行すると"enableIpAccessLists"が"true"になっていることを確認できます。
③ IPアクセスリストにIP制限の設定を追加する
今回はブラックリストとします。
- メソッド: Post
- エンドポイント: https://<DatabricksのURL>/api/2.0/ip-access-lists
- 認証(Bearer Token): <1で取得したアクセストークン>
- Body(Json) :
{
"label": "TestIpList",
"list_type": "BLOCK",
"ip_addresses": [
"xxx.xxx.xxx.xxx/xx"
]
}
パラメータについては以下を参照してください。

<レスポンス>
{
"ip_access_list": {
"list_id": "xxxxx-xxxxx-xxxxx-xxxxx",
"label": "TestIpList",
"ip_addresses": [
"xxx.xxx.xxx.xxx/xx"
],
"address_count": 1,
"list_type": "BLOCK",
"created_at": 161144952xxxx,
"created_by": 534873981924xxxx,
"updated_at": 161144952xxxx,
"updated_by": 534873981924xxxx,
"enabled": true
}
}
④ IPアクセスリスト一覧の取得
IP制限の設定は完了したので、設定の一覧の取得し、正しく設定されているか確認します。
- メソッド: Get
- エンドポイント: https://<DatabricksのURL>/api/2.0/ip-access-lists
- 認証(Bearer Token): <1で取得したアクセストークン>
<レスポンス>
{
"ip_access_list": {
"list_id": "xxxxx-xxxxx-xxxxx-xxxxx",
"label": "TestIpList",
"ip_addresses": [
"xxx.xxx.xxx.xxx/xx"
],
"address_count": 1,
"list_type": "BLOCK",
"created_at": 161144952xxxx,
"created_by": 534873981924xxxx,
"updated_at": 161144952xxxx,
"updated_by": 534873981924xxxx,
"enabled": true
}
}
③のレスポンスと同じ内容が返ってくると思いますが、設定内容に誤りがないか確認してください。
複数IPリストを登録している場合は、複数の項目が返ってきます。
IPリストを後から更新、削除することも可能です。設定が誤っていた場合には以下実施してみてください。
update-an-ip-access-list
delete-an-ip-access-list
動作確認
最後に設定が有効か確認します。
アクセスリストで許可されていないIPよりDatabricksにアクセスして、以下のような画面になれば設定が有効です。
