Google Cloud の認証情報認証を設定して使用する
この記事の手順に従って 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 認証情報認証: Google が管理するキーペアを認証に使用します。 この記事では、Google Cloud の認証情報認証用に Google が管理するキーペアを生成して使用する方法について説明します。 「サービス アカウントの認証情報」および「Google Cloud の認証情報認証」も参照してください。
- Google Cloud サービスアカウントのEメールアドレスを使用して認証を行うGoogle Cloud ID認証です。 詳細については、 Google Cloud ID 認証を設定して使用するをご覧ください。 Google Cloud ID 認証も参照してください。
この記事では、Google Cloud の認証情報認証を次のように設定して使用する方法について説明します。
- Google Cloudサービス アカウントを作成します。
- Google Cloud サービス アカウントを Databricks アカウントとそのアカウントの Databricks ワークスペースに割り当てます。
- Google Cloud サービス アカウントの Google 管理キー ペアを作成し、この Google 管理キー ペアの秘密鍵部分をダウンロードします。 この秘密キー ファイルは、Databricks の Google Cloud 資格情報認証に必要です。
- ローカル開発マシンに Databricks CLI をインストールし、Google Cloud 資格情報認証用に Databricks CLI を構成します。
- Databricks CLI でコマンドを実行し、Google Cloud 資格情報認証を使用して 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、6で必要になるので、メモしておいてください。次のようになります。
<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 サービス アカウントの Google 管理の鍵ペアを作成する
このステップでは、Google Cloud コンソールで Google Cloud サービス アカウントの Google 管理の鍵ペアを作成します。 次に、この Google が管理する鍵ペアの秘密鍵部分をダウンロードします。
-
ステップ 1 でログインした Google Cloud コンソールで、サービス アカウントの設定ページで [ キー ] タブをクリックします。
以前にサービス アカウントを閉じた場合にサービス設定ページに戻るには 、リソース、ドキュメント、製品などの検索 (/) で、サービス アカウントの名前を検索して選択します。
-
「 キーの追加」>「新しいキーの作成 」をクリックします。
-
「 秘密キーの作成 」ダイアログで、「 JSON 」を選択し、「 作成 」をクリックします。 Google が管理する鍵ペアの秘密鍵部分は、
<your-project-name>-<random-id>.json
としてローカルの開発マシンにダウンロードされます。 この.json
ファイルがダウンロードされた場所は、ステップ6の後半で必要になるため、メモしておきます。この秘密鍵は、必ず安全な場所に保管してください。 この秘密鍵を紛失した場合は、この手順を繰り返して、後でサービスアカウントの設定ページに戻り、交換用の秘密鍵をダウンロードできます。
手順 5: ローカル開発マシンに Databricks CLI をインストールする
この手順では、Databricks CLI をインストールして、Databricks アカウントとワークスペースを自動化するコマンドを実行できるようにします。
また、Databricks Terraform プロバイダーまたは Databricks SDK for Go を Google Cloud 資格情報認証と共に使用して、HCL または Go コードを実行して Databricks アカウントとワークスペースを自動化することもできます。 「Databricks SDK for Go と Google Cloud の資格情報認証」を参照してください。
- まだインストールされていない場合は、次のように 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 インストールの確認を参照してください。
手順 6: Google Cloud 資格情報認証用に Databricks CLI を構成する
このステップでは、Google Cloud サービスアカウントの秘密鍵を使用して、Databricks の Google Cloud 資格情報認証を使用するように 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 を確認する」を参照してください。<path-to-google-service-account-credentials-file>
をステップ 4 でダウンロードした秘密鍵のパスに置き換えます。<workspace-url>
をワークスペース インスタンスの URL に置き換えます (例:https://1234567890123456.7.gcp.databricks.com
)。- 必要に応じて、推奨される構成プロファイル名
GCP_CREDS_ACCOUNT
とGCP_CREDS_WORKSPACE
を異なる構成プロファイル名に置き換えることができます。 これらの特定の名前は必須ではありません。
アカウントレベルのオペレーションを実行しない場合は、次のコンテンツの
[GCP_CREDS_ACCOUNT]
セクションを省略できます。[GCP_CREDS_ACCOUNT]
host = <account-console-url>
account_id = <account-id>
google_credentials = <path-to-google-service-account-credentials-file>
[GCP_CREDS_WORKSPACE]
host = <workspace-url>
google_credentials = <path-to-google-service-account-credentials-file>
手順 7: Databricks CLI を使用してアカウント レベルのコマンドを実行する
このステップでは、Databricks CLI と Google Cloud 認証情報認証を使用して、ステップ 6 で設定した Databricks アカウントを自動化するコマンドを実行します。
アカウントレベルのコマンドを実行しない場合は、ステップ 8 に進んでください。
ステップ 5 からターミナルまたはコマンド プロンプトを開いたまま、次のコマンドを実行して、Databricks アカウントで使用可能なすべてのユーザーを一覧表示します。 ステップ 6 で GCP_CREDS_ACCOUNT
の名前を変更した場合は、必ずここで置き換えてください。
databricks account users list -p GCP_CREDS_ACCOUNT
手順 8: Databricks CLI を使用してワークスペース レベルのコマンドを実行する
このステップでは、Databricks CLI と Google Cloud 認証情報認証を使用して、ステップ 6 で設定した Databricks ワークスペースを自動化するコマンドを実行します。
手順 5 からターミナルまたはコマンド プロンプトを開いたまま、次のコマンドを実行して、Databricks ワークスペースで使用可能なすべてのユーザーを一覧表示します。 ステップ 6 で GCP_CREDS_WORKSPACE
の名前を変更した場合は、必ずここで置き換えてください。
databricks account users list -p GCP_CREDS_ACCOUNT
ステップ 9: クリーンアップ
この手順はオプションです。 この記事で作成した Google Cloud サービス アカウントを引き続き使用する必要がなくなった場合、この手順では、Google プロジェクトと Databricks アカウントとワークスペースからサービス アカウントを削除する方法について説明します。
Google プロジェクトからサービス アカウントを削除する
- ステップ 1 でログインした Google Cloud コンソールの [リソース]、[ドキュメント]、[製品など] の検索(/) で、[ サービス アカウント ] を検索して選択します。
- サービスアカウントの名前の行で、省略記号をクリックします。 サービス アカウントの名前が表示されない場合は、[ プロパティの名前または値を入力 ] を使用して検索します。
- 削除 をクリックします。
- 確認ダイアログで、[ 削除 ] をクリックします。
Databricks アカウントからサービス アカウントを削除する
- Databricks アカウントのサイドバーで、 [ ユーザー管理 ] をクリックします。
- 「ユーザー 」タブをクリックします。
- 手順 2 で追加したサービス アカウントの名前をクリックします。サービス アカウントの名前が表示されない場合は、[ ユーザーを絞り込む ] を使用して見つけます。
- 省略記号ボタンをクリックし、[ ユーザーの削除 ] をクリックします。
- [削除の確認 ] をクリックします。
Databricks ワークスペースからサービス アカウントを削除する
- Databricks ワークスペースで、上部のバーにあるユーザー名をクリックし、[ 設定 ] をクリックします。
- 「ユーザー 」タブをクリックします。
- ステップ 3 で追加したサービスアカウントの名前をクリックします。サービス アカウントの名前が表示されない場合は、[ ユーザーを絞り込む ] を使用して見つけます。
- [ ユーザーの削除 ] をクリックします。
- 確認ダイアログで、[ 削除 ] をクリックします。