ストレージ資格情報

適用対象:check marked yes Databricks SQL check marked yes Databricks Runtime check marked yes Unity Catalog のみ

Unity Catalog と組み込みの Azure Databricks Hive メタストアでは、マネージド テーブルの既定の場所が使用されます。 Unity Catalog には、クラウド オブジェクト ストレージ内のデータに権限を付与するための新しいセキュリティ保護可能なオブジェクトがいくつか導入されています。

ストレージの資格情報

ストレージ資格情報は、Azure マネージド ID または Microsoft Entra ID サービス プリンシパルを表すセキュリティ保護可能なオブジェクトです。

ストレージの資格情報を作成したら、そのアクセス権をプリンシパル (ユーザーおよびグループ) に付与できます。

ストレージ資格情報は、主に、特定のストレージ パスへのアクセスを対象範囲とする外部の場所を作成するために使用されます。

ストレージの資格情報の名前は非修飾なので、メタストア内で一意である必要があります。

リレーションシップのグラフィック表示

次の図は、以下の項目のリレーションシップを示しています。

  • ストレージの資格情報
  • 外部の場所
  • 外部テーブル
  • ストレージ パス
  • IAM エンティティ
  • Azure サービス アカウント

External location ER diagram

CLI を使用して、Microsoft Entra ID サービス プリンシパルのストレージ資格情報 my_azure_storage_cred を作成します。

databricks storage-credentials create --json '{"name": "my_azure_storage_cred", "azure_service_principal": {"directory_id": "12345678-9abc-def0-1234-56789abcdef0", "application_id": "23456789-9abc-def0-1234-56789abcdef0", "client_secret": "Cli3nt5ecr3t"}}'

残りのコマンドは SQL 内で実行できます。

-- Grant access to the storage credential
> GRANT READ FILES ON STORAGE CREDENTIAL my_azure_storage_cred TO ceo;

-- ceo can directly read from any storage path using myazure_storage_cred
> SELECT count(1) FROM `delta`.`abfss://container@storageaccount.dfs.core.windows.net/depts/finance/forecast/somefile` WITH (CREDENTIAL my_azure_storage_cred);
  100
> SELECT count(1) FROM `delta`.`abfss://container@storageaccount.dfs.core.windows.net/depts/hr/employees` WITH (CREDENTIAL my_azure_storage_cred);
  2017

-- Create an external location on specific path to which `my_azure_storage_cred` has access
> CREATE EXTERNAL LOCATION finance_loc URL 'abfss://container@storageaccount.dfs.core.windows.net/depts/finance'
    WITH (CREDENTIAL my_azure_storage_cred)
    COMMENT 'finance';