Terraform を使用した Unity Catalog セットアップの自動化
Databricks Terraform プロバイダーを使用して、Unity 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 トークンを使用することをお勧めします。
personal アクセストークン認証を使用する場合、 Databricks はワークスペース users ではなく 、サービスプリンシパル に属する personal アクセストークンを使用することをお勧めします。 サービスプリンシパルのトークンを作成するには、「 サービスプリンシパルのトークンの管理」を参照してください。
次の 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 トークンを使用することをお勧めします。
personal アクセストークン認証を使用する場合、 Databricks はワークスペース users ではなく 、サービスプリンシパル に属する personal アクセストークンを使用することをお勧めします。 サービスプリンシパルのトークンを作成するには、「 サービスプリンシパルのトークンの管理」を参照してください。
Terraform プロバイダー Unity Catalog デプロイ ガイドとリソース リファレンス ドキュメント
すべての前提条件をデプロイし、ワークスペースの Unity Catalog を有効にする方法については、Databricks Terraform プロバイダーのドキュメントの「 前提条件リソースのデプロイと Unity Catalog の有効化 」を参照してください。
Unity Catalog インフラストラクチャ コンポーネントが既に配置されている場合は、Terraform を使用して、必要に応じて追加の Unity Catalog インフラストラクチャ コンポーネントをデプロイできます。 前の段落で参照したガイドの各セクションと、Unity Catalog DatabricksTerraformプロバイダーのドキュメントの セクションを参照してください 。