0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Azure × Databricks~Access Connector構築 ― Managed Identityによる接続標準

0
Posted at

Screenshot_2.png

📚 参考書籍

※この記事は書籍の一部をベースに再構成しています。もう少し踏み込んだ内容(設計や具体例)は書籍の中でまとめているので、気になる方はそちらもどうぞ。

『ゼロから触ってわかった!Azure × Databricksでつくる次世代データ基盤 非公式ガイド ―』

クラウドでデータ基盤を作ろうとすると、Azure・Storage・ネットワーク・権限・セキュリティ…
そこに Databricks が加わった瞬間、一気に難易度が跳ね上がります。 “最初のつまづき” を丁寧にほどいていくのが本書です。
https://amzn.to/3QaOzbW

3.3 Access Connector構築 ― Managed Identityによる接続標準

Databricks と ADLS Gen2 を接続する際、これまで主流だったのは SAS やサービスプリンシパルでした。

しかし現在の標準は、Managed Identity をベースとしたシークレットレス接続です。

その中核にあるのが、Access Connectorです。

これは単なる接続設定ではなく、「Databricks が Azure リソースにアクセスするための公式な入口」です。


Access Connectorとは何か

Access Connector は、Azure 上のリソースとして作成される「接続の実体」です。

そしてこの中に、Managed Identity が紐づいています。

つまり構造としてはこうなります。

  • Access Connector(Azureリソース)
     └ Managed Identity(認証の実体)

Databricks は、この Identity を使って ADLS にアクセスします。


Storage Credentialとの関係

ここで、多くの人が混乱するポイントがあります。

それが Access Connector と Storage Credential の違いです。

整理すると次のようになります。

  • Access Connector → Azure側の実体(Identityを持つ)
  • Storage Credential → Unity Catalog上の定義(名前付きの入口)

イメージとしてはこうです。

「Access Connectorという実体」を、「Storage Credentialという名前」でUCに登録する」

つまり、

  • Azureで作る → Access Connector
  • Databricks(UC)で参照する → Storage Credential

という役割分担です。


信頼関係の正体:誰が誰を信じているのか

Managed Identity を使う設計の本質は、信頼関係の整理にあります。

ここを曖昧にすると、設計の理解が一気に崩れます。

重要なのは次の視点です。

  • ADLS は Databricks を信じているわけではない
  • ADLS は「Identity」を信じている

具体的にはこうなります。

  • Access Connector に紐づく Managed Identity が存在する
  • ADLS 側でその Identity に RBAC を付与する
  • その Identity を使って Databricks がアクセスする

つまり、信頼の流れはこうです。

ADLS → Managed Identity → Databricks

この「Identityを介した信頼の連鎖」こそが、シークレットレスの本質です。

  • パスワード不要
  • キー管理不要
  • ローテーション不要

セキュリティと運用性が両立される理由はここにあります。


Managed Identityの種類と使い分け

Access Connector を作成する際、Managed Identity のタイプを選択する必要があります。

  • システム割当(System-assigned)
  • ユーザー割当(User-assigned)

この選択は設計思想に関わる重要なポイントです。

システム割当

Access Connector に対して自動的に Identity が割り当てられます。

  • 設定がシンプル
  • 1リソース=1 Identity
  • 削除と同時にIdentityも消える

単一ワークスペースで完結する場合は、これで十分です。


ユーザー割当

事前に作成した Identity を複数リソースで使い回します。

  • Identityを固定できる
  • 複数ワークスペースで共有可能
  • IaC(Terraformなど)と相性が良い

シニア設計では、こちらが選ばれるケースが多いです。

  • 環境ごとに同一権限を再現したい
  • アクセス制御を中央管理したい
  • Identityのライフサイクルを独立させたい

こうした要件がある場合は、ユーザー割当が適しています。


構築の基本ステップ

Access Connector を使った接続は、次の流れで構築します。

① Access Connectorの作成

  • Managed Identity を設定(システム or ユーザー)
  • リソースとしてデプロイ

② ADLSへの権限付与

  • 対象ストレージアカウントまたはコンテナに対して
  • RBAC(例:Storage Blob Data Contributor)を付与

ここで重要なのは、「Identity単位」で付与することです。


③ Unity CatalogでStorage Credentialを作成

  • Access Connector を参照して定義
  • UC上で名前を付ける

④ External Locationを定義

  • ADLS のパス(abfss://)を指定
  • Storage Credential と紐づける

よくあるアンチパターン

Managed Identity を使う設計でも、誤りはよく見られます。

  • Storage Credential と Access Connector を混同する
  • Databricks に直接権限を付与しようとする
  • Identityではなく人に権限を付ける
  • SASやキーと併用して設計が複雑になる

特に多いのが、

「誰に権限を付けているのか分からない」状態です。

正しくは常に、

「Identityに対して権限を付与する」

という一貫したモデルで考える必要があります。


設計のポイント

実務で効いてくる観点を整理します。

  • Identityはリソースではなく“主体”として扱う
  • Access Connectorは接続の実体として一貫管理する
  • Storage Credentialは論理的な入口として整理する
  • RBACはIdentity単位で付与する

この構造を理解すると、設計が一気にシンプルになります。


まとめ:接続設計は「Identity設計」である

Access Connector は単なる接続設定ではありません。

それは、Databricks と Azure の間にある「信頼の橋」です。

押さえるべきポイントは次のとおりです。

  • Access Connector は Azure側の実体
  • Storage Credential は UC側の定義
  • ADLSはIdentityを信じてアクセスを許可する
  • Managed Identityでシークレットレスを実現する
  • システム割当とユーザー割当を使い分ける

つまり、接続設計とは「どうつなぐか」ではなく、

「誰としてアクセスするか」を設計することです。

この視点を持つことで、セキュアで運用しやすいレイクハウス基盤が実現できるのです。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?