Databricks の自動化に Google クラウド ID 認証を設定して使用する

この記事の手順に従って、Google クラウド サービス アカウントを認証し、Databricks アカウントとワークスペースを自動化します。

Google クラウド サービス アカウントは、通常、個人ではなくアプリケーションで使用される特殊な種類の Google クラウド アカウントです。 サービスアカウントは、アカウント固有のEメールアドレスで識別されます。 「サービス アカウントの概要」を参照してください。

注:

Google クラウド サービス アカウントは、Databricks サービスプリンシパルとは異なります。 Google クラウド サービス アカウントと Databricks サービスプリンシパルのどちらを使用するかの選択は、組織のセキュリティ設定またはポリシーによって異なる場合があります。 Databricks 認証に Google クラウド サービス アカウントの代わりに Databricks サービスプリンパルシを使用する方法については、 「サービスプリンシパルの管理」を参照してください。

Databricks では、Databricks を使用して Google クラウド サービス アカウントを認証するための 2 つの方法を提供しています。

この記事では、Google クラウド ID 認証を次のように設定して使用する方法について説明します。

  • Googleクラウドのサービスアカウントを作成します。

  • Google クラウド サービス アカウントを Databricks アカウントと、そのアカウントの Databricks ワークスペースに割り当てます。

  • Google クラウドコマンドライン インターフェイス (Google クラウド CLI) をインストールし、Google クラウド CLI がログインを使用して Google クラウド サービス アカウントを偽装することを承認します。

  • ローカル開発マシンに Databricks CLI をインストールし、Google クラウド ID 認証用に Databricks CLI を構成します。

  • Databricks CLI でコマンドを実行し、Google クラウド ID 認証、またはその両方を使用して Databricks アカウントとワークスペースを自動化します。

要件

ステップ 1: Google クラウド サービス アカウントを作成する

このステップでは、Google クラウドコンソールでターゲット Google プロジェクトの Google クラウド サービス アカウントを作成します。

  1. Google クラウド コンソールにログインします。

  2. 複数のプロジェクトにアクセスできる場合は、ターゲット プロジェクトに切り替えます。 これを行うには、上部のナビゲーション バーで、Google クラウドのロゴの横にあるプロジェクト セレクタをクリックします。 次に、一覧からプロジェクトの名前を選択します。

  3. リソース、ドキュメント、製品などの検索 (/) で、サービス アカウントを検索して選択します。

  4. [ + サービスアカウントの作成] をクリックします。

  5. ( サービスアカウントの詳細 ) セクションの [ Service account name] (サービスアカウント名) に、覚えやすいサービスアカウントの一意の名前を入力します。

  6. ステップ 2、3、4、5、7 で必要になるので、[サービス アカウント ID] ボックスの下にある Eメール アドレスをメモします。次のようになります。

    <your-service-account-name>@<your-project-name>.iam.gserviceaccount.com
    
  7. 必要に応じて、[ Service account description (サービスアカウントの説明)] に、サービスアカウントに関するわかりやすい説明を入力します。

  8. 作成して続行」をクリックします。

  9. [完了] をクリックします。

ステップ 2: Google クラウド サービス アカウントを Databricks アカウントに割り当てる

このステップでは、GoogleクラウドサービスアカウントにDatabricksアカウントへのアクセス権を付与します。 サービス アカウントに Databricks アカウントへのアクセス権を付与しない場合は、ステップ 3 に進んでください。

  1. Databricks ワークスペースで、上部のバーにあるユーザー名をクリックし、 [ アカウントの管理] をクリックします。

    または、 Databricks アカウント コンソール (https://accounts.gcp.databricks.com) に直接移動します。

  2. メッセージが表示されたら、Databricks アカウントにサインインします。

  3. サイドバーで [ ユーザー管理] をクリックします。

  4. ユーザー 」タブをクリックします。

    注:

    このタブには [ユーザー] というラベルが付いていますが、このタブはサービス アカウントでも機能します。 Databricks は、サービス アカウントを Databricks アカウントのユーザーとして扱います。

  5. [ユーザーを追加]をクリックします。

  6. [Eメール] に、ステップ 1 でコピーしたサービスアカウントのメールアドレスを入力します。

  7. [ 名][姓] に、後でサービス アカウントを検索するのに役立つわかりやすいテキストを入力します。 たとえば、[First name (名)] には、ステップ 1 の [Service account name (サービス アカウント名)] を入力できます。[ ] に「 Google クラウド サービス アカウント」と入力します。

  8. [ ユーザーの追加] をクリックします。 Databricks は、サービス アカウントをユーザーとして Databricks アカウントに追加します。

  9. ユーザーに付与するアカウントレベルの権限を割り当てます。

    1. [ ユーザー ] タブで、ユーザーの名前をクリックします。 ユーザー名が表示されない場合は、[ ユーザーのフィルター ] を使用して検索します。

    2. 「ロール」タブで、このユーザーに付与する各ターゲット・ ロール を有効または無効にします。 「 アカウント管理者の役割をユーザーに割り当てる」を参照してください。

ステップ 3: Google クラウド サービス アカウントを Databricks ワークスペースに割り当てる

この手順では、Google クラウド サービス アカウントに Databricks ワークスペースへのアクセス権を付与します。

ワークスペースで ID フェデレーションが有効になっている場合:

  1. Databricks ワークスペースで、上部のバーにあるユーザー名をクリックし、 [ 管理者設定] をクリックします。

  2. [ユーザー]をクリックします。

    注:

    このタブには 「ユーザー」というラベルが付いていますが、このタブはサービスアカウントでも機能します。 Databricks は、サービス アカウントを Databricks ワークスペースのユーザーとして扱います。

  3. [ユーザーを追加]をクリックします。

  4. ステップ 2 からユーザーを選択し、[ 追加] をクリックします。 サービス アカウントは、Databricks ワークスペースにユーザーとして追加されます。

  5. ユーザーに付与するワークスペース レベルのアクセス許可を割り当てます。

    1. [ ユーザー ] タブで、ユーザーの名前をクリックします。

    2. 「権限」タブで、このユーザーに付与する各ターゲット・ステータスまたは 権限 を付与または取消すためにオンまたはクリアします。 詳細については、次を参照してください。

ステップ 4 に進みます。

ワークスペースで ID フェデレーションが有効になっていない場合:

  1. Databricks ワークスペースで、上部のバーにあるユーザー名をクリックし、 [ 管理者設定] をクリックします。

  2. [ユーザー]をクリックします。

    注:

    このタブには 「ユーザー」というラベルが付いていますが、このタブはサービスアカウントでも機能します。 Databricks は、サービス アカウントを Databricks ワークスペースのユーザーとして扱います。

  3. [ 新規追加] をクリックします。

  4. [ New user Eemail (新規ユーザーメール)] に、ステップ 1 でコピーしたサービスアカウントの Eメールアドレス を入力します。

  5. [ 追加] をクリックします。 サービス アカウントは、Databricks ワークスペースにユーザーとして追加されます。

  6. ユーザーに付与するワークスペース レベルのアクセス許可を割り当てます。

    1. [ ユーザー ] タブで、ユーザーの名前をクリックします。

    2. 「権限」タブで、このユーザーに付与する各ターゲット・ステータスまたは 権限 を付与または取消すためにオンまたはクリアします。 詳細については、次を参照してください。

ステップ 4: ローカル開発マシンに Google クラウド CLI をインストールする

gcloud CLI のインストールの手順に従って、Google クラウド CLI をインストールします。

ステップ 5: Google クラウド サービス アカウントを偽装する

このステップでは、Google クラウド ログインを使用して、 偽装と呼ばれる手法を使用して、Google クラウド サービス アカウントを介して Databricks を自動化します。 詳細については、「 サービス アカウントの偽装」を参照してください。

サービス アカウントを偽装するには、サービス アカウントを偽装するための権限を Google クラウド ユーザーに付与する必要があります。 その後、Google クラウド CLI を使用して偽装を開始します。

  1. サービスアカウントを偽装するための権限をGoogleクラウドユーザーに付与する:ステップ1でログインしたGoogleクラウドコンソールで、 リソース、ドキュメント、製品などの検索(/)IAMを検索して選択します。

  2. 権限 」タブの「 プリンシパル別に表示 」タブで、「 アクセス権の付与」をクリックします。

  3. [New Principals (新しいプリンシパル)] で、Google クラウドのユーザー名を入力して選択します。(Googleクラウドサービスアカウントの名前はここに入力しないでください。

  4. [ ロールの選択] をクリックし、入力して [ Service Account Token Creator] を選択します。

  5. 別のロールを追加」をクリックします。

  6. [ ロールの選択] をクリックし、入力して [ Service Account User] を選択します。

  7. サービス・アカウント・トークン作成者」をクリックします。

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

  9. 偽装を開始する: Google クラウド CLI を使用して次のコマンドを実行し、 <your-service-account-name>@<your-project-name>.iam.gserviceaccount.com をサービス アカウントの手順 1 でコピーした 電子メール アドレス に置き換えます。

    gcloud auth login --impersonate-service-account=<your-service-account-name>@<your-project-name>.iam.gserviceaccount.com
    
  10. ウェブブラウザで、画面に表示されるログイン手順に沿って Google クラウド ユーザー アカウントでログインします。

ステップ 6: ローカル開発マシンに Databricks CLI をインストールする

この手順では、Databricks CLI をインストールして、それを使用して Databricks アカウントとワークスペースを自動化するコマンドを実行できるようにします。

ヒント

また、Databricks Terraform プロバイダーまたは Databricks SDK for Go を Google クラウド ID 認証と共に使用し、HCL または Go コードを実行して Databricks アカウントとワークスペースを自動化することもできます。 「Databricks SDK for Go」と「Google クラウド ID 認証」を参照してください。

  1. まだインストールされていない場合は、 次のように Databricks CLI をインストールします。

    Homebrew を使用して、次の 2 つのコマンドを実行して Databricks CLI をインストールします。

    brew tap databricks/tap
    brew install databricks
    

    Databricks CLI をインストールするには、 wingetChocolatey 、または Windows Subsystem for Linux (WSL) を使用できます。 winget、Chocolatey、または WSL を使用できない場合は、この手順をスキップし、代わりにコマンド プロンプトまたは PowerShell を使用してソースから Databricks CLI をインストールする必要があります。

    注:

    Databricks CLI と Chocolatey のインストールは 実験段階です。

    winget を使用して Databricks CLI をインストールするには、次の 2 つのコマンドを実行し、コマンド プロンプトを再起動します。

    winget search databricks
    winget install Databricks.DatabricksCLI
    

    Chocolatey を使用して Databricks CLI をインストールするには、次のコマンドを実行します。

    choco install databricks-cli
    

    WSL を使用して Databricks CLI をインストールするには、次のようにします。

    1. WSL を使用して curlzip をインストールします。 詳細については、オペレーティング システムのマニュアルを参照してください。

    2. WSL を使用して、次のコマンドを実行して Databricks CLI をインストールします。

      curl -fsSL https://raw.githubusercontent.com/databricks/setup-cli/main/install.sh | sh
      
  2. 次のコマンドを実行して、Databricks CLI がインストールされ、インストールされている Databricks CLI の現在のバージョンが表示されることを確認します。 このバージョンは 0.205.0 以上である必要があります。

    databricks -v
    

    注:

    databricks を実行しても command not found: databricksなどのエラーが発生した場合、または databricks -v を実行してバージョン番号が 0.18 以下の場合は、マシンで Databricks CLI 実行可能ファイルの正しいバージョンが見つからないことを意味します。これを修正するには、「 CLI のインストールを確認する」を参照してください。

ステップ 7: Google クラウド ID 認証用に Databricks CLI を構成する

この手順では、Google クラウド サービス アカウントの名前を使用して、Databricks に Google クラウド ID 認証を使用するように Databricks CLI を設定します。 これを行うには、既定のファイル名で、Databricks CLI が必要な認証設定を見つける必要があると想定される既定の場所にファイルを作成します。

  1. 任意のテキストエディタを使用して、ユーザーのホームディレクトリに .databrickscfg という名前のローカルファイルを作成します(まだ存在しない場合)。 LinuxおよびmacOSの場合、ユーザーのホームディレクトリは ~です。 Windowsの場合、ユーザーのホームディレクトリは %USERPROFILE%です。

  2. .databrickscfgファイルに次の内容を入力します。このコンテンツでは、次の値を置き換えます。

    • <account-console-url> を Databricks アカウント コンソールの URL (https://accounts.gcp.databricks.com など) に置き換えます。

    • <account-id> を Databricks アカウント ID に置き換えます。「アカウント ID を確認する」を参照してください。

    • <google-cloud-service-account-email-address> は、手順 1 でコピーしたサービス アカウントの電子メール アドレスに置き換えます。

    • <workspace-url>ワークスペース インスタンスの URL に置き換えます (例: https://1234567890123456.7.gcp.databricks.com)。

    • 必要に応じて、 GCP_ID_ACCOUNT および GCP_ID_WORKSPACE の推奨構成プロファイル名を別の構成プロファイル名に置き換えることができます。 これらの特定の名前は必須ではありません。

    アカウントレベルの操作を実行しない場合は、次のコンテンツの [GCP_ID_ACCOUNT] セクションを省略できます。

    [GCP_ID_ACCOUNT]
    host                   = <account-console-url>
    account_id             = <account-id>
    google_service_account = <google-cloud-service-account-email-address>
    
    [GCP_ID_WORKSPACE]
    host                   = <workspace-url>
    google_service_account = <google-cloud-service-account-email-address>
    

ステップ 8: Databricks CLI を使用してアカウント レベルのコマンドを実行する

このステップでは、Databricks CLI と Google クラウド ID 認証を使用して、ステップ 7 で構成した Databricks アカウントを自動化するコマンドを実行します。 この手順では、手順 5 で前述したように、Google クラウド ユーザー アカウントが現在サービス アカウントになりすましていることを前提としています。

アカウントレベルのコマンドを実行しない場合は、ステップ 9 に進みます。

ステップ 6 からターミナルまたはコマンド プロンプトを開いたまま、次のコマンドを実行して、Databricks アカウントで使用可能なすべてのユーザーを一覧表示します。 ステップ 7 で GCP_ID_ACCOUNT の名前を変更した場合は、必ずここで置き換えてください。

databricks account users list -p GCP_ID_ACCOUNT

ステップ 9: Databricks CLI を使用してワークスペース レベルのコマンドを実行する

この手順では、Databricks CLI と Google クラウド資格情報認証を使用して、手順 7 で構成した Databricks アカウントを自動化するコマンドを実行します。 この手順では、手順 5 で前述したように、Google クラウド ユーザー アカウントが現在サービス アカウントになりすましていることを前提としています。

ターミナルまたはコマンド プロンプトをステップ 6 から開いたままにして、次のコマンドを実行して、Databricks ワークスペースで使用可能なすべてのユーザーを一覧表示します。 ステップ 7 で GCP_ID_WORKSPACE の名前を変更した場合は、必ずここで置き換えてください。

databricks users list -p GCP_ID_WORKSPACE

ステップ 10: クリーンアップ

このステップはオプションです。 この記事用に作成した Google クラウド サービス アカウントを引き続き使用する必要がなくなった場合は、この手順では、Google プロジェクトと Databricks アカウントとワークスペースからサービス アカウントを削除する方法について説明します。

Google プロジェクトからサービス アカウントを削除する

  1. ステップ 1 でログインした Google クラウド コンソールの [リソース、ドキュメント、製品などの検索] (/) で、[ サービス アカウント] を検索して選択します。

  2. サービス アカウントの名前の行で、省略記号をクリックします。 サービス アカウントの名前が表示されない場合は、[ プロパティ名または値を入力 ] を使用して検索します。

  3. [削除] をクリックします。

  4. 確認ダイアログで、「 削除」をクリックします。

Databricks アカウントからサービス アカウントを削除する

  1. Databricks アカウントのサイドバーで、[ ユーザー管理] をクリックします。

  2. ユーザー 」タブをクリックします。

  3. ステップ 2 で追加したサービス アカウントの名前をクリックします。サービス アカウントの名前が表示されない場合は、[ ユーザーのフィルター ] を使用して検索します。

  4. 省略記号ボタンをクリックし、[ ユーザーの削除] をクリックします。

  5. 削除の確認」をクリックします。

Databricks ワークスペースからサービス アカウントを削除するDelete the service account from your Databricks workspace

  1. Databricks ワークスペースで、上部のバーにあるユーザー名をクリックし、 [ 管理者設定] をクリックします。

  2. ユーザー 」タブをクリックします。

  3. ステップ 3 で追加したサービス アカウントの名前をクリックします。サービス アカウントの名前が表示されない場合は、[ ユーザーのフィルター ] を使用して検索します。

  4. [ ユーザーを削除] をクリックします。

  5. 確認ダイアログで、「 削除」をクリックします。