自動セットアップで外部ロケーションを作成する
このページでは、DatabricksでAWS S3バケットに接続する方法について説明します。この自動セットアップを使用すると、Databricksは、AWSアカウントのクラウドリソースと、それらを表すDatabricksアカウントの保護可能なオブジェクトの両方をプロビジョニングします。これはほとんどのデプロイで推奨される方法であり、AWS管理者の承認が必要なユーザーのために組み込みの承認ワークフローが提供されます。
自動セットアップを使用すると、DatabricksはAWSアカウント内のクラウドリソースと、それらを表すDatabricksアカウント内の保護可能なオブジェクトの両方をプロビジョニングします。
AWSアカウントでは、次のリソースがプロビジョニングされます:
- 指定されたバケットとアクセスレベルにスコープされた、最小特権アクセスポリシーを持つIAMロール
- Databricksクロスアカウントロール向けに正しく構成されたクロスアカウントの信頼ポリシー
Databricksアカウントでは、以下の構成オブジェクトが作成されます。
- S3バケットへのアクセスに使用されるIAMロールを表すストレージ資格情報
- 指定したバケットにマッピングされ、Unity Catalogに登録されている外部ロケーションAuto Loaderとファイルイベントは自動的に有効になります。
自動セットアップは、AWS IAM一時委任を使用して、外部ロケーションの構成を自動的にセットアップし、必要なすべてのリソースをプロビジョニングします。すべての自動化されたアクションはAWS CloudTrailにログが記録されます。セットアップ完了後、一時委任承認は自動的に期限切れになります。Databricksはお客様のAWSアカウントへの常時アクセスを保持しません。
始める前に
- お客様のS3バケットは、お客様のAWSアカウントにすでに存在している必要があります。
- S3バケット名にドット表記を使用しないでください(例:
incorrect.bucket.name.notation)。 - 外部ロケーションのパスは標準のASCII文字のみを使用する必要があります。
- S3アクセスコントロールリスト(ACL)を有効にしたバケットは使用できません。
- 書き込み整合性の問題を防止するため、他のメタストアに登録されているパスとの競合を回避します。
以下のいずれかのDatabricks権限が必要です:
- ワークスペース管理者
- メタストア管理者
- ワークスペースにアクセスできるアカウント管理者
CREATE STORAGE CREDENTIALメタストアに対するCREATE EXTERNAL LOCATION権限(管理者以外)
セットアップを開始するために、AWS IAM権限は必要ありません。十分なAWS権限がある場合、委任リクエストを直接承認できます。そうでない場合は、セットアップフロー内でAWS管理者に承認をリクエストできます。
AWS管理者は、一時委任リクエストを承認するために、AWS IAMでiam:AcceptDelegationRequestアクセス許可が必要です。「管理者としてリクエストを承認する」を参照してください。
外部ロケーションを作成
- サイドバーで [
カタログ ]をクリックします。
- Click Connect > 外部ロケーション .
- 外部ロケーションの作成 をクリックします。
- 自動セットアップ を選択し、次に 次へ をクリックします。
- 「 外部ロケーション名 」に、作成する外部ロケーションの名前を入力してください。
- S3バケットURL には、バケットへのS3パスを入力します。 読み取り専用の使用に制限する を選択すると、Databricksはバケットからのみ読み取ることができます。それ以外の場合、Databricksはバケットから読み取り、バケットに書き込むことができます。

-
AWSにログインして外部ロケーションを作成 をクリックします。
-
AWSリソースをレビューする ダイアログで、AWSアカウントに作成されるリソースを確認します。 外部ロケーションの作成を開始 をクリックします。
-
新しいウィンドウで、DatabricksからAWSにログインして権限を確認するように求められます。
- 十分なAWS権限がある場合は、 アクセスを許可 をクリックして一時的な委任リクエストを確認して承認してください。Databricksは自動的に進行します。
- 必要なAWS権限がない場合は、 [承認をリクエスト] をクリックして、AWS管理者に承認をリクエストするよう求められます。次の画面で、 [承認をリクエスト] をクリックする前に、 [業務上の正当な理由] のメモを追加します。AWSは、承認のためにAWS管理者と共有できるLinkとリクエストIDを提供します。

管理者がリクエストを承認するのを待っている間、ウィンドウを閉じることができます。AWS管理者としてリクエストを承認するには、「管理者としてリクエストを承認する」を参照してください。
-
お待ちの間、保留中のロケーションは 保留中のロケーション の下に表示されます。「外部ロケーションのステータスを表示する」を参照してください。

- 委任リクエストが承認されると、セットアップダイアログに承認の確認が表示されます。

- Databricksは、必要なすべてのリソースをプロビジョニングします。これには最大8分かかる場合があります。プロビジョニングが完了すると、 [既存のロケーション] の下に外部ロケーションが表示されます。
外部ロケーションのステータスを表示
外部ロケーションを作成した後、 Catalog Explorer > 外部データ > 外部ロケーション の [保留中のロケーション] tabでそのステータスを追跡できます。セットアップには最大8分かかる場合があります。考えられるステータスは次のとおりです:
- 承認待ち :一時的なAWSアクセスに対するお客様のリクエストは、AWS管理者からの承認待ちです。承認後、Databricks は自動的にセットアップを再開します。
- 利用可能 :セットアップが成功しました。外部ロケーションはすぐに使用できます。
- 失敗 :セットアップで問題が発生しました。一般的なシナリオには次のものがあります。
- 7日以内に何も操作されなかったため、委任リクエストの期限が切れました。セットアップを再試行して、新しい委任リクエストを生成します。
- AWS管理者が委任リクエストを拒否しました。管理者と権限要件を確認し、再試行してください。
- その他の失敗については、外部ロケーションをクリックして詳細なエラーメッセージを表示します。
外部ロケーションを検証する
セットアップ後、Databricksがバケットにアクセスできることを検証します:
- 「**Catalog Explorer**」で、「**接続**」 >「**外部ロケーション**」をクリックします。
- 作成した外部ロケーションをクリックします。
- [ テスト接続 ] をクリックします。
- オプションで、外部ロケーションを特定のワークスペースにバインドします。「特定のワークスペースに外部ロケーションを割り当てる」を参照してください。
- 必要に応じて、ユーザーとグループに権限を付与します。一般的な権限には、
CREATE EXTERNAL TABLE、CREATE EXTERNAL VOLUME、およびCREATE MANAGED LOCATIONが含まれます。
管理者としてリクエストを承認する
十分なAWS権限を持たないユーザーが自動セットアップを開始すると、Databricks はお客様のAWSアカウントに一時的な委任リクエストを送信します。すべてのリクエストは、AWS IAM コンソールの 一時的な委任リクエスト tab に表示され、管理者はそれらを確認して対応できます。アクションが実行されない場合、各リクエストは7日後に期限切れになります。
一時的な委任リクエストを承認するには、AWS IAMでiam:AcceptDelegationRequest権限が必要です。
リクエストを承認するには、IAMコンソールの Temporary delegation requests tabを開き、リクエストを選択します。リクエストの詳細を確認し、リクエスター、業務上の理由、対象のS3バケットパス、要求されたアクセス期間を確認してから、 Approve をクリックします。代わりにリクエストを拒否するには、 Reject をクリックします。リクエストを承認すると、Databricksは外部ロケーションのセットアップを自動的に再開します。
