このページでは、Unity カタログでストレージ資格情報を作成して、Azure Data Lake Storageに接続する方法について説明します。 Unity カタログでサポートされるその他のクラウド ストレージ オプションについては、Unity カタログ でサポートされているクラウド ストレージ オプションに関する情報を参照してください。
ストレージ資格情報には、クラウド ストレージへのアクセスを提供する長期的なクラウド資格情報が含まれています。 Unity カタログで 外部の場所 を作成して外部ストレージへのアクセスを管理する場合は、ストレージ資格情報とクラウド ストレージ パスを参照します。
Azure Data Lake Storage にアクセスするストレージ資格情報を作成します
Azureマネージド ID またはサービス プリンシパルを、ストレージ コンテナーへのアクセスを承認する ID として使用できます。 マネージド ID を強くお勧めします。 それを使う、ネットワーク ルールによって保護されたストレージ アカウントに Unity Catalog がアクセスできるという利点があり (サービス プリンシパルでは不可能)、シークレットの管理とローテーションを行う必要がなくなります。 サービス プリンシパルを使用する場合は、「サービス プリンシパルを使って Unity Catalog のマネージド ストレージを作成する (レガシ)」を参照してください。
要件
Azure Databricks 内で:
- Unity カタログ向けに有効化されている Azure Databricks ワークスペース。
- ワークスペースにアタッチされている Unity Catalog メタストアの
CREATE STORAGE CREDENTIAL権限。 アカウント管理者とメタストア管理者には、既定でこの特権があります。
Azure テナントで次の手順を実行します。
Azure Data Lake Storage ストレージ コンテナー。 エグレス料金を回避するには、データにアクセスするワークスペースと同じリージョンに存在する必要があります。
Azure Data Lake Storage ストレージ アカウントには階層型名前空間が必要です。
Azure リソース グループの共同作成者または所有者。
ストレージ アカウントで Azure RBAC ロールのユーザー アクセス管理者を持つ所有者またはユーザー。
ストレージ資格情報を作成する
Azure ポータルで、Azure Databricks アクセス コネクタを作成し、「
Unity Catalog のマネージド ID を構成する0」の手順に従って、アクセスするストレージ コンテナーにアクセス許可を割り当てます。 Azure Databricks アクセス コネクタは、マネージド ID をAzure Databricks アカウントに接続できるファースト パーティのAzure リソースです。 ストレージ資格情報を追加するには、Azureのアクセス コネクタ リソースに対する Contributor ロール以上が必要です。
アクセス コネクタのリソース ID を書き留めます。
CREATE STORAGE CREDENTIAL権限を持つユーザーとして、Unity カタログ対応のAzure Databricks ワークスペースにログインします。メタストア管理者ロールとアカウント管理者ロールの両方にこの特権が含まれています。
サイドバーで、[データ] アイコンをクリック
カタログ。
接続>資格情報 をクリックします。
[ 資格情報の作成] を選択します。
ストレージ資格情報を選択します。
Credential Type の Azure Managed Identity を選択します。
資格情報の名前を入力し、アクセス コネクタのリソース ID を次の形式で入力します。
/subscriptions/<subscription-id>/resourceGroups/<resource-group>/providers/Microsoft.Databricks/accessConnectors/<connector-name>(省略可能) ユーザー割り当てマネージド ID を使用してアクセス コネクタを作成した場合は、マネージド ID のリソース ID を [User-assigned managed identity ID] (ユーザー割り当てマネージド ID の ID) フィールドに次に形式で入力します。
/subscriptions/<subscription-id>/resourceGroups/<resource-group-name>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<managed-identity-name>(省略可能) ユーザーにこのストレージ資格情報を使用する外部の場所への読み取り専用アクセス権を持たせたい場合は、[読み取り専用] を選択します。 詳細については、「ストレージ資格情報を読み取り専用 としてマークする」を参照してください。
Create をクリックしてください。
(省略可能) ストレージの資格情報を特定のワークスペースにバインドする。
既定では、特権ユーザーであれば誰でも、メタストアに接続されている任意のワークスペースでストレージ資格情報を使用できます。 特定のワークスペースからのアクセスのみを許可する場合は、[ワークスペース] タブに移動してワークスペースを割り当てます。 「(省略可能) ストレージの資格情報を特定のワークスペースにバインドする」を参照してください。
このストレージ資格情報を参照する外部の場所を作成します。
(省略可能) ストレージの資格情報を特定のワークスペースにバインドする
既定では、ストレージの資格情報は、メタストア内のすべてのワークスペースからアクセスできます。 つまり、ユーザーがそのストレージの資格情報で特権 (CREATE EXTERNAL LOCATION など) を付与されている場合、メタストアに接続されたどのワークスペースからでもその特権を行使できるということです。 ワークスペースを使用してユーザーのデータ アクセスを分離する場合、特定のワークスペースからのみストレージの資格情報へのアクセスを許可することができます。 この機能はワークスペースのバインディングまたはストレージの資格情報の分離として知られています。
ストレージ資格情報を特定のワークスペースにバインドする一般的なユース ケースは、クラウド管理者が運用クラウド アカウントの資格情報を使用してストレージ資格情報を構成し、Azure Databricksユーザーがこの資格情報を使用して運用ワークスペース内にのみ外部の場所を作成できるようにするシナリオです。
ワークスペース バインディングの詳細については、「(省略可能) 特定のワークスペースに外部の場所を割り当てる」および「特定のワークスペースにカタログ アクセスを制限する」を参照してください。
注
ワークスペース バインディングは、ストレージ資格情報に対する特権が行使される時点で参照されます。 たとえば、ユーザーがストレージの資格情報を使用して外部の場所を作成する場合、ストレージの資格情報のワークスペース バインディングは、外部の場所が作成される場合にのみチェックされます。 外部の場所が作成されると、それはストレージの資格情報で構成されたワークスペース バインディングとは独立して機能します。
ストレージの資格情報を 1 つ以上のワークスペースにバインドする
特定のワークスペースにストレージの資格情報を割り当てるには、カタログ エクスプローラーまたは Databricks CLI を使用できます。
必要なアクセス許可: メタストア管理者、ストレージ資格情報所有者、またはストレージ資格情報の MANAGE。
注
ストレージの資格情報が現在のワークスペースに割り当てられているかどうかに関係なく、メタストア管理者はカタログ エクスプローラーを使用してメタストア内のすべてのストレージの資格情報を表示できます。また、ストレージの資格情報所有者は、メタストア内で自分が所有しているすべてのストレージの資格情報を表示できます。 ワークスペースに割り当てられていないストレージの資格情報は、灰色で表示されます。
カタログ エクスプローラー
メタストアにリンクされているワークスペースにログインします。
サイドバーで、[データ] アイコンをクリック
カタログ。
接続>資格情報 をクリックします。
ストレージの資格情報を選択し、[ワークスペース] タブに移動します。
[ワークスペース] タブ で、[All workspaces have access] (すべてのワークスペースにアクセス権がある) チェック ボックスをオフにします。
ストレージの資格情報が既に 1 つ以上のワークスペースにバインドされている場合、このチェック ボックスは既にオフになっています。
[Assign to workspaces] (ワークスペースに割り当てる) をクリックし、割り当てるワークスペースを入力または検索します。
アクセスを取り消すには、[ワークスペース] タブに移動し、ワークスペースを選択して [失効] をクリックします。 すべてのワークスペースからのアクセスを許可するには、[All workspaces have access] (すべてのワークスペースにアクセス権がある) チェック ボックスをオンにします。
CLI
ストレージ資格情報をワークスペースに割り当てるには、2 つの Databricks CLI コマンド グループと 2 つの手順が必要です。
次の例では、<profile-name> をAzure Databricks認証構成プロファイルの名前に置き換えます。 これには、個人用アクセス トークンを生成したワークスペースのワークスペース インスタンス名とワークスペース ID に加えて、個人用アクセス トークンの値が含まれている必要があります。
「個人用アクセス トークン認証 (レガシ)」を参照してください。
storage-credentialsコマンド グループのupdateコマンドを使用して、ストレージ資格情報のisolation modeをISOLATEDに設定します。databricks storage-credentials update <my-storage-credential> \ --isolation-mode ISOLATED \ --profile <profile-name>既定の
isolation-modeは、メタストアにアタッチされているすべてのワークスペースでOPENです。workspace-bindingsコマンド グループのupdate-bindingsコマンドを使用して、ワークスペースをストレージ資格情報に割り当てます。databricks workspace-bindings update-bindings storage-credential <my-storage-credential> \ --json '{ "add": [{"workspace_id": <workspace-id>}...], "remove": [{"workspace_id": <workspace-id>}...] }' --profile <profile-name>"add"プロパティと"remove"プロパティを使用し、ワークスペース バインドを追加するか、削除します。注
読み取り専用バインディング (
BINDING_TYPE_READ_ONLY) は、ストレージ資格情報では使用できません。 したがって、ストレージ資格情報のバインディングにbinding_typeを設定する理由はありません。
ストレージ資格情報のすべてのワークスペース割り当てを一覧表示するには、 workspace-bindings コマンド グループの get-bindings コマンドを使用します。
databricks workspace-bindings get-bindings storage-credential <my-storage-credential> \
--profile <profile-name>
ワークスペースからストレージの資格情報のバインドを解除する
カタログ エクスプローラーまたは workspace-bindings CLI コマンド グループを使用してストレージ資格情報へのワークスペース アクセスを取り消す手順については、「ストレージの資格情報を 1 つ以上のワークスペースにバインドする」で説明しています。
次のステップ
ストレージ資格情報を使用するためのアクセス許可を他のユーザーに表示、更新、削除、および付与します。 「ストレージの資格情報を管理する」を参照してください。
ストレージ資格情報を使用して外部の場所を定義します。 「
クラウド ストレージを Azure Databricks を参照してください。