IP アクセス リスト

クラウド SaaS アプリケーションを使用するセキュリティを意識する企業は、自分の従業員にアクセスを制限する必要があります。 認証は、ユーザーの身元を証明するのに役立ちますが、ユーザーのネットワークの場所は強制されません。 セキュリティで保護されていないネットワークからクラウドサービスにアクセスすると、特にユーザーが機密データや個人データへのアクセスを承認されている場合に、企業にセキュリティ上のリスクが生じる可能性があります。 ネットワーク境界 Enterprise は、セキュリティポリシーを適用し、外部サービス (ファイアウォール、プロキシ、DLP、ログなど) へのアクセスを制限するため、これらのコントロールを超えたアクセスは信頼されていないと見なされます。

たとえば、病院の従業員が Azure Databricks ワークスペースにアクセスするとします。 従業員がオフィスからコーヒーショップにいる場合、web アプリケーションと REST API にアクセスするための適切な資格情報を持っている場合でも、病院は Azure Databricks ワークスペースへの接続をブロックできます。

従業員がセキュリティで保護された境界を持つ既存の企業ネットワークを介してのみサービスに接続できるように、Azure Databricks ワークスペースを構成することができます。 Azure Databricks のお客様は、IP アクセスリスト機能を使用して、承認された IP アドレスのセットを定義できます。 Web アプリケーションと REST Api へのすべての受信アクセスには、承認済み IP アドレスからのユーザー接続が必要です。

リモートまたは出張中の従業員は、VPN を使用して企業ネットワークに接続し、さらにそのワークスペースにアクセスできるようにします。 前の例を使用すると、病院は、従業員がコーヒーショップからの VPN を使用して、Azure Databricks ワークスペースにアクセスできるようにすることができます。

IP アクセスリストの概要図

要件

柔軟な構成

IP アクセスリスト機能は柔軟です。

  • 独自のワークスペース管理者が、アクセスを許可されているパブリックインターネット上の IP アドレスのセットを制御します。 これを許可一覧と呼びます。 複数の IP アドレスを明示的に、またはサブネット全体として許可します (216.58.195.78/28 など)。
  • ワークスペースの管理者は、許可リストに含まれている場合でも、ブロックする IP アドレスまたはサブネットをオプションで指定できます。 これは、ブロック一覧と呼ばれます。 許可される IP アドレス範囲に、実際にセキュリティで保護されたネットワーク境界の外部にある、より狭い範囲のインフラストラクチャ IP アドレスが含まれている場合は、この機能を使用することがあります。
  • ワークスペース管理者は、REST Api を使用して、許可される IP アドレスとブロックする IP アドレスおよびサブネットの一覧を更新します。

機能の詳細

IP アクセスリスト API を使用すると、Azure Databricks 管理者は、ワークスペースの IP 許可リストとブロックリストを構成できます。 ワークスペースの機能が無効になっている場合は、すべてのアクセスが許可されます。 許可リスト (包含) とブロックリスト (除外) はサポートされています。

接続が試行されたとき:

  1. 最初のすべてのブロックリストがチェックされます。 接続 IP アドレスが任意のブロック一覧と一致する場合、接続は拒否されます。

  2. 接続がブロックリストによって拒否されなかった場合、IP アドレスは許可リストと比較されます。 ワークスペースの許可リストが少なくとも1つある場合は、IP アドレスが許可一覧と一致する場合にのみ接続が許可されます。 ワークスペースに許可リストがない場合は、すべての IP アドレスが許可されます。

すべての許可リストとブロックリストの組み合わせについて、ワークスペースは最大1000の IP/CIDR 値をサポートします。1つの CIDR は単一の値としてカウントされます。

IP アクセスリスト機能を変更した後は、変更が有効になるまでに数分かかることがあります。

IP アクセスリストのフローダイアグラム

IP アクセスリスト API の使用方法

この記事では、API を使用して実行できる最も一般的なタスクについて説明します。 完全な REST API リファレンスについては、 openapi 仕様 をダウンロードして直接表示するか、openapi 3.0 を読み取るアプリケーションを使用して参照してください。 OpenAPI 仕様の使用方法の詳細については、「 IP アクセスリスト API 2.0」を参照してください。

Azure Databricks Api の認証については、「 Azure Databricks 個人用アクセストークンを使用した認証」を参照してください。

この記事で説明するエンドポイントの基本パスはです https://<databricks-instance>/api/2.0 。ここで、 <databricks-instance>adb-<workspace-id>.<random-number>.azuredatabricks.net Azure Databricks デプロイのドメイン名です。

ワークスペースで IP アクセスリスト機能が有効になっているかどうかを確認する

ワークスペースで IP アクセスリスト機能が有効になっているかどうかを確認するには、 get feature STATUS API () を呼び出し ます。 keys=enableIpAccessLists要求に引数としてを渡します。

応答で enableIpAccessLists は、フィールドはまたはのいずれかを指定し truefalse ます。

次に例を示します。

curl -X -n \
 https://<databricks-instance>/api/2.0/workspace-conf?keys=enableIpAccessLists

応答の例:

{
  "enableIpAccessLists": "true",
}

ワークスペースの IP アクセスリスト機能を有効または無効にする

ワークスペースの IP アクセスリスト機能を有効または無効にするには、[ ip アクセスリスト API を有効または無効 にする] () を呼び出し ます。

JSON 要求本文で、 enableIpAccessLists as true (有効) または false (無効) を指定します。

たとえば、この機能を有効にするには、次のようにします。

curl -X PATCH -n \
  https://<databricks-instance>/api/2.0/workspace-conf \
  -d '{
    "enableIpAccessLists": "true"
    }'

応答の例:

{
  "enableIpAccessLists": "true"
}

IP アクセスリストを追加する

IP アクセスリストを追加するには、 ip アクセスリストの追加 API ( ) を呼び出します。

JSON 要求本文で、次のように指定します。

  • label —この一覧のラベル。
  • list_typeALLOW (許可リスト) または BLOCK (許可リストにある場合でも除外するブロックリスト) のいずれかを指定します。
  • ip_addresses -文字列値としての、IP アドレスと CIDR 範囲の JSON 配列。

応答は、渡されたオブジェクトのコピーですが、いくつかのフィールドが追加されています。最も重要なのは list_id フィールドです。 後で一覧を更新または削除できるように、その値を保存することもできます。 保存しない場合でも、後で ID を取得するには、エンドポイントへの要求ですべての IP アクセスリストを照会し GET/ip-access-lists ます。

たとえば、許可リストを追加するには、次のようにします。

curl -X POST -n \
  https://<databricks-instance>/api/2.0/ip-access-lists
  -d '{
    "label": "office",
    "list_type": "ALLOW",
    "ip_addresses": [
        "1.1.1.1",
        "2.2.2.2/21"
      ]
    }'

応答の例:

{
  "ip_access_list": {
    "list_id": "<list-id>",
    "label": "office",
    "ip_addresses": [
        "1.1.1.1",
        "2.2.2.2/21"
    ],
    "address_count": 2,
    "list_type": "ALLOW",
    "created_at": 1578423494457,
    "created_by": 6476783916686816,
    "updated_at": 1578423494457,
    "updated_by": 6476783916686816,
    "enabled": true
  }
}

ブロック一覧を追加するには、をに設定して、同じ操作を行い list_typeBLOCK ます。

IP アクセスリストを更新する

IP アクセスリストを更新するには:

  1. [ すべての IP アクセスリストを一覧表示 する] API ( ) を呼び出し、更新するリストの ID を見つけます。
  2. IP アクセスリスト API を更新する 」 () を呼び出し ます。

JSON 要求本文で、更新する次の値のうち少なくとも1つを指定します。

  • label —この一覧のラベル。
  • list_typeALLOW (許可リスト) または BLOCK (ブロックリストの場合は、許可リスト内でも除外することを意味します)。
  • ip_addresses -文字列値としての、IP アドレスと CIDR 範囲の JSON 配列。
  • enabled —このリストを有効にするかどうかを指定します。 trueまたは false を渡します。

応答は、ID および変更日の追加フィールドと共に渡されたオブジェクトのコピーです。

たとえば、一覧を更新して無効にするには、次のようにします。

curl -X PATCH -n \
  https://<databricks-instance>/api/2.0/ip-access-lists/<list-id>
  -d '{ "enabled": "false" }'

IP アクセスリストを置き換える

IP アクセスリストを置き換えるには、次のようにします。

  1. [ すべての IP アクセスリストを一覧表示 する] API ( ) を呼び出し、置き換えるリストの ID を見つけます。
  2. IP アクセスリスト API を置き換える 」 ( ) を呼び出します。

JSON 要求本文で、次のように指定します。

  • label —この一覧のラベル。
  • list_typeALLOW (許可リスト) または BLOCK (ブロックリストの場合は、許可リスト内でも除外することを意味します)。
  • ip_addresses -文字列値としての、IP アドレスと CIDR 範囲の JSON 配列。
  • enabled —このリストを有効にするかどうかを指定します。 trueまたは false を渡します。

応答は、ID および変更日の追加フィールドと共に渡されたオブジェクトのコピーです。

たとえば、指定されたリストの内容を次の値に置き換えるには、次のようにします。

curl -X PUT -n \
  https://<databricks-instance>/api/2.0/ip-access-lists/<list-id>
  -d '{
    "label": "office",
    "list_type": "ALLOW",
    "ip_addresses": [
        "1.1.1.1",
        "2.2.2.2/21"
      ],
    "enabled": "false"
    }'

IP アクセスリストを削除する

IP アクセスリストを削除するには:

  1. [ すべての IP アクセスリストを一覧表示 する] API ( ) を呼び出し、削除するリストの ID を見つけます。
  2. [ IP アクセスリストの削除] API ( ) を呼び出します。 要求の本文はありません。
curl -X DELETE -n \
  https://<databricks-instance>/api/2.0/ip-access-lists/<list-id>