Unity カタログを使用してクラウド ストレージへのアクセスを管理する
この記事では、Unity カタログを使用して Azure Databricks からクラウド ストレージへのアクセスを管理する方法の概要について説明します。 external location、storage credential、および managed storage の概念について説明します。
Note
Unity カタログを使用してクラウド ストレージではなく外部サービスへのアクセスを管理する場合は、「 サービス資格情報を使用した外部クラウド サービスへのアクセスの管理」を参照してください。
外部の場所とストレージの資格情報
Unity カタログによって管理されるすべてのデータは、クラウド プロバイダー アカウントのクラウド ストレージ内に存在する必要があります。 Unity カタログは、クラウド ストレージの場所へのパスと、その場所にアクセスするために必要な資格情報を定義する、 外部の場所と呼ばれるセキュリティ保護可能なオブジェクトを使用して、クラウド ストレージへのアクセスを制御します。 これらの資格情報は、 torage 資格情報と呼ばれる Unity カタログのセキュリティ保護可能なオブジェクトで定義されます。 Unity カタログで外部の場所のセキュリティ保護可能なリソースへのアクセスを許可および取り消すことで、クラウド ストレージの場所のデータへのアクセスを制御できます。 Unity カタログでストレージ資格情報セキュリティ保護可能なリソースへのアクセスを許可および取り消すことで、外部の場所オブジェクトを作成する機能を制御できます。
これら 2 つのセキュリティ保護可能なオブジェクトについて、もう少し詳しく説明します。
- ストレージ資格情報は、Azure Data Lake Storage Gen2 コンテナーの Azure マネージド ID またはサービス プリンシパルまたは Cloudflare R2 バケット用の R2 API トークンを使用して、クラウド テナントに格納されているデータにアクセスするための認証および認可メカニズムを表します。 Unity カタログで付与された権限は、資格情報を使用して外部の場所を定義できるユーザーとグループを制御します。 ストレージ資格情報を作成して使用するアクセス許可は、外部の場所オブジェクトを作成する必要があるユーザーにのみ付与する必要があります。 「Azure Data Lake Storage Gen2 に接続するためのストレージ資格情報を作成する」と「Cloudflare R2 に接続するためのストレージ資格情報を作成する」を参照してください。
- 外部の場所は、クラウド ストレージ パスと、クラウド ストレージ パスへのアクセスを承認するストレージ資格情報を組み合わせたものです。 Unity カタログで付与された特権は、外部の場所によって定義されたクラウド ストレージ パスにアクセスできるユーザーとグループを制御します。 外部の場所を作成して使用するためのアクセス許可は、外部テーブル、外部ボリューム、またはマネージド ストレージの場所を作成する必要があるユーザーにのみ付与する必要があります。 「クラウド ストレージを Azure Databricks に接続するための外部の場所を作成する」を参照してください。
外部の場所は、外部データ資産 (外部テーブル、外部ボリュームなど) と管理されたデータ資産 (管理されたテーブル管理ボリュームなど) の両方に使用されます。 Unity カタログの外部データ資産とマネージド データ資産の違いの詳細については、「 テーブルとビューとは と Unity カタログ ボリュームとは何ですか?を参照してください。
外部の場所を使用するためのベスト プラクティスについては、「 外部の場所、外部テーブル、および外部ボリュームの管理」を参照してください。
外部テーブルとボリュームを作成するときに外部の場所を使用する
Unity カタログに登録されている外部テーブルと外部ボリュームは、基本的に、Azure Databricks の外部で管理するクラウド ストレージ内のデータへのポインターです。 Unity カタログで外部テーブルまたは外部ボリュームを作成する場合は、適切な特権が付与されている外部ロケーション オブジェクトに含まれるクラウド ストレージ パスを参照する必要があります。 Unity カタログの外部データ資産とマネージド データ資産の違いの詳細については、「 テーブルとビューとは と Unity カタログ ボリュームとは何ですか?を参照してください。 権限については、「外部の場所に対するアクセス許可を参照してください。
マネージド ストレージの作成時に外部の場所を使用する
マネージド テーブルとマネージド ボリュームは、Unity カタログによって完全に管理されます。 既定では、メタストア、カタログ、またはスキーマ レベルで定義できる 管理されたストレージの場所に格納されます。 管理ストレージの場所をメタストア、カタログ、またはスキーマに割り当てるときは、外部の場所オブジェクトを参照する必要があります。また、それを使用するには十分な特権が必要です。 「Unity Catalog でマネージド ストレージの場所を指定する」および「Unity Catalog のベスト プラクティス」を参照してください。
Unity カタログでクラウド ストレージへのアクセスを管理するためのワークフロー
Unity カタログを使用してクラウド ストレージへのアクセスを管理するには、次の操作を行います。
- クラウド ストレージ パスへのアクセスを提供する Azure マネージド ID をカプセル化するストレージ資格情報オブジェクトを作成します。
- ストレージ パスとストレージ資格情報オブジェクトを参照する外部の場所オブジェクトを作成します。
- 外部テーブル、外部ボリューム、または既定のマネージド ストレージの場所を作成するときに、外部の場所に含まれるパスを参照します。 これは、外部の場所またはサブパスで定義されている正確なパスです。