Unity Catalog を使用したクラウドストレージへのアクセスの管理

この記事では、Unity Catalog を使用して Databricks からクラウド ストレージへのアクセスを管理する方法の概要について説明します。 ここでは、外部ロケーションストレージ資格情報および管理ストレージの概念について説明します。

注:

Unity Catalog を使用してクラウド ストレージではなく外部サービスへのアクセスを制御する場合は、「サービス資格情報を使用して外部クラウド サービスへのアクセスを管理する」を参照してください。

外部ロケーションとストレージの資格情報

Unity Catalog によって管理されるすべてのデータは、クラウド プロバイダー アカウントのクラウド ストレージに存在する必要があります。 Unity Catalog は、クラウド ストレージの場所へのパスとその場所へのアクセスに必要な資格情報を定義する 外部ロケーションと呼ばれるセキュリティ保護可能なオブジェクトを使用して、クラウド ストレージへのアクセスを制御します。 これらの資格情報は、 ストレージ資格情報と呼ばれる Unity Catalog のセキュリティ保護可能なオブジェクトで定義されます。 Unity Catalogで外部ロケーション セキュリティ保護可能なリソースへのアクセスを許可および取り消すと、データ クラウド上のストレージ ロケーションへのアクセスを制御します。Unity Catalogでストレージ資格情報のセキュリティ保護可能なリソースへのアクセスを許可および取り消すことで、外部ロケーション オブジェクトを作成する機能を制御します。

これら 2 つのセキュリティ保護可能なオブジェクトについて、もう少し詳しく説明します。

  • ストレージ資格情報 は、 バケットの ロールまたは Cloudflare R2 バケットの R2 トークンを使用して、クラウド テナントに格納されているデータにアクセスするための認証および承認メカニズムを表します。IAMS3APIUnity Catalogで付与される権限は、どのユーザーとグループが資格情報を使用して外部ロケーションを定義できるかを制御します。ストレージ資格情報を作成および使用するアクセス許可は、外部ロケーション オブジェクトを作成する必要があるユーザーにのみ付与する必要があります。 「 AWS S3に接続するためのストレージ認証情報を作成する 」および「 Cloudflare R2に接続するためのストレージ認証情報を作成する」を参照してください。

  • 外部ロケーションは、クラウド ストレージ パスと、クラウド ストレージ パスへのアクセスを許可するストレージ資格情報を組み合わせたものです。Unity Catalogで付与される権限は、外部ロケーションによって定義されたクラウド ストレージ パスにアクセスできるユーザーとグループを制御します。外部ロケーションを作成および使用する権限は、外部テーブル、外部ボリューム、または管理ストレージの場所を作成する必要があるユーザーにのみ付与する必要があります。 「クラウドストレージをDatabricksに接続するための外部ロケーションの作成」を参照してください。

外部ロケーションは、Unity Catalog 外部テーブル 外部ボリューム などの外部データ資産と、 マネージドテーブル マネージドボリューム などの管理データ資産の両方に で使用されます。Unity Catalogの外部データ資産と管理されたデータ資産の違いの詳細については、「テーブルとビューとは」を参照してください。 およびUnity Catalog ボリュームとは。

外部ロケーションの使用に関するベストプラクティスについては 、「外部ロケーション、外部テーブル、および外部ボリュームの管理」を参照してください。

外部テーブルとボリュームを作成する際の外部ロケーションの使用

Unity Catalog に登録された外部テーブルと外部ボリュームは、基本的に、Databricks の外部で管理するクラウド ストレージ内のデータへのポインターです。 Unity Catalog で外部テーブルまたは外部ボリュームを作成する場合は、適切な特権が付与されている外部ロケーション オブジェクトに含まれるクラウド ストレージ パスを参照する必要があります。 Unity Catalogの外部データ資産と管理されたデータ資産の違いの詳細については、「テーブルとビューとは」を参照してください。 およびUnity Catalog ボリュームとは。権限については、「 外部ロケーションに対する権限の付与」を参照してください。

管理ストレージの作成時に外部ロケーションを使用する

マネージドテーブル と managed volumes are フルマネージド by Unity Catalog. これらは、メタストア、カタログ、またはスキーマ レベルで定義できる 管理されたストレージの場所に Default によって格納されます。 管理されたストレージの場所をメタストア、カタログ、またはスキーマに割り当てる場合は、外部ロケーション オブジェクトを参照する必要があり、それを使用するための適切な特権が必要です。 「Unity Catalog でのマネージド ストレージの場所の指定」と「Unity Catalog のベスト プラクティス」を参照してください。

Unity Catalog でクラウドストレージへのアクセスを管理するためのワークフロー

Unity Catalog を使用してクラウドストレージへのアクセスを管理するには、次の操作を行います。

  1. クラウド ストレージ パスへのアクセス権を付与する IAMロールをカプセル化するストレージ資格情報オブジェクトを作成します。

  2. ストレージ・パスとストレージ資格証明オブジェクトを参照する外部ロケーション・オブジェクトを作成します。

  3. 外部テーブル、外部ボリューム、またはデフォルト管理ストレージの場所を作成するときは、外部ロケーションに含まれるパスを参照します。 これは、外部ロケーションまたはサブパスで定義された正確なパスにすることができます。