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 サービスアカウントのEメールアドレスを使用して認証を行うGoogle Cloud ID認証です。 この記事では、Google Cloud サービス アカウントの Eメール アドレスを認証に使用する方法について説明します。 Google Cloud ID 認証も参照してください。
- Google Cloud 認証情報認証: Google が管理するキーペアを認証に使用します。 詳細については、「 Google Cloud 認証情報認証の設定と使用」を参照してください。 「サービス アカウントの認証情報」および「Google Cloud の認証情報認証」も参照してください。
この記事では、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 アカウントとワークスペースを自動化します。
必要条件
- Google Cloud サービス アカウントを作成するには、Google プロジェクトの Create Service アカウント IAMロールが必要です。 「必要なロール」を参照してください。
- Google Cloud サービス アカウントを Databricks アカウントに割り当てるには、そのアカウントの管理者である必要があります。 「 ユーザーへのアカウント管理者ロールの割り当て」を参照してください。
- Google Cloud サービス アカウントを Databricks ワークスペースに割り当てるには、そのワークスペースの管理者である必要があります。 「 ワークスペース管理者設定ページを使用して、ワークスペース管理者ロールをユーザーに割り当てる」を参照してください。
ステップ 1: Google Cloud サービス アカウントを作成する
このステップでは、Google Cloud コンソールでターゲット Google プロジェクトの Google Cloud サービス アカウントを作成します。
-
Google Cloud コンソールにログインします。
-
複数のプロジェクトにアクセスできる場合は、ターゲット プロジェクトに切り替えます。 これを行うには、上部のナビゲーションバーで、Google Cloud ロゴの横にあるプロジェクト セレクタをクリックします。 次に、リストでプロジェクトの名前を選択します。
-
リソース、ドキュメント、製品などの検索 (/) で、 サービス アカウント を検索して選択します。
-
[+ サービス アカウントの作成 ] をクリックします。
-
[サービス アカウント の詳細] セクションの [サービス アカウント 名] に、覚えやすいサービス アカウントの一意の名前を入力します。
-
サービスアカウントID ボックスの下にある Eメールアドレス は、手順2、3、4、5、7で必要になるため、メモしておいてください。次のようになります。
<your-service-account-name>@<your-project-name>.iam.gserviceaccount.com
-
必要に応じて、[ サービス アカウント の説明] に、サービス アカウントに関するわかりやすい説明を入力します。
-
[作成して続行 ] をクリックします。
-
[ 完了 ] をクリックします。
ステップ 2: Google Cloud サービス アカウントを Databricks アカウントに割り当てる
この手順では、Google Cloud サービス アカウントに Databricks アカウントへのアクセス権を付与します。 サービスアカウントに Databricks アカウントへのアクセス権を付与しない場合は、ステップ 3 に進んでください。
-
Databricks ワークスペースで、上部のバーにあるユーザー名をクリックし、[ アカウントの管理 ] をクリックします。
または、Databricks アカウント コンソールの https://accounts.gcp.databricks.com に直接アクセスします。
-
要求された場合は、Databricks アカウントにサインインします。
-
サイドバーで、[ ユーザー管理 ] をクリックします。
-
「ユーザー 」タブをクリックします。
このタブには [ユーザー ] というラベルが付いていますが、このタブはサービス アカウントでも機能します。 Databricks は、サービス アカウントを Databricks アカウントのユーザーとして扱います。
-
[ ユーザーを追加 ]をクリックします。
-
[Eメール ] に、ステップ 1 でコピーしたサービス アカウントの Eメール アドレス を入力します。
-
[ 名 ] と [姓 ] には、後でサービスアカウントを検索するのに役立つ意味のあるテキストを入力します。 たとえば、[ 名 ] には、ステップ 1 の サービス アカウント名 を入力できます。 [姓 ] に「 Google Cloud サービス アカウント 」と入力できます。
-
[ ユーザーを追加 ] をクリックします。 Databricks は、サービス アカウントをユーザーとして Databricks アカウントに追加します。
-
ユーザーに付与するアカウントレベルの権限を割り当てます。
- [ ユーザー ] タブで、ユーザーの名前をクリックします。 ユーザー名が表示されない場合は、[ ユーザーをフィルター] を使用して見つけます。
- [ロール] タブで、このユーザーに付与する各ターゲット ロールを有効または無効にします。「 ユーザーへのアカウント管理者ロールの割り当て」を参照してください。
ステップ 3: Google Cloud サービス アカウントを Databricks ワークスペースに割り当てる
この手順では、Google Cloud サービス アカウントに Databricks ワークスペースへのアクセス権を付与します。
ワークスペースで ID フェデレーションが有効になっている場合:
-
Databricks ワークスペースで、上部のバーにあるユーザー名をクリックし、[ 設定 ] をクリックします。
-
[ ユーザー ]をクリックします。
このタブには [ユーザー ] というラベルが付いていますが、このタブはサービス アカウントでも機能します。 Databricks は、サービス アカウントを Databricks ワークスペースのユーザーとして扱います。
-
[ ユーザーを追加 ]をクリックします。
-
ステップ 2 からユーザーを選択し、[ 追加 ] をクリックします。 サービス アカウントは、Databricks ワークスペースにユーザーとして追加されます。
-
ユーザーに付与するワークスペース レベルのアクセス許可を割り当てます。
- [ ユーザー ] タブで、ユーザーの名前をクリックします。
- 「権限」 タブで、このユーザーに付与する各ターゲットステータスまたは権限を付与または取り消すために選択またはクリアします。詳細については、以下を参照してください。
ステップ4に進んでください。
ワークスペースで ID フェデレーションが有効になっていない場合:
-
Databricks ワークスペースで、上部のバーにあるユーザー名をクリックし、[ 設定 ] をクリックします。
-
[ ユーザー ]をクリックします。
このタブには [ユーザー ] というラベルが付いていますが、このタブはサービス アカウントでも機能します。 Databricks は、サービス アカウントを Databricks ワークスペースのユーザーとして扱います。
-
[ 新規追加 ] をクリックします。
-
[New user Eメール ] に、ステップ 1 でコピーしたサービス アカウントの メール アドレス を入力します。
-
「追加 」をクリックします。サービス アカウントは、Databricks ワークスペースにユーザーとして追加されます。
-
ユーザーに付与するワークスペース レベルのアクセス許可を割り当てます。
- [ ユーザー ] タブで、ユーザーの名前をクリックします。
- 「権限」 タブで、このユーザーに付与する各ターゲットステータスまたは権限を付与または取り消すために選択またはクリアします。詳細については、以下を参照してください。
ステップ 4: Google Cloud CLI をローカル開発マシンにインストールする
Google Cloud CLI のインストールの手順に従って、Google Cloud CLI をインストールします。
ステップ 5: Google Cloud サービス アカウントになりすます
このステップでは、Google Cloud ログインを使用して、 偽装 と呼ばれる手法を使用して、Google Cloud サービスアカウントを通じて Databricks を自動化します。 詳細については、「 サービス アカウントの偽装」を参照してください。
サービス アカウントを偽装するには、Google Cloud ユーザーにサービス アカウントを偽装する権限を付与する必要があります。 その後、Google Cloud CLI を使用して偽装を開始します。
-
Google Cloud ユーザーにサービス アカウントの偽装権限を付与する: ステップ 1 でログインした Google Cloud コンソールで 、リソース、ドキュメント、製品などの検索(/) で IAM を検索して選択します。
-
[Permissions ] タブの [ View By Principals ] タブで、[ Grant Access ] をクリックします。
-
[新しいプリンシパル] で、Google Cloud のユーザー名を入力して選択します。(Google Cloud サービス アカウントの名前はここに入力しないでください。
-
「 ロールを選択 」をクリックし、「
Service Account Token Creator
」と入力して選択します。 -
「 別のロールを追加」 をクリックします。
-
「 ロールを選択 」をクリックし、「
Service Account User
」と入力して選択します。 -
「サービス・アカウント・トークン・クリエーター 」をクリックします。
-
[ 保存 ]をクリックします。
-
偽装を開始する: Google Cloud CLI を使用して次のコマンドを実行し、
<your-service-account-name>@<your-project-name>.iam.gserviceaccount.com
をステップ 1 でコピーしたサービス アカウントの Eメール アドレス に置き換えます。Bashgcloud auth login --impersonate-service-account=<your-service-account-name>@<your-project-name>.iam.gserviceaccount.com
-
ウェブブラウザで、画面上のログイン手順に沿って Google Cloud ユーザー アカウントでログインします。
手順 6: ローカル開発マシンに Databricks CLI をインストールする
この手順では、Databricks CLI をインストールして、Databricks アカウントとワークスペースを自動化するコマンドを実行できるようにします。
また、Databricks Terraform プロバイダーまたは Databricks SDK for Go を Google Cloud ID 認証と共に使用して、HCL または Go コードを実行して Databricks アカウントとワークスペースを自動化することもできます。 「Databricks SDK for Go と Google Cloud ID の認証」を参照してください。
- まだインストールされていない場合は、次のように Databricks CLI をインストールします。
- Linux, macOS
- Windows
Use Homebrew to install the Databricks CLI by running the following two commands:
brew tap databricks/tap
brew install databricks
You can use winget, Chocolatey or Windows Subsystem for Linux (WSL) to install the Databricks CLI. If you cannot use winget
, Chocolatey, or WSL, you should skip this procedure and use the Command Prompt or PowerShell to install the Databricks CLI from source instead.
Installing the Databricks CLI with Chocolatey is Experimental.
To use winget
to install the Databricks CLI, run the following two commands, and then restart your Command Prompt:
winget search databricks
winget install Databricks.DatabricksCLI
To use Chocolatey to install the Databricks CLI, run the following command:
choco install databricks-cli
To use WSL to install the Databricks CLI:
-
Install
curl
andzip
through WSL. For more information, see your operating system’s documentation. -
Use WSL to install the Databricks CLI by running the following command:
Bashcurl -fsSL https://raw.githubusercontent.com/databricks/setup-cli/main/install.sh | sh
-
次のコマンドを実行して、Databricks CLIがインストールされていることを確認します。これにより、Databricks CLIの現在のバージョンが表示されるので、そのバージョンが0.205.0以降であることを確認します。
Bashdatabricks -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 が必要な認証設定を見つけると想定されるデフォルトの場所に作成します。
-
お気に入りのテキストエディタを使用して、ユーザーのホームディレクトリに
.databrickscfg
という名前のローカルファイルを作成します(まだ存在しない場合)。 Linux と macOS の場合、ユーザーのホームディレクトリは~
です。 Windows の場合、ユーザーのホームディレクトリは%USERPROFILE%
です。 -
次の内容を
.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_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 Cloud ID 認証を使用して、ステップ 7 で設定した Databricks アカウントを自動化するコマンドを実行します。 この手順では、Google Cloud ユーザー アカウントが現在、ステップ 5 で説明したようにサービス アカウントを偽装していることを前提としています。
アカウントレベルのコマンドを実行しない場合は、ステップ 9 に進んでください。
ステップ 6 からターミナルまたはコマンド プロンプトを開いたまま、次のコマンドを実行して、Databricks アカウントで使用可能なすべてのユーザーを一覧表示します。 ステップ 7 で GCP_ID_ACCOUNT
の名前を変更した場合は、ここで置き換えてください。
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
の名前を変更した場合は、ここで置き換えてください。
databricks users list -p GCP_ID_WORKSPACE
ステップ 10: クリーンアップ
この手順はオプションです。 この記事で作成した Google Cloud サービス アカウントを引き続き使用する必要がなくなった場合、この手順では、Google プロジェクトと Databricks アカウントとワークスペースからサービス アカウントを削除する方法について説明します。
Google プロジェクトからサービス アカウントを削除する
- ステップ 1 でログインした Google Cloud コンソールの [リソース]、[ドキュメント]、[製品など] の検索(/) で、[ サービス アカウント ] を検索して選択します。
- サービスアカウントの名前の行で、省略記号をクリックします。 サービス アカウントの名前が表示されない場合は、[ プロパティの名前または値を入力 ] を使用して検索します。
- 削除 をクリックします。
- 確認ダイアログで、[ 削除 ] をクリックします。
Databricks アカウントからサービス アカウントを削除する
- Databricks アカウントのサイドバーで、 [ ユーザー管理 ] をクリックします。
- 「ユーザー 」タブをクリックします。
- 手順 2 で追加したサービス アカウントの名前をクリックします。サービス アカウントの名前が表示されない場合は、[ ユーザーを絞り込む ] を使用して見つけます。
- 省略記号ボタンをクリックし、[ ユーザーの削除 ] をクリックします。
- [削除の確認 ] をクリックします。
Databricks ワークスペースからサービス アカウントを削除する
- Databricks ワークスペースで、上部のバーにあるユーザー名をクリックし、[ 設定 ] をクリックします。
- 「ユーザー 」タブをクリックします。
- ステップ 3 で追加したサービスアカウントの名前をクリックします。サービス アカウントの名前が表示されない場合は、[ ユーザーを絞り込む ] を使用して見つけます。
- [ ユーザーの削除 ] をクリックします。
- 確認ダイアログで、[ 削除 ] をクリックします。