サービス プリンシパルと Microsoft Entra ID (Azure Active Directory) を使用してストレージにアクセスする
Note
この記事では、Azure Data Lake Storage Gen2 へのアクセスを構成するための従来のパターンについて説明します。
Databricks では、サービス プリンシパルではなく、Unity Catalog ストレージ資格情報として Azure マネージド ID を使って Azure Data Lake Storage Gen2 に接続することをお勧めします。 マネージド ID には、ネットワーク規則で保護されたストレージ アカウントに Unity Catalog からアクセスできるという利点があります (サービス プリンシパルを使う場合は不可能です)。また、シークレットの管理とローテーションの必要がなくなります。 詳細については、「Unity Catalog で Azure マネージド ID を使用してストレージにアクセスする」を参照してください。
アプリケーションを Microsoft Entra ID に登録すると、Azure ストレージ アカウントへのアクセスを提供するために使用できるサービス プリンシパルが作成されます。
次に、Unity Catalog でストレージ資格情報またはシークレットに格納された資格情報として使い、これらのサービス プリンシパルへのアクセスを構成できます。
Microsoft Entra ID アプリケーションを登録する
Microsoft Entra ID (旧称 Azure Active Directory) アプリケーションを登録し、適切なアクセス許可を割り当てると、Azure Data Lake Storage Gen2 または Blob Storage のリソースにアクセスできるサービス プリンシパルが作成されます。
Microsoft Entra ID アプリケーションを登録するには、Microsoft Entra ID での Application Administrator
ロールまたは Application.ReadWrite.All
アクセス許可が必要です。
- Azure portal で、[Microsoft Entra ID] サービスに移動します。
- [管理] で [アプリの登録] をクリックします。
- [+ 新規登録] をクリックします。 アプリケーションの名前を入力して [登録] をクリックします。
- [証明書とシークレット] をクリックします。
- [+ 新しいクライアント シークレット] をクリックします。
- シークレットの説明を追加し、[追加] をクリックします。
- 新しいシークレットの値をコピーして保存します。
- アプリケーション登録の概要で、アプリケーション (クライアント) ID とディレクトリ (テナント) ID をコピーして保存します。
ロールの割り当て
ストレージ アカウントに関連付けられた Microsoft Entra ID アプリケーション登録にロールを割り当てて、ストレージ リソースへのアクセスを制御します。 特定の要件に応じて、他のロールを割り当てる必要がある場合があります。
ストレージ アカウントにロールを割り当てるには、ストレージ アカウントに対して所有者またはユーザー アクセス管理者 Azure RBAC ロールを持っている必要があります。
- Azure portal で、[ストレージ アカウント] サービスに移動します。
- このアプリケーション登録で使用する Azure ストレージ アカウントを選択します。
- [アクセス制御 (IAM)] をクリックします。
- [+ 追加] をクリックし、ドロップダウン メニューから [ロールの割り当ての追加] を選択します。
- [選択] フィールドを Microsoft Entra ID アプリケーション名に設定し、[ロール] を [ストレージ BLOB データ共同作成者] に設定します。
- [保存] をクリックします。
サービス プリンシパルを使ってストレージ アカウントでファイル イベント アクセスを有効にするには、Azure Data Lake Storage Gen2 アカウントが属する Azure リソース グループに対する所有者またはユーザー アクセス管理者 Azure RBAC ロールを持っている必要があります。
- 上記の手順に従って、ストレージ キュー データ共同作成者とストレージ アカウント共同作成者のロールをサービス プリンシパルに割り当てます。
- Azure Data Lake Storage Gen2 アカウントが属する Azure リソース グループに移動します。
- [アクセス制御 (IAM)] に移動して、[+ 追加] をクリックし、[ロールの割り当ての追加] を選択します。
- EventGrid EventSubscription 共同作成者ロールを選び、[次へ] をクリックします。
- [アクセスの割り当て先] で [サービス プリンシパル] を選びます。
- [+ メンバーの選択] をクリックし、サービス プリンシパルを選び、[確認と割り当て] をクリックします。
または、ストレージ キュー データ共同作成者ロールのみをサービス プリンシパルに付与し、リソース グループにはロールを付与しないことで、アクセスを制限することもできます。 この場合、Azure Databricks はユーザーに代わってファイル イベントを構成できません。