Google クラウド認証情報の設定と使用

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

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

注:

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

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

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

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

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

  • Google クラウド サービス アカウント用に Google が管理するキー ペアを作成し、この Google が管理するキー ペアの秘密キー部分をダウンロードします。 この秘密鍵ファイルは、Databricks の Google クラウド資格情報認証に必要です。

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

  • Databricks CLI でコマンドを実行し、Google クラウドの資格情報認証を使用して Databricks アカウントとワークスペースを自動化します。

要件

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

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

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

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

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

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

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

  6. ステップ 2、3、4、6 で必要になるので、[サービス アカウント 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 クラウド サービス アカウント用に Google が管理する鍵ペアを作成する

このステップでは、Google クラウドコンソールで Google クラウドサービスアカウントの Google マネージドキーペアを作成します。 次に、この Google が管理する鍵ペアの秘密鍵部分をダウンロードします。

  1. ステップ 1 でログインした Google クラウド コンソールのサービス アカウントの設定ページで、[ キー ] タブをクリックします。

    以前に閉じたサービスアカウントの設定ページに戻るには、[ リソース、ドキュメント、製品などの検索(/)]で、サービスアカウントの名前を検索して選択します。

  2. [ キーの追加] > [新しいキーの作成] をクリックします。

  3. 秘密キーの作成 」ダイアログで、「 JSON」を選択し、「 作成」をクリックします。 Google が管理する鍵ペアの秘密鍵部分は、 <your-project-name>-<random-id>.jsonのようにローカル開発マシンにダウンロードされます。 この .json ファイルは、ステップ 6 の後半で必要になるので、ダウンロード先をメモしておきます。

    この秘密鍵は必ず安全な場所に保管してください。 この秘密鍵を紛失した場合は、この手順を繰り返して、後でサービスアカウントの設定ページに戻り、交換用の秘密鍵をダウンロードできます。

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

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

ヒント

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

  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 のインストールを確認する」を参照してください。

ステップ 6: Databricks CLI を Google クラウド資格情報認証用に構成する

この手順では、Google クラウド サービス アカウントの秘密キーを使用して、Databricks の Google クラウド資格情報認証を使用するように 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 を見つける」を参照してください。

    • <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 クラウドの資格情報認証を使用して、ステップ 6 で構成した Databricks アカウントを自動化するコマンドを実行します。

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

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

databricks account users list -p GCP_CREDS_ACCOUNT

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

このステップでは、Databricks CLI と Google クラウドの資格情報認証を使用して、ステップ 6 で構成した Databricks ワークスペースを自動化するコマンドを実行します。

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

databricks account users list -p GCP_CREDS_ACCOUNT

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

このステップはオプションです。 この記事用に作成した 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. 確認ダイアログで、「 削除」をクリックします。