次の方法で共有


セキュリティで保護されたクラスター接続を有効にする

この記事では、Azure Databricks ワークスペースにセキュリティで保護されたクラスター接続を使用する方法について説明します。 セキュリティで保護されたクラスター接続は、パブリック IP なし (NPIP) とも呼ばれています。 サーバーレス コンピューティング プレーンでは、セキュリティで保護されたクラスター接続は使用されませんが、サーバーレス コンピューティング リソースにはパブリック IP アドレスがありません。

セキュリティで保護されたクラスター接続の概要

セキュリティで保護されたクラスター接続が有効になっている場合、お客様の仮想ネットワークには開いているポートがなく、クラシック コンピューティング プレーンのコンピューティング リソースにはパブリック IP アドレスがありません。

  • 各クラスターは、クラスターの作成時にコントロール プレーンのセキュリティで保護されたクラスター接続リレーへの接続を開始します。 クラスターはポート 443 (HTTPS) を使用してこの接続を確立し、Web アプリケーションおよび REST API に使用される IP アドレスとは異なる IP アドレスを使用します。
  • コントロール プレーンがクラスター管理タスクを実行すると、これらの要求はこのトンネルを介してクラスターに送信されます。

Note

クラシック コンピューティング プレーン VNet と Azure Databricks コントロール プレーンの間のすべての Azure Databricks ネットワーク トラフィックは、パブリック インターネットではなく、Microsoft ネットワーク バックボーンを経由します。 これは、セキュリティで保護されたクラスター接続が無効になっている場合でも当てはまります。

新しいワークスペースでセキュリティで保護されたクラスター接続を有効にするか、VNet インジェクションを既に使用している既存のワークスペースに追加できます。

新しいワークスペースでセキュリティで保護されたクラスター接続を有効にする

Azure portal または Azure Resource Manager (ARM) テンプレートを使用してワークスペースを作成するときに、セキュリティで保護されたクラスター接続を有効にすることができます。

  • Azure portal: ワークスペースをプロビジョニングするときに、[ネットワーク] タブで [Secure Cluster Connectivity による Azure Databricks ワークスペースのデプロイ (パブリック IP なし)][はい] に設定します。

    Azure portal を使用してワークスペースを作成する方法の詳細については、「ポータルを使用して Azure Databricks ワークスペースを作成する」を参照してください。

  • ARM テンプレート: 新しいワークスペースを作成する Microsoft.Databricks/workspaces リソースで、enableNoPublicIp Boolean パラメーターを trueに設定します。

    ARM テンプレートを使用してワークスペースを作成する方法の詳細については、「ARM テンプレートを使用してワークスペースをデプロイする」を参照してください。 VNet インジェクションを使用する ARM テンプレートについては、「Azure Resource Manager テンプレートを使用した高度な構成」を参照してください。

セキュリティで保護されたクラスター接続を既存のワークスペースに追加する

Azure portal、ARM テンプレート、または Terraform プロバイダー バージョン 3.41.0 以降 azurerm を使用して、既存のワークスペースでセキュリティで保護されたクラスター接続を有効にすることができます。 アップグレードでは、ワークスペースで VNet インジェクションを使う必要があります。

重要

ファイアウォールまたはその他のネットワーク構成の変更を使用してクラシック コンピューティング プレーンからのイングレスまたはエグレスを制御する場合は、これらの変更を完全に有効にするために、ファイアウォールまたはネットワーク セキュリティ グループの規則を同時に更新することが必要になる場合があります。 たとえば、セキュリティで保護されたクラスター接続を使用すると、コントロール プレーンへの追加の発信接続があり、コントロール プレーンからの着信接続は使用されなくなります。

ステップ 1: すべてのコンピューティング リソースを停止する

クラスター、プール、クラシック SQL ウェアハウスなど、すべてのクラシック コンピューティング リソースを停止します。 Databricks では、ダウンタイムのために、アップグレードのタイミングを計画することをお勧めします。

ステップ 2: ワークスペースを更新する

ワークスペースは、Azure portal、ARM テンプレート、または Terraform を使用して更新できます。

Azure portal を使用する

  1. Azure portal で Azure Databricks ワークスペースに移動します。
  2. 左側のナビゲーションで、[設定][ネットワーク] をクリックします。
  3. [ネットワーク アクセス] タブで、Azure Databricks ワークスペースを [セキュリティで保護されたクラスター接続 (パブリック IP なし)] でデプロイし、有効に設定します。
  4. [保存] をクリックします。

ネットワークの更新が完了するまでに 15 分以上かかる場合があります。

Azure portal を使用して更新 ARM テンプレートを適用する

ARM テンプレートを使用して、 パラメーターを true () 設定します。

Note

マネージド リソース グループにカスタム名がある場合は、それに応じてテンプレートを変更する必要があります。 詳細については、Azure Databricks アカウント チームにお問い合わせください。

  1. 次のアップグレード ARM テンプレート JSON をコピーします。

      {
        "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
        "contentVersion": "1.0.0.0",
        "parameters": {
            "location": {
                "defaultValue": "[resourceGroup().location]",
                "type": "String",
                "metadata": {
                    "description": "Location for all resources."
                }
            },
            "workspaceName": {
                "type": "String",
                "metadata": {
                    "description": "The name of the Azure Databricks workspace to create."
                }
            },
            "apiVersion": {
                "defaultValue": "2023-02-01",
                "allowedValues": [
                  "2018-04-01",
                  "2020-02-15",
                  "2022-04-01-preview",
                  "2023-02-01"
                ],
                "type": "String",
                "metadata": {
                    "description": "2018-03-15 for 'full region isolation control plane' and 2020-02-15 for 'FedRAMP certified' regions"
                }
            },
            "enableNoPublicIp": {
                "defaultValue": true,
                "type": "Bool"
            },
            "pricingTier": {
                "defaultValue": "premium",
                "allowedValues": [
                    "premium",
                    "standard",
                    "trial"
                ],
                "type": "String",
                "metadata": {
                    "description": "The pricing tier of workspace."
                }
            },
            "publicNetworkAccess": {
              "type": "string",
              "defaultValue": "Enabled",
              "allowedValues": [
                "Enabled",
                "Disabled"
              ],
              "metadata": {
                "description": "Indicates whether public network access is allowed to the workspace - possible values are Enabled or Disabled."
              }
            },
            "requiredNsgRules": {
              "type": "string",
              "defaultValue": "AllRules",
              "allowedValues": [
                "AllRules",
                "NoAzureDatabricksRules"
              ],
              "metadata": {
                "description": "Indicates whether to retain or remove the AzureDatabricks outbound NSG rule - possible values are AllRules or NoAzureDatabricksRules."
              }
            }
            },
        "variables": {
            "managedResourceGroupName": "[concat('databricks-rg-', parameters('workspaceName'), '-', uniqueString(parameters('workspaceName'), resourceGroup().id))]",
            "managedResourceGroupId": "[subscriptionResourceId('Microsoft.Resources/resourceGroups', variables('managedResourceGroupName'))]"
        },
        "resources": [
            {
                "type": "Microsoft.Databricks/workspaces",
                "apiVersion": "[parameters('apiVersion')]",
                "name": "[parameters('workspaceName')]",
                "location": "[parameters('location')]",
                "sku": {
                    "name": "[parameters('pricingTier')]"
                },
                "properties": {
                    "ManagedResourceGroupId": "[variables('managedResourceGroupId')]",
                    "publicNetworkAccess": "[parameters('publicNetworkAccess')]",
                    "requiredNsgRules": "[parameters('requiredNsgRules')]",
                    "parameters": {
                        "enableNoPublicIp": {
                            "value": "[parameters('enableNoPublicIp')]"
                        }
                    }
                }
            }
        ]
    }
    
    1. Azure portal の [カスタム デプロイ] ページに移動します。

    2. [エディターで独自のテンプレートをビルド] をクリックします。

    3. コピーしたテンプレートについて JSON に貼り付けます。

    4. [保存] をクリックします。

    5. パラメーターを入力します。

    6. 既存のワークスペースを更新するには、enableNoPublicIp に設定する必要がある true ではなく、そのワークスペースの作成に使用したのと同じパラメーターを使用します。 既存の VNet のサブスクリプション、リージョン、ワークスペース名、サブネット名、リソース ID を設定します。

      重要

      このコマンドが新しいワークスペースを作成するのではなく既存のワークスペースを更新するために、リソース グループ名、ワークスペース名、サブネット名が既存のワークスペースと同じです。

    7. [Review + Create](レビュー + 作成) をクリックします。

    8. 検証の問題がない場合は、[作成] をクリックします。

    ネットワークの更新が完了するまでに 15 分以上かかる場合があります。

Terraform を使用して更新を適用する

Terraform で作成されたワークスペースの場合は、ワークスペースを再作成せずにワークスペースを更新できます。

重要

terraform-provider-azurerm バージョン 3.41.0 以降を使用する必要があるため、必要に応じて Terraform プロバイダーのバージョンをアップグレードしてください。 以前のバージョンでは、これらの設定のいずれかを変更すると、ワークスペースを再作成しようとします。

次のワークスペースの設定を変更します。

  • no_public_ip ブロック内の custom_parametersfalse から true に変更できます。

ネットワークの更新が完了するまでに 15 分以上かかる場合があります。

ステップ 3: 更新を検証する

ワークスペースがアクティブな状態になると、更新ジョブが完了します。 更新プログラムが適用されたことを確認します。

  1. Web ブラウザーで Azure Databricks を開きます。

  2. ワークスペースのクラスターの 1 つを起動し、クラスターが完全に開始されるまで待ちます。

  3. Azure portal でワークスペース インスタンスに移動します。

  4. フィールド ラベル [マネージド リソース グループ] の横にある青い ID をクリックします。

  5. そのグループで、クラスターの VM を見つけて、そのうちの 1 つをクリックします。

  6. VM 設定の [プロパティ] で、[ネットワーク] 領域のフィールドを探します。

  7. [パブリック IP アドレス] フィールドが空であることを確認します。

    設定されている場合、VM にはパブリック IP アドレスがあります。これは、更新に失敗したことを意味します。

クラスター接続をセキュリティで保護するためのアップグレードの一時的なロールバック

デプロイ中に問題が発生した場合は、プロセスを一時的なロールバックとして元に戻すことができますが、ワークスペースで SCC を無効にすることは、後でアップグレードを続行する前に一時的なロールバックを行う場合以外はサポートされません。 これが一時的に必要な場合は、アップグレードに関する上記の手順に従うことができますが、enableNoPublicIp を true ではなく false に設定します。

ワークスペース サブネットからのエグレス

セキュリティで保護されたクラスター接続を有効にした場合、クラスター ノードにはパブリック IP アドレスが設定されていないため、両方のワークスペース サブネットがプライベート サブネットになります。

ネットワーク エグレスの実装の詳細は、既定の (マネージド) VNet を使用するか、VNet インジェクション を使用してワークスペースをデプロイする独自の VNet を提供するかによって異なります。

重要

セキュリティで保護されたクラスター接続を使用する場合、エグレス トラフィックの増加により、追加コストが発生する可能性があります。 最も安全なデプロイのために、Microsoft と Databricks では、セキュリティで保護されたクラスター接続を有効にすることを強くお勧めします。

既定の (マネージド) VNet を使用したエグレス

Azure Databricks によって作成される既定の VNet でセキュリティで保護されたクラスター接続を使用すると、Azure Databricks によって、ワークスペースのサブネットから Azure バックボーンとパブリック ネットワークへの送信トラフィック用の NAT ゲートウェイが自動的に作成されます。 NAT ゲートウェイは、Azure Databricks によって管理されている管理対象リソース グループ内に作成されます。 このリソース グループまたはリソース グループ内でプロビジョニングされたリソースは変更できません。 この NAT ゲートウェイでは、追加コストが発生します。

VNet インジェクションを使用したエグレス

VNet インジェクションを使用するワークスペースでセキュリティで保護されたクラスター接続を有効にした場合、Databricks では、ワークスペースに安定したエグレス パブリック IP を設定することをお勧めします。 安定したエグレス パブリック IP アドレスは、外部許可リストに追加できるため便利です。 たとえば、安定した発信 IP アドレスを使用して Azure Databricks から Salesforce に接続する場合などです。

警告

Microsoft は、2025 年 9 月 30 日に Azure における仮想マシンの既定の送信アクセス接続が廃止されることを発表しました。 このお知らせを参照してください。 つまり、安定したエグレス パブリック IP ではなく、既定の送信アクセスを使用する既存の Azure Databricks ワークスペースは、その日付以降、機能しない可能性があります。 Databricks では、その日付より前にワークスペースの明示的な送信方法を追加することをお勧めします。

ワークスペースに明示的な送信方法を追加するには、Azure NAT ゲートウェイ またはユーザー定義ルート (UDR) を使用します。

  • Azure NAT ゲートウェイ: デプロイで必要なカスタマイズのみが必要な場合は、Azure NAT ゲートウェイを使用します。 ワークスペースのサブネットの両方でゲートウェイを構成して、Azure バックボーンとパブリック ネットワークへのすべての送信トラフィックがそれを通過するようにします。 クラスターは安定したエグレス パブリック IP を持ち、カスタム エグレスのニーズに合った構成を変更できます。 これは、Azure テンプレート または Azure portal を使用して構成できます。
  • UDR: デプロイで複雑なルーティング要件が必要な場合、またはワークスペースがエグレス ファイアウォールで VNet インジェクションを使用する場合は、UDR を使用します。 UDR では、ネットワーク トラフィックがワークスペースに対して、必要なエンドポイントに直接またはエグレス ファイアウォールを介してルーティングされるようにします。 UDR を使用するには、Azure Databricks のセキュリティで保護されたクラスター接続リレーと、Azure Databricksのユーザー定義ルート設定に記載されているその他の必要なエンドポイント 直接ルートまたは許可されたファイアウォール規則を追加する必要があります。

警告

セキュリティで保護されたクラスター接続が有効になっているワークスペースでエグレス ロード バランサーを使用しないでください。 運用システムでエグレス ロード バランサーを使用すると、ポートを使い果たすリスクにつながるおそれがあります。