AWS CloudFormation クイックスタートテンプレートを使用して AWS S3 に接続する
このページでは、提供されている AWS CloudFormation クイックスタートテンプレートを使用して外部ロケーションオブジェクトを作成し、AWS S3 バケットに接続する方法について説明します。AWS CloudFormation テンプレートを使用して外部ロケーションを作成すると、Databricks によって外部ロケーションが設定され、ストレージ認証情報が作成されます。
Databricks では、S3 の場所への新しい接続をすばやく設定し、既存のストレージ資格情報をまだ持っていない場合に、この方法をお勧めします。サポートされているその他の方法の概要については、「 AWS S3 外部ロケーションへの接続」を参照してください。
始める前に
前提条件 :
Databricksで外部ロケーションオブジェクトを作成する前に、AWS で外部ロケーションとして使用するS3バケットを作成する必要があります。
-
S3 バケット名にドット表記 (
incorrect.bucket.name.notation
など) を使用しないでください。AWS ではバケット名にドットを使用できますが、Databricks ではドット表記を使用した S3 バケットはサポートされていません。ドットを含むバケットは、SSL 証明書の検証の失敗により、Delta Sharing などの機能との互換性の問題を引き起こす可能性があります。詳細については、 AWS バケットの命名のベストプラクティスを参照してください。 -
外部ロケーションパスには、標準の ASCII 文字 (文字
A–Z
、a–z
、 数字0–9
、および/
、_
、-
などの一般的な記号のみを含める必要があります。 -
バケットに S3 アクセスコントロールリストをアタッチすることはできません。
-
別のUnity Catalogメタストアで外部ロケーションとして既に定義されているパスをS3で使用しないでください。複数のメタストアから 1 つの外部 S3 の場所にあるデータを安全に読み取ることはできますが、複数のメタストアから同じ S3 の場所に書き込むと、整合性の問題が発生する可能性があります。
Databricks のアクセス許可の要件 :
- メタストアに対する
CREATE STORAGE CREDENTIAL
特権が必要です。メタストア管理者は、メタストアをデフォルトでCREATE STORAGE CREDENTIAL
しています。 - 外部ロケーションで参照されるメタストアとストレージ資格情報の両方に対する
CREATE EXTERNAL LOCATION
特権が必要です。 メタストア管理者は、メタストアをデフォルトでCREATE EXTERNAL LOCATION
しています。
AWS のアクセス許可要件 :
- IAMロールを作成するには、
iam:CreateRole
権限が必要です。
ステップ 1: AWS CloudFormation テンプレートを使用して S3 バケットの外部ロケーションを作成する
-
メタストアにアタッチされているワークスペースにログインします。
-
「カタログ 」(Catalog) をクリックしてカタログエクスプローラーを開きます。
-
[
] をクリックし、[ 外部ロケーションの作成 ] をクリックします。
-
[ 新しい外部ロケーションを作成 ] ダイアログで、[ AWSクイックスタート(推奨) ]を選択し、[ 次のページ ] をクリックします。
AWSクイック スタート では、外部ロケーションを構成し、ストレージ資格情報を作成します。「 手動」 オプションを使用する場合は、S3バケットへのアクセスを許可するIAMロールを手動で作成し、ストレージ資格証明を自分でDatabricks作成する必要があります。
-
クイックスタートで外部ロケーションを作成 ダイアログで、 バケット名 フィールドにS3バケットへのパスを入力します。
-
Generate new token をクリックして、 Databricks と AWS アカウント間の認証に使用する個人用アクセストークンを生成します。
-
トークンをコピーし、 クイックスタートで起動 をクリックします。
-
起動する AWS CloudFormation テンプレート ([ クイック作成スタック ] というラベル) で、トークンを [ Databricks Personal アクセストークン ] フィールドに貼り付けます。
-
ページ下部の利用規約に同意します ( AWS CloudFormation がカスタム名で IAM リソースを作成する可能性があることを認めます )。
-
スタックを作成 をクリックします。
CloudFormation テンプレートが Databricksでの外部ロケーションオブジェクトの作成を完了するまでに数分かかる場合があります。 CloudFormation テンプレートが外部ロケーションの作成に失敗した場合は、ロールに
iam:CreateRole
アクセス許可があることを確認します。
ステップ 2: 外部ロケーションを確認する
-
Databricks ワークスペースで、 [カタログ] をクリックしてカタログ エクスプローラー を開きます。
-
[クイック アクセス ] ページで、[ 外部データ>] ボタンをクリックします。
-
[ 外部ロケーション ] タブで、外部ロケーションが作成されていることを確認します。
自動生成された外部ロケーションでは、
db_s3_external_databricks-S3-ingest-<id>
の命名構文が使用されます。 -
外部ロケーションの名前をクリックし、[ 参照 ] タブをクリックします。 外部ロケーションの所有者は、カタログ エクスプローラーの S3 バケットのファイルが表示されます。
-
(オプション)外部ロケーションを特定のワークスペースにバインドします。
デフォルトでは、すべての特権ユーザーは、メタストアに接続されている任意のワークスペースで外部ロケーションを使用できます。 特定のワークスペースからのアクセスのみを許可する場合は、 ワークスペース タブに移動し、ワークスペースを割り当てます。 「 特定のワークスペースへの外部ロケーションの割り当て」を参照してください。
-
外部ロケーションを使用する権限を付与します。
外部ロケーションを使用するには、次の権限を付与する必要があります。
- 外部ロケーションを使用して、メタストア、カタログ、またはスキーマにマネージドストレージロケーションを追加するには、
CREATE MANAGED LOCATION
特権を付与します。 - 外部テーブルまたはボリュームを作成するには、
CREATE EXTERNAL TABLE
またはCREATE EXTERNAL VOLUME
を付与します。
カタログエクスプローラーを使用してアクセス権を付与するには
- 外部ロケーション名をクリックして、詳細ペインを開きます。
- アクセス許可 タブで、 許可 をクリックします。
- 「
<external location>
に付与 」ダイアログで、[ プリンシパル ]フィールドでユーザー、グループ、またはサービスプリンシパルを選択し、付与する権限を選択します。 - 付与 をクリックします。
- 外部ロケーションを使用して、メタストア、カタログ、またはスキーマにマネージドストレージロケーションを追加するには、