Databricks

Databricks Workload Identity Federation入門

2026-03-26
更新: 2026-03-27
NicheeLab編集部

クラウド環境でDatabricksクラスタがS3バケットやADLS Gen2ストレージにアクセスする場合、 従来はアクセスキーやInstance Profileといった「シークレットを保持する」方式が一般的でした。Workload Identity Federation(WIF)は、クラウドプロバイダーのIDメカニズムを利用してシークレットを保持せずに(鍵レスで)認証を行う仕組みです。

この記事では、WIFの概念、AWS/Azure/GCPそれぞれの実装方式の比較、 Instance Profile非推奨化の背景、そしてUnity Catalogとの統合を解説します。

なぜ鍵レス認証が必要か

従来のクラウドアクセス方式にはそれぞれセキュリティ上のリスクがあります。

従来方式仕組みリスク
アクセスキー(AWS)/ サービスアカウントキー(GCP)長期間有効な静的キーを環境変数やシークレットに格納漏洩すると無期限にアクセスされる。ローテーション負荷も高い
Instance Profile(AWS)EC2インスタンスにIAM Roleを割り当てクラスタ全体に同一の権限が適用され、細粒度制御が困難
ストレージアカウントキー(Azure)ストレージアカウントの共有キーを使用キーが漏洩するとアカウント内の全データにアクセス可能

WIFは「静的なシークレットを排除し、クラウドのIDベースの一時的な認証情報で認証する」ことで、 これらのリスクを構造的に排除します。

3クラウドのWIF実装比較

観点AWSAzureGCP
WIFの仕組みIAM Role + Trust Policy(OIDC Federation)Managed Identity / Federated CredentialWorkload Identity Federation(OIDC/SAML)
Databricksでの適用先Unity Catalog Storage CredentialUnity Catalog Storage Credential / Access ConnectorUnity Catalog Storage Credential
シークレット管理不要(STS一時トークンを自動取得)不要(Azure ADトークンを自動取得)不要(GCPトークンを自動取得)
従来方式(非推奨)Instance Profileストレージアカウントキーサービスアカウントキー
粒度Storage Credential単位でIAM Roleを指定Access Connector単位でManaged Identityを指定Storage Credential単位でサービスアカウントを指定

AWS環境でのWIF設定フロー

AWS環境では、IAM RoleにDatabricksのOIDCプロバイダーを信頼するTrust Policyを設定します。

  1. IAM Roleを作成: S3バケットへのアクセス権限(GetObject/PutObject/DeleteObject/ListBucket)を付与したIAM Roleを作成
  2. Trust PolicyにDatabricksを追加: DatabricksアカウントのOIDCプロバイダーARNを信頼する条件を設定
  3. Unity CatalogでStorage Credentialを作成: IAM Role ARNを指定してStorage Credentialを作成
  4. External Locationを作成: Storage Credentialを参照し、S3パスを指定してExternal Locationを作成
{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "AWS": "arn:aws:iam::414351767826:role/unity-catalog-prod-UCMasterRole-xxxx"
      },
      "Action": "sts:AssumeRole",
      "Condition": {
        "StringEquals": {
          "sts:ExternalId": "<databricks-account-id>"
        }
      }
    }
  ]
}

Azure環境でのWIF設定フロー

Azure環境では、Access ConnectorとManaged Identityを使用します。

  1. Databricks Access Connectorを作成: AzureポータルまたはTerraformでAccess Connectorリソースを作成(System Assigned Managed Identityが自動付与)
  2. ストレージアカウントにRBAC割り当て: Access ConnectorのManaged Identityに「Storage Blob Data Contributor」ロールを割り当て
  3. Unity CatalogでStorage Credentialを作成: Access Connector IDを指定してStorage Credentialを作成
  4. External Locationを作成: abfss://形式でADLSパスを指定
# Terraform例: Access Connector
resource "azurerm_databricks_access_connector" "unity" {
  name                = "unity-catalog-connector"
  resource_group_name = azurerm_resource_group.main.name
  location            = azurerm_resource_group.main.location

  identity {
    type = "SystemAssigned"
  }
}

# ストレージアカウントへのRBAC割り当て
resource "azurerm_role_assignment" "storage_contributor" {
  scope                = azurerm_storage_account.datalake.id
  role_definition_name = "Storage Blob Data Contributor"
  principal_id         = azurerm_databricks_access_connector.unity.identity[0].principal_id
}

GCP環境でのWIF設定フロー

GCP環境では、Workload Identity PoolとProviderを設定してDatabricksからのトークン交換を許可します。

  1. サービスアカウントを作成: GCSバケットへのアクセス権限を持つGCPサービスアカウントを作成
  2. Workload Identity Poolを作成: DatabricksのOIDCプロバイダーを信頼するPoolを構成
  3. サービスアカウントの権限借用を許可: PoolのメンバーがサービスアカウントのTokenを取得できるよう設定
  4. Unity CatalogでStorage Credentialを作成: サービスアカウントのEmailを指定

Instance Profile非推奨化の背景

AWS環境で長年使われてきたInstance Profileは、以下の理由で非推奨化が進んでいます。

  • 粒度の粗さ: Instance Profileはクラスタ全体に同一のIAM Roleを適用するため、 「テーブルAにはアクセスできるがテーブルBにはアクセスできない」といった細粒度の制御ができない
  • Unity Catalogとの非統合: Instance Profileはクラスタレベルの設定であり、 Unity Catalogのデータガバナンス(GRANT/REVOKE)とは独立して動作するため、権限管理が二重化する
  • 共有クラスタでのリスク: 共有クラスタにInstance Profileを設定すると、 すべてのユーザーがそのIAM Roleの権限でクラウドリソースにアクセスできてしまう
  • 管理の煩雑さ: クラスタごとにInstance Profileを設定・管理する運用負荷が高い

Unity CatalogのStorage Credential + External Locationによる方式では、 データアクセスの権限がUnity Catalogの権限体系に統合され、 ユーザー/グループ単位の細粒度制御が可能になります。

Unity Catalogとの統合

WIFはUnity Catalogの以下の概念と密接に関連しています。

Unity Catalog概念WIFとの関係
Storage Credentialクラウドストレージへのアクセスに使うIAM Role / Managed Identity / SAをラップするオブジェクト
External LocationStorage Credentialと紐づけてクラウドストレージのパスを登録するオブジェクト
GRANT / REVOKEExternal Locationに対してユーザー/グループ単位でREAD_FILES / WRITE_FILESを付与

この構成により、クラウドストレージのアクセス制御がUnity Catalogの権限体系に統合され、 Instance Profileのような「クラスタレベルの全員共有権限」を排除できます。

試験で問われるポイント

  • 「シークレットなしでS3にアクセスするには」→ Workload Identity Federation(IAM Role + Trust Policy)
  • 「Instance Profileの代わりに推奨される方式は」→ Unity Catalog Storage Credential(WIFベース)
  • 「Azure環境でDatabricksからADLSにアクセスする推奨構成は」→ Access Connector + Managed Identity
  • 「Storage CredentialとExternal Locationの関係は」→ Storage Credentialがクラウド認証、External Locationがパスの紐付け

問題で確認

Security & Governance

問題 1

あるAWS環境のDatabricksワークスペースで、データエンジニアがS3バケット内のParquetファイルにアクセスするExternal Tableを作成したい。セキュリティチームは「静的なアクセスキーやシークレットの使用を禁止し、鍵レスの認証方式を使うこと」と要件を出している。適切な構成はどれか。

  1. S3へのアクセス権限を持つIAM RoleにDatabricksのTrust Policyを設定し、Unity CatalogのStorage Credentialとして登録する
  2. S3のアクセスキーをDatabricksのSecret Scopeに格納し、ノートブックからdbutils.secrets.getで取得する
  3. クラスタにInstance Profileを割り当て、IAM Roleの権限でS3にアクセスする
  4. S3バケットのバケットポリシーでパブリックアクセスを許可し、http経由でアクセスする

正解: A

WIF(IAM Role + Trust Policy)をUnity CatalogのStorage Credentialとして登録する方式が、シークレットを保持しない鍵レス認証の要件を満たします。アクセスキーをSecret Scopeに格納する方式は「静的キーの使用禁止」に違反します。Instance Profileは非推奨であり細粒度制御が困難です。パブリックアクセスは論外でセキュリティ上許容されません。

よくある質問

Workload Identity FederationとOAuth M2Mの違いは何ですか?

OAuth M2MはDatabricks自身が発行するClient IDとClient Secretを使ってDatabricksのトークンエンドポイントで認証する仕組みです。Workload Identity Federation(WIF)はクラウドプロバイダーの一時的な認証情報(AWS IAM Role、Azure Managed Identity、GCP WIF Token)を使ってDatabricksに認証する仕組みで、Databricks側にシークレット(Client Secret)を保持する必要がありません。OAuth M2Mが「Databricksのシークレットで認証」するのに対し、WIFは「クラウドのIDで認証」する点が根本的に異なります。

Instance Profileは今後使えなくなりますか?

AWS環境でクラスタにクラウドリソースへのアクセス権限を与えるInstance Profileは、引き続きサポートされますが非推奨化の方向です。Databricksは2024年以降、Instance Profileの代わりにUnity CatalogのStorage CredentialとExternal Locationを使った権限管理を推奨しています。Storage CredentialはWIFベースのIAM Roleを使用し、Instance Profileよりも細かい粒度でアクセス制御が可能です。新規構成ではInstance Profileを避け、Unity Catalog経由のアクセス制御に移行してください。

WIFはDatabricks認定試験でどう出題されますか?

Data Engineer Professional試験のセキュリティドメインで出題されます。主な出題パターンは「シークレットを保持せずにクラウドリソースにアクセスする方法」「Instance Profileの代替として推奨される方式」「マルチクラウド環境での認証設計」です。3クラウドそれぞれの具体的な設定手順を問う問題は少なく、WIFの概念(鍵レス認証)とInstance Profileとの違いの理解が問われます。

この記事で学んだ内容を問題で確認しましょう

16,000問以上の問題で実力チェック

無料で問題を解いてみる
この記事の著者

NicheeLab編集部

データエンジニアリング・クラウド資格の専門家。Databricks・Snowflake等の認定資格を保有し、実務経験に基づいた問題作成・解説を行っています。NicheeLab運営。


関連記事
Databricks

Databricks資格一覧|全7試験・難易度・勉強法

Databricks認定資格全7試験の一覧・難易度・出題範囲・合格ラインを徹底解説。2026年最新版の公式試験ガイドに準...

Databricks

Databricks試験の難易度ランキング|全7資格を徹底比較

Databricks認定全7試験の難易度をランキング形式で徹底比較。合格率・学習時間・出題傾向から難易度を分析。...

Databricks

Databricks資格の勉強方法|最短合格ルートと学習時間の目安

Databricks認定資格に最短で合格するための勉強方法を完全ガイド。公式リソース・問題集・学習スケジュールを徹底解説...

Databricks

Databricks Data Engineer Associate完全解説|出題範囲・問題例・合格戦略

Databricks Certified Data Engineer Associate試験を徹底解説。5つの出題ドメイ...

Databricks

Databricks Data Engineer Professional完全解説|上級試験の攻略法

Databricks Certified Data Engineer Professional試験を徹底解説。10の出題...

Databricksの記事一覧 (105件)
© 2026 NicheeLab All rights reserved.