クラウド環境で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ベースの一時的な認証情報で認証する」ことで、 これらのリスクを構造的に排除します。
| 観点 | AWS | Azure | GCP |
|---|---|---|---|
| WIFの仕組み | IAM Role + Trust Policy(OIDC Federation) | Managed Identity / Federated Credential | Workload Identity Federation(OIDC/SAML) |
| Databricksでの適用先 | Unity Catalog Storage Credential | Unity Catalog Storage Credential / Access Connector | Unity Catalog Storage Credential |
| シークレット管理 | 不要(STS一時トークンを自動取得) | 不要(Azure ADトークンを自動取得) | 不要(GCPトークンを自動取得) |
| 従来方式(非推奨) | Instance Profile | ストレージアカウントキー | サービスアカウントキー |
| 粒度 | Storage Credential単位でIAM Roleを指定 | Access Connector単位でManaged Identityを指定 | Storage Credential単位でサービスアカウントを指定 |
AWS環境では、IAM RoleにDatabricksのOIDCプロバイダーを信頼するTrust Policyを設定します。
{
"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環境では、Access ConnectorとManaged Identityを使用します。
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環境では、Workload Identity PoolとProviderを設定してDatabricksからのトークン交換を許可します。
AWS環境で長年使われてきたInstance Profileは、以下の理由で非推奨化が進んでいます。
Unity CatalogのStorage Credential + External Locationによる方式では、 データアクセスの権限がUnity Catalogの権限体系に統合され、 ユーザー/グループ単位の細粒度制御が可能になります。
WIFはUnity Catalogの以下の概念と密接に関連しています。
| Unity Catalog概念 | WIFとの関係 |
|---|---|
| Storage Credential | クラウドストレージへのアクセスに使うIAM Role / Managed Identity / SAをラップするオブジェクト |
| External Location | Storage Credentialと紐づけてクラウドストレージのパスを登録するオブジェクト |
| GRANT / REVOKE | External Locationに対してユーザー/グループ単位でREAD_FILES / WRITE_FILESを付与 |
この構成により、クラウドストレージのアクセス制御がUnity Catalogの権限体系に統合され、 Instance Profileのような「クラスタレベルの全員共有権限」を排除できます。
Security & Governance
問題 1
あるAWS環境のDatabricksワークスペースで、データエンジニアがS3バケット内のParquetファイルにアクセスするExternal Tableを作成したい。セキュリティチームは「静的なアクセスキーやシークレットの使用を禁止し、鍵レスの認証方式を使うこと」と要件を出している。適切な構成はどれか。
正解: 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との違いの理解が問われます。
NicheeLab編集部
データエンジニアリング・クラウド資格の専門家。Databricks・Snowflake等の認定資格を保有し、実務経験に基づいた問題作成・解説を行っています。NicheeLab運営。
Databricks資格一覧|全7試験・難易度・勉強法
Databricks認定資格全7試験の一覧・難易度・出題範囲・合格ラインを徹底解説。2026年最新版の公式試験ガイドに準...
Databricks試験の難易度ランキング|全7資格を徹底比較
Databricks認定全7試験の難易度をランキング形式で徹底比較。合格率・学習時間・出題傾向から難易度を分析。...
Databricks資格の勉強方法|最短合格ルートと学習時間の目安
Databricks認定資格に最短で合格するための勉強方法を完全ガイド。公式リソース・問題集・学習スケジュールを徹底解説...
Databricks Data Engineer Associate完全解説|出題範囲・問題例・合格戦略
Databricks Certified Data Engineer Associate試験を徹底解説。5つの出題ドメイ...
Databricks Data Engineer Professional完全解説|上級試験の攻略法
Databricks Certified Data Engineer Professional試験を徹底解説。10の出題...