サービス資格情報を使用して外部クラウド サービスへのアクセスを管理する
重要
この機能はパブリック プレビュー段階にあります。
この記事では、外部クラウド サービスへのアクセスを制御できるサービス資格情報オブジェクトを Unity カタログに作成する方法について説明します。 Unity Catalog のサービス資格情報オブジェクトは、ユーザーが Azure Databricks から接続する必要がある外部クラウド サービスへのアクセスを提供する長期的なクラウド資格情報をカプセル化します。
サービス資格情報は、Unity カタログで管理されるストレージの場所または外部ストレージの場所として使用されるクラウド ストレージへのアクセスを管理するためのものではありません。 このようなユース ケースでは、ストレージ資格情報を使用します。 Unity カタログを使用したクラウド ストレージへの管理アクセスを参照してください。
Azure サービスにアクセスするためのサービス資格情報を作成するには、Azure マネージド ID を参照する Azure Databricks アクセス コネクタを作成し、サービスまたはサービスに対するアクセス許可を割り当てます。 次に、サービス資格情報定義でそのアクセス コネクタを参照します。
始める前に
サービス資格情報を作成する前に、次の要件を満たす必要があります。
Azure Databricks で:
Unity Catalog に対して有効になっている Azure Databricks ワークスペース。
ワークスペースにアタッチされている Unity Catalog メタストアの
CREATE SERVICE CREDENTIAL
権限。 アカウント管理者とメタストア管理者には、既定でこの特権があります。 ワークスペースが Unity カタログに対して自動的に有効になっている場合、ワークスペース管理者にもこの権限があります。Note
マネージド ID を使用するサービス資格情報を作成するには、サービス プリンシパルにアカウント管理者ロールが必要です。
CREATE SERVICE CREDENTIAL
をサービス プリンシパルに委任することはできません。 これは、Azure Databricks のサービス プリンシパルと Microsoft Entra ID のサービス プリンシパルの両方に当てはまります。
Azure テナントで:
- データにアクセスするワークスペースと同じリージョン内の Azure サービス。
- Azure リソース グループの共同作成者ロールまたは所有者ロール。
- サービス アカウントの所有者またはユーザー アクセス管理者の Azure RBAC ロール。
マネージド ID を使用してサービス資格情報を作成する
サービス アカウントへのアクセスを承認する ID を構成するには、 Azure マネージド ID を Azure Databricks アカウントに接続する Azure Databricks アクセス コネクタを使用します。 アクセス コネクタが既に定義されている場合は、次の手順の手順 2 に進むことができます。
Note
マネージド ID の代わりにサービス プリンシパルを使用できますが、マネージド ID を強くお勧めします。 マネージド ID には、サービス プリンシパルを使用できないネットワーク ルールによって保護されたサービス アカウントに Unity カタログがアクセスできるという利点があり、シークレットを管理およびローテーションする必要がなくなります。 サービス プリンシパルを使用する必要がある場合は、「 サービス プリンシパル (レガシ)を使用して Unity カタログマネージド ストレージを作成する」を参照してください。
Azure portal で、Azure Databricks アクセス コネクタを作成し、「 Unity カタログのマネージド ID を構成する」の手順に従って、アクセスするサービスに対するアクセス許可を割り当てます。
Azure Databricks アクセス コネクタはファースト パーティーの Azure リソースであり、マネージド ID を Azure Databricks アカウントに接続できます。 サービス資格情報を追加するには、Azure のアクセス コネクタ リソースに対する Contributor 以上のロールが必要です。
手順 2: ストレージ アカウントへのアクセス権をマネージド ID に付与するの手順に従う代わりに、マネージド ID にサービス アカウントへのアクセス権を付与します。
アクセス コネクタのリソース ID を書き留めておきます。
始める前に に記載されている要件を満たすユーザーとして、Azure Databricks ワークスペースにログインします。
[カタログ] をクリックします。
[ Quick アクセス ] ページで、[ External data > ] ボタンをクリックし、[ Credentials タブに移動して、資格情報の作成 選択します。
[サービス資格情報 選択。
Credential 名、省略可能なコメント、およびアクセス コネクタのリソース ID を次の形式で入力します。
/subscriptions/<subscription-id>/resourceGroups/<resource-group>/providers/Microsoft.Databricks/accessConnectors/<connector-name>
(省略可能) ユーザー割り当てマネージド ID を使用してアクセス コネクタを作成した場合は、マネージド ID のリソース ID を [User-assigned managed identity ID] (ユーザー割り当てマネージド ID の ID) フィールドに次に形式で入力します。
/subscriptions/<subscription-id>/resourceGroups/<resource-group-name>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<managed-identity-name>
Create をクリックしてください。
作成された Service 資格情報 ダイアログで、 External ID をコピーします。
また、サービス資格情報の詳細ページで外部 ID をいつでも表示することもできます。
[Done] をクリックします。
(省略可能)特定のワークスペースにサービス資格情報を割り当てる
重要
この機能はパブリック プレビュー段階にあります。
既定では、サービス資格情報にはメタストア内のすべてのワークスペースからアクセスできます。 つまり、ユーザーにそのサービス資格情報に対する特権が付与されている場合、メタストアにアタッチされている任意のワークスペースからその特権を実行できます。 ワークスペースを使用してユーザー データ アクセスを分離する場合は、特定のワークスペースからのみサービス資格情報へのアクセスを許可できます。 この機能は、ワークスペース バインドまたはサービス資格情報の分離と呼ばれます。
サービス資格情報を特定のワークスペースにバインドする一般的なユース ケースは、クラウド管理者が運用クラウド アカウントの資格情報を使用してサービス資格情報を構成し、Azure Databricks ユーザーがこの資格情報を使用して運用ワークスペース内の外部クラウド サービスにのみアクセスできるようにするシナリオです。
ワークスペースバインドの詳細については、「 (省略可能)特定のワークスペースにストレージ資格情報を割り当てる 特定のワークスペースへのLimitカタログアクセス を参照してください。
サービス資格情報を 1 つ以上のワークスペースにバインドする
特定のワークスペースにサービス資格情報を割り当てるには、カタログ エクスプローラーを使用します。
必要なアクセス許可: Metastore 管理者またはサービス資格情報の所有者。
Note
Metastore 管理者は、カタログ エクスプローラーを使用してメタストア内のすべてのサービス資格情報を表示できます。サービス資格情報の所有者は、サービス資格情報が現在のワークスペースに割り当てられているかどうかに関係なく、メタストアで所有しているすべてのサービス資格情報を表示できます。 ワークスペースに割り当てられないサービス資格情報は淡色表示されます。
メタストアにリンクされているワークスペースにログインします。
サイド バーで、 [カタログ] をクリックします。
[ Quick アクセス ] ページで、[ External data > ] ボタンをクリックし、[ Credentials ] タブに移動します。
サービス資格情報を選択し、 Workspaces タブに移動します。
[ワークスペース] タブ で、[All workspaces have access] (すべてのワークスペースにアクセス権がある) チェック ボックスをオフにします。
サービス資格情報が既に 1 つ以上のワークスペースにバインドされている場合、このチェック ボックスは既にオフになっています。
[Assign to workspaces] (ワークスペースに割り当てる) をクリックし、割り当てるワークスペースを入力または検索します。
アクセスを取り消すには、[ワークスペース] タブに移動し、ワークスペースを選択して [失効] をクリックします。 すべてのワークスペースからのアクセスを許可するには、[All workspaces have access] (すべてのワークスペースにアクセス権がある) チェック ボックスをオンにします。
次のステップ
- サービス資格情報を使用するためのアクセス許可を他のユーザーに表示、更新、削除、および付与する方法について説明します。 Manage サービスの資格情報を参照してください。
- コードでサービス資格情報を使用する方法について説明します。 「 Unity カタログ サービスの資格情報を使用して外部クラウド サービスに接続するを参照してください。
制限事項
次の制限事項が適用されます。
- Databricks Runtime 15.4 LTS には Python サポートのみが含まれています。
- SQL ウェアハウスはサポートされていません。
- サービス資格情報に対して実行されるアクションの監査イベントの一部は、
system.access.audit
テーブルに表示されません。 サービス資格情報を作成、削除、更新、読み取り、一覧表示、または使用したユーザーに関する監査情報を利用できます。 「 Audit ログ システム テーブルリファレンスを参照してください。 - サービス資格情報のプレビュー中、
INFORMATION_SCHEMA.STORAGE_CREDENTIALS
(非推奨) にはストレージ資格情報とサービス資格情報の両方が表示され、INFORMATION_SCHEMA.STORAGE_CREDENTIAL_PRIVILEGES
(非推奨) にはストレージ資格情報とサービス資格情報の両方に適用される特権が表示されます。 これは修正されるプレビュー動作が正しくなく、続行するために依存しないでください。 代わりに、ストレージ資格情報とサービス資格情報の両方にINFORMATION_SCHEMA.CREDENTIALS
とINFORMATION_SCHEMA.CREDENTIAL_PRIVILEGES
を使用する必要があります。