メインコンテンツまでスキップ

Google Cloud ID 認証を設定して使用する

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

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

注記

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

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

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

  • Google Cloudサービス アカウントを作成します。
  • Google Cloud サービス アカウントを Databricks アカウントとそのアカウントの Databricks ワークスペースに割り当てます。
  • Google Cloud コマンドライン インターフェース(Google Cloud CLI)をインストールし、Google Cloud CLI がログインを使用して Google Cloud サービス アカウントを偽装することを許可します。
  • ローカル開発マシンに Databricks CLI をインストールし、Google Cloud ID 認証用に Databricks CLI を構成します。
  • Databricks CLI でコマンドを実行し、Google Cloud ID 認証、またはその両方を使用して Databricks アカウントとワークスペースを自動化します。

必要条件

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

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

  1. Google Cloud コンソールにログインします。

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

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

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

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

  6. サービスアカウントID ボックスの下にある Eメールアドレス は、手順2、3、4、5、7で必要になるため、メモしておいてください。次のようになります。

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

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

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

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

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

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

    または、Databricks アカウント コンソールの https://accounts.gcp.databricks.com に直接アクセスします。

  2. 要求された場合は、Databricks アカウントにサインインします。

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

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

注記

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

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

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

  3. [ ] と [姓 ] には、後でサービスアカウントを検索するのに役立つ意味のあるテキストを入力します。 たとえば、[ ] には、ステップ 1 の サービス アカウント名 を入力できます。 [姓 ] に「 Google Cloud サービス アカウント 」と入力できます。

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

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

    1. [ ユーザー ] タブで、ユーザーの名前をクリックします。 ユーザー名が表示されない場合は、[ ユーザーをフィルター] を使用して見つけます。
    2. [ロール] タブで、このユーザーに付与する各ターゲット ロールを有効または無効にします。「 ユーザーへのアカウント管理者ロールの割り当て」を参照してください。

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

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

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

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

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

注記

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

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

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

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

    1. [ ユーザー ] タブで、ユーザーの名前をクリックします。
    2. 「権限」 タブで、このユーザーに付与する各ターゲットステータスまたは権限を付与または取り消すために選択またはクリアします。詳細については、以下を参照してください。

ステップ4に進んでください。

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

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

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

注記

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

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

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

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

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

    1. [ ユーザー ] タブで、ユーザーの名前をクリックします。
    2. 「権限」 タブで、このユーザーに付与する各ターゲットステータスまたは権限を付与または取り消すために選択またはクリアします。詳細については、以下を参照してください。

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

Google Cloud CLI のインストールの手順に従って、Google Cloud CLI をインストールします。

ステップ 5: Google Cloud サービス アカウントになりすます

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

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

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

  2. [Permissions ] タブの [ View By Principals ] タブで、[ Grant Access ] をクリックします。

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

  4. ロールを選択 」をクリックし、「 Service Account Token Creator」と入力して選択します。

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

  6. ロールを選択 」をクリックし、「 Service Account User」と入力して選択します。

  7. 「サービス・アカウント・トークン・クリエーター 」をクリックします。

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

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

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

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

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

ヒント

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

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

Use Homebrew to install the Databricks CLI by running the following two commands:

Bash
brew tap databricks/tap
brew install databricks
  1. 次のコマンドを実行して、Databricks CLIがインストールされていることを確認します。これにより、Databricks CLIの現在のバージョンが表示されるので、そのバージョンが0.205.0以降であることを確認します。

    Bash
    databricks -v
注記

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

手順 7: Google Cloud ID 認証用に Databricks CLI を構成する

このステップでは、Google Cloud サービスアカウントの名前を使用して、Databricks の Google Cloud 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でコピーした Eメールアドレス に置き換えてください。
    • <workspace-url>ワークスペース インスタンスの URL に置き換えます (例: https://1234567890123456.7.gcp.databricks.com)。
    • 必要に応じて、推奨される構成プロファイル名 GCP_ID_ACCOUNTGCP_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 Cloud ID 認証を使用して、ステップ 7 で設定した Databricks アカウントを自動化するコマンドを実行します。 この手順では、Google Cloud ユーザー アカウントが現在、ステップ 5 で説明したようにサービス アカウントを偽装していることを前提としています。

アカウントレベルのコマンドを実行しない場合は、ステップ 9 に進んでください。

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

Bash
databricks account users list -p GCP_ID_ACCOUNT

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

このステップでは、Databricks CLI と Google Cloud 認証情報認証を使用して、ステップ 7 で設定した Databricks アカウントを自動化するコマンドを実行します。 この手順では、Google Cloud ユーザー アカウントが現在、ステップ 5 で説明したようにサービス アカウントを偽装していることを前提としています。

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

Bash
databricks users list -p GCP_ID_WORKSPACE

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

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

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

  1. ステップ 1 でログインした Google Cloud コンソールの [リソース]、[ドキュメント]、[製品など] の検索(/) で、[ サービス アカウント ] を検索して選択します。
  2. サービスアカウントの名前の行で、省略記号をクリックします。 サービス アカウントの名前が表示されない場合は、[ プロパティの名前または値を入力 ] を使用して検索します。
  3. 削除 をクリックします。
  4. 確認ダイアログで、[ 削除 ] をクリックします。

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

  1. Databricks アカウントのサイドバーで、 [ ユーザー管理 ] をクリックします。
  2. 「ユーザー 」タブをクリックします。
  3. 手順 2 で追加したサービス アカウントの名前をクリックします。サービス アカウントの名前が表示されない場合は、[ ユーザーを絞り込む ] を使用して見つけます。
  4. 省略記号ボタンをクリックし、[ ユーザーの削除 ] をクリックします。
  5. [削除の確認 ] をクリックします。

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

  1. Databricks ワークスペースで、上部のバーにあるユーザー名をクリックし、[ 設定 ] をクリックします。
  2. 「ユーザー 」タブをクリックします。
  3. ステップ 3 で追加したサービスアカウントの名前をクリックします。サービス アカウントの名前が表示されない場合は、[ ユーザーを絞り込む ] を使用して見つけます。
  4. [ ユーザーの削除 ] をクリックします。
  5. 確認ダイアログで、[ 削除 ] をクリックします。