これはなに?
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にアクセスして、以下のような画面になれば設定が有効です。