GoogleクラウドID認証の設定と使用
この記事の手順に従って、Google クラウド サービス アカウントを認証し、Databricks アカウントとワークスペースを自動化します。
Google クラウド サービス アカウントは、通常、個人ではなくアプリケーションで使用される特殊な種類の Google クラウド アカウントです。 サービスアカウントは、アカウント固有のEメールアドレスで識別されます。 「サービス アカウントの概要」を参照してください。
注:
Google クラウド サービス アカウントはDatabricksプリンシパルとは異なります。 Google クラウド サービス アカウント を使用するかDatabricksサービス プリンシパル を使用するかの選択は、組織のセキュリティ設定またはポリシーによって異なる場合があります。 Databricks認証に Google クラウド サービス アカウント の代わりにDatabricksサービスプリンシパル を使用する方法については、 「サービスプリンシパルの管理」をご覧ください。
Databricks では、Databricks を使用して Google クラウド サービス アカウントを認証するための 2 つの方法を提供しています。
GoogleクラウドID認証は、GoogleクラウドサービスアカウントのEメールアドレスを使用して認証します。 本記事では、GoogleクラウドのサービスアカウントのEメールアドレスを認証に利用する方法を説明します。 「Google クラウド ID 認証」も参照してください。
Google クラウド認証情報認証。認証には Google が管理するキーペアを使用します。 詳細については、 Google クラウド認証情報認証の設定と使用をご覧ください。 サービス アカウント認証情報とGoogle クラウド認証情報認証も参照してください。
この記事では、Google クラウド ID 認証を次のように設定して使用する方法について説明します。
Googleクラウドのサービスアカウントを作成します。
Google クラウド サービス アカウントを Databricks アカウントと、そのアカウントの Databricks ワークスペースに割り当てます。
Google クラウドコマンドライン インターフェイス (Google クラウド CLI) をインストールし、Google クラウド CLI がログインを使用して Google クラウド サービス アカウントを偽装することを承認します。
ローカル開発マシンに Databricks CLI をインストールし、Google クラウド ID 認証用に Databricks CLI を構成します。
Databricks CLI でコマンドを実行し、Google クラウド ID 認証、またはその両方を使用して Databricks アカウントとワークスペースを自動化します。
要件
Googleクラウドサービスアカウントを作成するには、GoogleプロジェクトのCreate Service AccountsIAMロールが必要です。 「必要な役割」を参照してください。
Google クラウド サービス アカウントをDatabricksアカウントに割り当てるには、そのアカウントの管理者である必要があります。 「ユーザーにアカウント管理者ロールを割り当てる」を参照してください。
Google クラウド サービス アカウントをDatabricksワークスペースに割り当てるには、そのワークスペースの管理者である必要があります。 「ワークスペース管理者設定ページを使用してユーザーにワークスペース管理者ロールを割り当てる」を参照してください。
ステップ 1: Google クラウド サービス アカウントを作成する
このステップでは、Google クラウドコンソールでターゲット Google プロジェクトの Google クラウド サービス アカウントを作成します。
Google クラウド コンソールにログインします。
複数のプロジェクトにアクセスできる場合は、ターゲット プロジェクトに切り替えます。 これを行うには、上部のナビゲーション バーで、Google クラウドのロゴの横にあるプロジェクト セレクタをクリックします。 次に、一覧からプロジェクトの名前を選択します。
リソース、ドキュメント、製品などの検索 (/) で、サービス アカウントを検索して選択します。
[ + サービスアカウントの作成] をクリックします。
( サービスアカウントの詳細 ) セクションの [ Service account name] (サービスアカウント名) に、覚えやすいサービスアカウントの一意の名前を入力します。
ステップ 2、3、4、5、7 で必要になるので、[サービス アカウント ID] ボックスの下にある Eメール アドレスをメモします。次のようになります。
<your-service-account-name>@<your-project-name>.iam.gserviceaccount.com
必要に応じて、[ Service account description (サービスアカウントの説明)] に、サービスアカウントに関するわかりやすい説明を入力します。
「 作成して続行」をクリックします。
[完了] をクリックします。
ステップ 2: Google クラウド サービス アカウントを Databricks アカウントに割り当てる
このステップでは、GoogleクラウドサービスアカウントにDatabricksアカウントへのアクセス権を付与します。 サービス アカウントに Databricks アカウントへのアクセス権を付与しない場合は、ステップ 3 に進んでください。
Databricks ワークスペースで、上部のバーにあるユーザー名をクリックし、 [ アカウントの管理] をクリックします。
または、 Databricks アカウント コンソール (https://accounts.gcp.databricks.com) に直接移動します。
メッセージが表示されたら、Databricks アカウントにサインインします。
サイドバーで [ ユーザー管理] をクリックします。
「 ユーザー 」タブをクリックします。
注:
このタブには [ユーザー] というラベルが付いていますが、このタブはサービス アカウントでも機能します。 Databricks は、サービス アカウントを Databricks アカウントのユーザーとして扱います。
[ユーザーを追加]をクリックします。
[Eメール] に、ステップ 1 でコピーしたサービスアカウントのメールアドレスを入力します。
[ 名] と [姓] に、後でサービス アカウントを検索するのに役立つわかりやすいテキストを入力します。 たとえば、[First name (名)] には、ステップ 1 の [Service account name (サービス アカウント名)] を入力できます。[ 姓] に「 Google クラウド サービス アカウント」と入力します。
[ ユーザーの追加] をクリックします。 Databricks は、サービス アカウントをユーザーとして Databricks アカウントに追加します。
ユーザーに付与するアカウントレベルの権限を割り当てます。
[ ユーザー ] タブで、ユーザーの名前をクリックします。 ユーザー名が表示されない場合は、[ ユーザーのフィルター ] を使用して検索します。
[ロール]タブで、このユーザーに付与する各ターゲット ロールを有効または無効に切り替えます。 「ユーザーにアカウント管理者ロールを割り当てる」を参照してください。
ステップ 3: Google クラウド サービス アカウントを Databricks ワークスペースに割り当てる
この手順では、Google クラウド サービス アカウントに Databricks ワークスペースへのアクセス権を付与します。
ワークスペースでID フェデレーションが有効になっている場合:
Databricks ワークスペースで、上部のバーにあるユーザー名をクリックし、 [設定]をクリックします。
[ユーザー]をクリックします。
注:
このタブには 「ユーザー」というラベルが付いていますが、このタブはサービスアカウントでも機能します。 Databricks は、サービス アカウントを Databricks ワークスペースのユーザーとして扱います。
[ユーザーを追加]をクリックします。
ステップ 2 からユーザーを選択し、[ 追加] をクリックします。 サービス アカウントは、Databricks ワークスペースにユーザーとして追加されます。
ユーザーに付与するワークスペース レベルのアクセス許可を割り当てます。
[ ユーザー ] タブで、ユーザーの名前をクリックします。
「権限」タブで、このユーザーに付与する各ターゲット・ステータスまたは 権限 を付与または取消すためにオンまたはクリアします。 詳細については、次を参照してください。
ステップ 4 に進みます。
ワークスペースで ID フェデレーションが有効になっていない場合:
Databricks ワークスペースで、上部のバーにあるユーザー名をクリックし、 [設定]をクリックします。
[ユーザー]をクリックします。
注:
このタブには 「ユーザー」というラベルが付いていますが、このタブはサービスアカウントでも機能します。 Databricks は、サービス アカウントを Databricks ワークスペースのユーザーとして扱います。
[ 新規追加] をクリックします。
[ New user Eemail (新規ユーザーメール)] に、ステップ 1 でコピーしたサービスアカウントの Eメールアドレス を入力します。
[ 追加] をクリックします。 サービス アカウントは、Databricks ワークスペースにユーザーとして追加されます。
ユーザーに付与するワークスペース レベルのアクセス許可を割り当てます。
[ ユーザー ] タブで、ユーザーの名前をクリックします。
「権限」タブで、このユーザーに付与する各ターゲット・ステータスまたは 権限 を付与または取消すためにオンまたはクリアします。 詳細については、次を参照してください。
ステップ 4: ローカル開発マシンに Google クラウド CLI をインストールする
gcloud CLI のインストールの手順に従って、Google クラウド CLI をインストールします。
ステップ 5: Google クラウド サービス アカウントを偽装する
このステップでは、Google クラウド ログインを使用して、 偽装と呼ばれる手法を使用して、Google クラウド サービス アカウントを介して Databricks を自動化します。 詳細については、「 サービス アカウントの偽装」を参照してください。
サービス アカウントを偽装するには、サービス アカウントを偽装するための権限を Google クラウド ユーザーに付与する必要があります。 その後、Google クラウド CLI を使用して偽装を開始します。
サービスアカウントを偽装するための権限をGoogleクラウドユーザーに付与する:ステップ1でログインしたGoogleクラウドコンソールで、 リソース、ドキュメント、製品などの検索(/)で IAMを検索して選択します。
「 権限 」タブの「 プリンシパル別に表示 」タブで、「 アクセス権の付与」をクリックします。
[New Principals (新しいプリンシパル)] で、Google クラウドのユーザー名を入力して選択します。(Googleクラウドサービスアカウントの名前はここに入力しないでください。
[ ロールの選択] をクリックし、入力して [
Service Account Token Creator
] を選択します。「 別のロールを追加」をクリックします。
[ ロールの選択] をクリックし、入力して [
Service Account User
] を選択します。「 サービス・アカウント・トークン作成者」をクリックします。
[保存]をクリックします。
偽装を開始する: 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
ウェブブラウザで、画面に表示されるログイン手順に沿って Google クラウド ユーザー アカウントでログインします。
ステップ 6: ローカル開発マシンに Databricks CLI をインストールする
この手順では、Databricks CLI をインストールして、それを使用して Databricks アカウントとワークスペースを自動化するコマンドを実行できるようにします。
ヒント
また、Databricks Terraform プロバイダーまたは Databricks SDK for Go を Google クラウド ID 認証と共に使用し、HCL または Go コードを実行して Databricks アカウントとワークスペースを自動化することもできます。 「Databricks SDK for Go」と「Google クラウド ID 認証」を参照してください。
まだインストールされていない場合は、 次のように Databricks CLI をインストールします。
Homebrew を使用して、次の 2 つのコマンドを実行して Databricks CLI をインストールします。
brew tap databricks/tap brew install databricks
Databricks CLI をインストールするには、 winget、 Chocolatey 、または 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 をインストールするには、次のようにします。
WSL を使用して
curl
とzip
をインストールします。 詳細については、オペレーティング システムのマニュアルを参照してください。WSL を使用して、次のコマンドを実行して Databricks CLI をインストールします。
curl -fsSL https://raw.githubusercontent.com/databricks/setup-cli/main/install.sh | sh
次のコマンドを実行して、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 が必要な認証設定を見つける必要があると想定される既定の場所にファイルを作成します。
任意のテキストエディタを使用して、ユーザーのホームディレクトリに
.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 でコピーしたサービス アカウントの電子メール アドレスに置き換えます。<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 でログインした Google クラウド コンソールの [リソース、ドキュメント、製品などの検索] (/) で、[ サービス アカウント] を検索して選択します。
サービス アカウントの名前の行で、省略記号をクリックします。 サービス アカウントの名前が表示されない場合は、[ プロパティ名または値を入力 ] を使用して検索します。
[削除] をクリックします。
確認ダイアログで、「 削除」をクリックします。