Terraform を使用した Unity Catalog セットアップの自動化
Databricks TerraformUnity Catalog プロバイダー を使用して セットアップを自動化できます。この記事では、Terraformプロバイダー Unity Catalog デプロイメント・ガイドとリソース・リファレンス・ドキュメントへのリンク、要件(「開始する前に」)、検証とデプロイのヒントを提供します。
始める前に
Terraform を使用して Unity Catalog セットアップを自動化するには、次のものが必要です。
Databricksアカウントは、プレミアムプラン以上である必要があります。
AWS では、Amazon S3 バケット、AWS IAMロール、AWS IAM ポリシー、およびクロスアカウントの信頼関係を作成できる必要があります。
Unity Catalog で使用する Databricks ワークスペースが少なくとも 1 つ必要です。 「ワークスペースを手動で作成する (既存の Databricks アカウント)」を参照してください。
Databricks Terraform プロバイダーを使用して、 Unity Catalogのメタストア、メタストアのストレージ、外部ストレージ、およびそれらに関連するすべてのアクセス資格情報を構成するには、次のものが必要です。
AWSアカウント。
Databricks on AWSアカウントです。
Databricksアカウントのアカウント管理者ロールを持つサービスプリンシパル。
Terraform CLI。Terraform Webサイトの「Terraformのダウンロード」を参照してください。
次の 7 つの Databricks 環境変数。
DATABRICKS_CLIENT_ID
は、サービスプリンシパルのクライアント ID (アプリケーション ID とも呼ばれる) の値に設定します。 「 Databricksを使用してサービスプリンシパルで へのアクセスを認証するOAuth (OAuth M2M)」 を参照してください。DATABRICKS_CLIENT_SECRET
は、サービスプリンシパルのクライアントシークレットの値に設定します。 「 Databricksを使用してサービスプリンシパルで へのアクセスを認証するOAuth (OAuth M2M)」 を参照してください。DATABRICKS_ACCOUNT_ID
をDatabricksアカウントのIDの値に設定します。この値は、Databricksアカウントコンソールの隅にあります。TF_VAR_databricks_account_id
は、DatabricksアカウントのIDの値にも設定されます。AWS_ACCESS_KEY_ID
をAWSユーザーのアクセスキーIDの値に設定します。AWS全般のリファレンスの「プログラムによるアクセス」を参照してください。AWS_SECRET_ACCESS_KEY
をAWSユーザーのシークレットアクセスキーの値に設定します。AWS全般のリファレンスの「プログラムによるアクセス」を参照してください。AWS_REGION
で、DatabricksアカウントのAWSリージョンコードの値に設定します。AWS全般のリファレンスの「リージョンエンドポイント」を参照してください。
これらの環境変数を設定するには、オペレーティングシステムのマニュアルを参照してください。
注
Databricks のユーザー名とパスワードを使用した基本認証は、2024 年 7 月 10 日にサポートが終了しました。 Databricks 管理パスワードのサポート終了を参照してください。
Databricks Terraform プロバイダーを使用して他のすべての Unity Catalog インフラストラクチャ コンポーネントを構成するには、次のものが必要です。
Databricksワークスペース。
ローカル開発マシンには、次のものが必要です。
Terraform CLI。Terraform Webサイトの「Terraformのダウンロード」を参照してください。
次のいずれか一つ。
Databricks CLI バージョン 0.205 以降 (
databricks configure --host <workspace-url> --profile <some-unique-profile-name>
を実行して Databricks 個人用アクセストークンで構成されている)。「 Databricks CLI のインストールまたは更新 」および 「Databricks 個人用アクセストークン認証」を参照してください。注
自動化されたツール、システム、スクリプト、アプリを使用して認証する場合のセキュリティのベスト プラクティスとして、Databricks ではOAuth トークンを使用することをお勧めします。
個人のアクセス トークン認証を使用する場合、 Databricksでは、ワークスペース ユーザーではなく、サービスプリンシパルに属する個人のアクセス トークンを使用することをお勧めします。 サービスプリンシパルのトークンを作成するには、 「サービスプリンシパルのトークンの管理」を参照してください。
環境変数 Databricks は次のとおりです。
DATABRICKS_HOST
は、例えば、DatabricksワークスペースインスタンスURLの値に設定します。https://dbc-1234567890123456.cloud.databricks.com
DATABRICKS_CLIENT_ID
は、サービスプリンシパルのクライアント ID (アプリケーション ID とも呼ばれる) の値に設定します。 「 Databricksを使用してサービスプリンシパルで へのアクセスを認証するOAuth (OAuth M2M)」 を参照してください。DATABRICKS_CLIENT_SECRET
は、サービスプリンシパルのクライアントシークレットの値に設定します。 「 Databricksを使用してサービスプリンシパルで へのアクセスを認証するOAuth (OAuth M2M)」 を参照してください。
または、サービスプリンシパルのクライアントIDとクライアントシークレットの代わりに、個人用アクセストークンを使用することもできます。
DATABRICKS_TOKEN
で、 Databricks Personal アクセストークンの値に設定します。 「個人用アクセストークンの監視と取り消し」も参照してください。
これらの環境変数を設定するには、オペレーティングシステムのマニュアルを参照してください。
注
自動化されたツール、システム、スクリプト、アプリを使用して認証する場合のセキュリティのベスト プラクティスとして、Databricks ではOAuth トークンを使用することをお勧めします。
個人のアクセス トークン認証を使用する場合、 Databricksでは、ワークスペース ユーザーではなく、サービスプリンシパルに属する個人のアクセス トークンを使用することをお勧めします。 サービスプリンシパルのトークンを作成するには、 「サービスプリンシパルのトークンの管理」を参照してください。
Terraformプロバイダ Unity Catalog デプロイメント・ガイドおよびリソース・リファレンス・ドキュメント
すべての前提条件をデプロイし、ワークスペースのUnity Catalogを有効にする方法については、Databricks Terraform プロバイダーのドキュメントの「前提条件リソースのデプロイとUnity Catalogの有効化」を参照してください。
Unity Catalogインフラストラクチャ・コンポーネントがすでにある場合は、Terraformを使用して、必要に応じて追加のUnity Catalog・インフラストラクチャ・コンポーネントをデプロイできます。前の段落で参照されているガイドの各セクションと、Databricks Terraform プロバイダー ドキュメントのUnity Catalogセクションを参照してください。