Cloudflare R2に接続するためのストレージ認証情報を作成する

この記事では、Unity Catalog でストレージ認証情報を作成して Cloudflare R2 に接続する方法について説明します。 Cloudflare R2オブジェクトストレージでは、エグレス料金はかかりません。 共有するデータを R2 に複製または移行すると、エグレス料金を発生させることなく、クラウドやリージョン間でデータを共有できるようになります。

注:

Unity Catalog は、 Databricks on AWSの 2 つのクラウド ストレージ オプション ( AWS S3 バケットと Cloudflare R2 バケット) をサポートしています。 Cloudflare R2は、主にDelta Sharingのユースケースで、クラウドプロバイダーのデータエグレス料金を回避したいと考えているケースを対象としています。 S3 は、他のほとんどのユースケースに適しています。 「Delta Sharing のエグレス コストの監視と管理 (プロバイダー向け)」および「AWS S3 に接続するためのストレージ資格情報を作成する」を参照してください。

Unity Catalogによって管理されるデータのストレージロケーションとして R2 バケットを使用するには、R2 バケットへのアクセスを許可するストレージ認証情報を作成し、ストレージ認証情報とバケットパスを参照する外部ロケーションを作成する必要があります。

  • ストレージ資格情報は、クラウドストレージにアクセスするための長期的なクラウド資格情報をカプセル化します。

  • 外部ロケーションには、ストレージ資格情報とクラウドストレージパスへの参照が格納されています。

この記事では、ストレージ資格情報の作成に焦点を当てています。

詳細については、「Unity Catalogを使用してクラウド ストレージへのアクセスを管理する」を参照してください。

要件

  • Unity Catalogが有効化されたDatabricksワークスペース

  • Databricks Runtime 14.3 以降、または SQLwarehouse 2024.15 以降

    No FileSystem for scheme "r2”というエラー メッセージが表示された場合は、コンピュートがサポートされていないバージョンを使用している可能性があります。

  • Cloudflareアカウント。 https://dash.cloudflare.com/sign-up を参照してください。

  • Cloudflare R2 管理者ロール。 Cloudflareの役割 のドキュメントを参照してください。

  • CREATE STORAGE CREDENTIAL 権限(ワークスペースにアタッチされたUnity Catalogのメタストア上の)。アカウント管理者とメタストア管理者には、デフォルトでこれらの権限があります。

R2バケットの構成

  1. Cloudflare R2バケットを作成します。

    CloudflareダッシュボードまたはCloudflare Wranglerツールを使用できます。

    Cloudflare R2の「はじめに」ドキュメントまたはWranglerのドキュメントを参照してください。

  2. R2 API トークンを作成し、バケットに適用します。

    Cloudflare R2 API認証のドキュメントを参照してください。

    次のトークン プロパティを設定します。

    • 権限: オブジェクトの読み取りと書き込み。

      このアクセス許可は、 「Cloudflare R2 レプリカの使用またはストレージの R2 への移行」で説明されているように、R2 ストレージをレプリケーションターゲットとして使用する場合に必要となる読み取りおよび書き込みアクセス権を付与します。

      Databricks から R2 バケットへの読み取り専用アクセスを強制する場合は、代わりに読み取りアクセスのみを許可するトークンを作成できます。 ただし、ストレージ認証情報を読み取り専用としてマークでき、この権限によって付与された書き込みアクセスは無視されるため、これは不要な場合があります。

    • (オプション) TTL: バケットデータをデータ受信者と共有する時間の長さ。

    • (オプション) クライアント IP アドレス フィルタリング: ネットワーク アクセスを指定した受信者の IP アドレスに制限する場合に選択します。 このオプションが有効になっている場合は、受信者の IP アドレスを指定し、ワークスペース リージョンの Databricks コントロール プレーン NAT IP アドレスを許可リストに登録する必要があります。

    「Databricks コントロール プレーンからの送信 IP」を参照してください

  3. R2 API トークンの値をコピーします。

    • アクセスキーID

    • シークレットアクセスキー

    重要

    トークン値は一度だけ表示されます。

  4. R2のホームページで、 アカウント詳細 に移動し、R2アカウントIDをコピーします。

ストレージ資格情報を作成する

  1. Databricks で、ワークスペースにログインします。

  2. カタログアイコン[カタログ] をクリックします。

  3. [クイック アクセス] ページで、[外部データ] > ボタンをクリックし、[資格情報] タブに移動して、[資格情報の作成] を選択します。

  4. [ストレージ資格情報] を選択します。

  5. 資格情報の種類 」で 「Cloudflare API トークン」を選択します。

  6. 認証情報の名前と、R2 バケットの設定時にコピーした次の値を入力します。

    • アカウントID

    • アクセスキーID

    • シークレットアクセスキー

  7. (オプション)このストレージ資格情報を使用する外部ロケーションへの読み取り専用アクセス権をユーザーに付与する場合は、[詳細オプション]で[読み取り専用]を選択します。

    Cloudflare R2レプリカの使用またはR2へのストレージの移行」の説明に従って、レプリケーションターゲットとして使用しているR2ストレージにストレージ認証情報を使用してアクセスする場合は、このオプションを選択しないでください。

    詳細については、「ストレージ資格情報を読み取り専用としてマークする」を参照してください。

  8. [作成] をクリックします。

  9. [ストレージ資格情報が作成されました]ダイアログで、[外部ID]をコピーします。

  10. (オプション)ストレージ資格情報を特定のワークスペースにバインドします。

    デフォルトでは、ストレージ資格情報は、メタストアにアタッチされた任意のワークスペース上の任意の特権ユーザーが使用できます。 特定のワークスペースからのアクセスのみを許可する場合は、 ワークスペース タブに移動してワークスペースを割り当てます。 「(省略可能) 特定のワークスペースにストレージ資格情報を割り当てる」を参照してください

次のステップ: 外部ロケーションを作成する

外部ロケーションを作成してクラウドストレージをDatabricksに接続する」を参照してください。