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