1.はじめに

皆さんこんにちは。

Databricksワークスペースへのアクセスを制限する方法として、IPアクセスリストがあります。
IPアクセスリストの編集はコマンドで実行するしか実現できないので、他の機能に比べてわかりづらくなっています。
コマンド実行に慣れていない人でもIPアクセスリストが利用できるように、 API実行用のPostmanのJSONファイルを使用して、IP アクセスリストを管理する方法について説明していきます。

2.前提要件

実施する際の前提条件は以下の通りです。

・操作ユーザーはワークスペース管理者として Azure Databrick Workspace にアクセスできる必要があること。

・Postmanのアカウントが登録済みで利用方法を理解していること。

3.Azure Databricks 個人アクセス トークンを作成する

まず、Azure Databricks ユーザーに Azure Databricks 個人用アクセス トークンを作成します。

① Databricksワークスペースにログインします。

② Azure Databricks ワークスペースの右上隅にあるAzure Databricks ユーザー名をクリックして、次にドロップダウンから「ユーザー設定」を選択します。

③「アクセス トークン」タブで「新しいトークンの生成」 をクリックします。

④ トークン名を入力します。

(省略可能) 将来このトークンを識別するのに役立つコメントを入力し、トークンの既定の有効期間 90 日を変更します。 有効期間のないトークンを作成するには (推奨されません)、「有効期間 (日)」ボックスを空のままにします。

⑤「生成」をクリックします。

⑥ 表示されたトークンをコピーしてから、「完了」をクリックします。

コピーしたトークンは必ず安全な場所に保存してください。 コピーしたトークンを失った場合、それとまったく同じトークンは再生成できません。

4.JSON ファイルをインポートして IP アクセス リストを管理する

① Postman を開いてワークスペースに移動します。

②「Collections」タブで「Import」をクリックします。

ダイアログでローカル コンピューターのファイルをアップロードできます。

③ IP access lists.postman_collection.json ファイルを選択します。

IP access lists.postman_collection.jsonファイルをダウンロードする。

ファイルをアップロードした後、「IP access lists」コレクションが表示されます。

④「Environments」タブで「Import」をクリックします。

ダイアログでローカル コンピューターのファイルをアップロードできます。

⑤ environment_variables.postman_environment.json ファイルを選択します。

environment_variables.postman_environment.jsonファイルをダウンロードする。

ファイルをアップロードした後、「environment_variables」環境が表示されます。

⑥「environment_variables」環境で、bearer_Token変数とbase_url変数の「Initial value」列と「Current value」列の値を変更し、「Save」をクリックします。

bearer_Token は、前の手順でコピーしたトークン文字列です。

Base_url は https://<databricks-instance>/api/2.0 です。そのうち、<databricks-instance> はAzure Databricks deploymentのドメイン名です。

⑦ ドロップダウンのアイコンをクリックしてコレクションの環境を選択し、「environment_variables」を選択します。

その後、コレクションに対して環境内の変数を参照できます。

4-1.IPアクセスリストを追加する

「IP access lists」コレクションでリクエストを事前に作成して、IP アクセス リストを管理します。

まず、IP アクセス リストを追加します。 リストは許可リスト、またはブロック リストとなります。

①「Add an IP access list」リクエストをクリックして、「Body」タブをクリックします。

② JSONリクエストの本文で、次のように指定します。

Label:このリストのラベル

List_type:ALLOW(許可リスト)または BLOCK(ブロック リストとは許可リストに含まれても、除外すること)のいずれか。

IP_addresses:IP アドレスと CIDR 範囲の JSON 配列 (文字列値)

例えば、JSON形式での許可リストを追加します。

③「Send」をクリックしてリクエストを送信すると、IP アクセス リストが正常に作成されたというレスポンスが返却されます。

注意:新規リストが呼び出し元の現在のIPアドレス をブロックする場合、error_code が「INVALID_STATE」のエラー 400 が返却されます。

4-2.IPアクセスリストが有効かを確認する

機能状態用の取得 API を呼び出して、ワークスペースで IP アクセス リストの機能が有効かを確認します。

①「IP access lists」コレクションで「Check if your workspace has the IP access list feature enabled」リクエストをクリックします。

②「Send」をクリックしてリクエストを送信します。

レスポンスでenableIpAccessLists フィールドが true または false に指定されます。

enableIpAccessLists フィールドが false であれば、IP アクセス リストの機能が無効になるということです。

4-3.IPアクセスリストを有効または無効にする

ワークスペースで IP アクセス リストの機能を有効または無効にするには、IP アクセス リストの有効化・無効化用のAPIを呼び出します。

①「IP access lists」コレクションで「Enable or disable the IP access list」リクエストをクリックして、「Body」タブをクリックします。

② JSON リクエスト本文で、enableIpAccessLists が true (有効) または false (無効) に指定されます。

例えば、この機能を有効にするには、次の通り実装します。

③「Send」をクリックしてリクエストを送信すると、次のレスポンスが返却されます。

4-4.IPアクセスリストを更新および置換する

IPアクセスリストを更新するには、更新対象のリストのIDを取得する必要があります。

全てのIPアクセスリスト取得用APIを呼び出して、全てのIPアクセスリストと該当のIDを取得します。

①「IP access lists」コレクションで「Get all IP access lists」リクエストをクリックします。

②「Send」をクリックしてリクエストを送信すると、全ての IP アクセス リストの ID が取得されます。

③ 更新対象の IP アクセス リストの ID をコピーします。

④「environment_variables」環境でコピーした値を list_id_update 変数の「Initial value」列と「Current value」列に貼り付けて、「Save」をクリックします。

⑤「IP access lists 」コレクションで「Enable or disable the IP access list」リクエストをクリックして、「Body」タブをクリックします。

⑥ JSON リクエスト本文で次の1つ以上の値を指定して、更新します。

Label:このリストのラベル。

List_type:ALLOW (許可リスト) または BLOCK (ブロック リストとは許可リストに含まれても、除外すること) のいずれか。

IP_addresses:IP アドレスと CIDR 範囲の JSON 配列 (文字列値)。

Enabled:このリストが有効かを指定します。true または false を渡します。

例えば、IP アクセス リストのラベルと ip_addresses を更新します。

⑦「Send」をクリックしてリクエストを送信すると、IP アクセス リストが正常に更新されたというレスポンスが返却されます。

また、IP アクセス リストを置き換えることもできます。同様に、置き換えるリストの ID を見つける必要があります。

ただし、PATCH の代わりに PUT メソッドを使用して置き換えます。

① JSON リクエスト本文では、以下のように指定する必要があります。

Label — このリストのラベル

List_type — ALLOW (許可リスト) または BLOCK (ブロック リストとは許可リストに含まれても、除外すること) のいずれか。

IP_addresses — IP アドレスと CIDR 範囲の JSON 配列 (文字列値)。

Enabled —このリストが有効かを指定します。true または false を渡します。

例えば、リストの内容を置き換えます。

②「Send」をクリックしてリクエストを送信すると、IP アクセス リストが正常に置き換えられたというレスポンスが返却されます。

4-5.IPアクセスリストを削除する

IP アクセス リストを削除するには、削除対象のリストの ID を見つける必要があります。

① 前の手順と同様に、全てのIPアクセスリスト取得用APIを呼び出して、全てのIPアクセスリストと該当のIDを取得します。

② 削除対象のIPアクセスリストのIDをコピーします。

③「environment_variables」環境で、コピーした値を list_id_delete 変数の「Initial value」列と「Current value」列に貼り付けて、「Save」をクリックします。

④「IP access lists」コレクションで「Delete an IP access list」リクエストをクリックします。

⑤「Send」をクリックしてリクエストを送信すると、IP アクセス リストが正常に削除されたというレスポンスが返却されます。

5.まとめ

本連載では、
API実行用のPostmanのJSONファイルを使用して、IP アクセスリストを管理する方法について詳細に説明していきます。

今回の記事が少しでもDatabricksを知るきっかけや、業務のご参考になれば幸いです。

日商エレクトロニクスでは、Azure Databricksの環境構築パッケージを用意しています。

Azure DatabricksやAzure活用、マイクロソフト製品の活用についてご相談事がありましたらぜひお問い合わせください!

・Azure Databricks連載シリーズはこちら

お問い合わせはこちら


この記事を読んだ方へのオススメコンテンツはこちら