サービス資格情報を作成する

この記事では、Azure Databricks から外部クラウド サービスへのアクセスを制御できるサービス資格情報オブジェクトを Unity カタログに作成する方法について説明します。 Unity カタログのサービス資格情報は、そのようなサービスへのアクセスを許可する長期的なクラウド資格情報をカプセル化します。

サービス資格情報は、Unity カタログで管理されるストレージの場所または外部ストレージの場所として使用されるクラウド ストレージへのアクセスを管理するためのものではありません。 このようなユース ケースでは、ストレージ資格情報を使用します。 Unity カタログを使用したクラウド オブジェクト ストレージへの接続を参照してください。

Azure サービスにアクセスするためのサービス資格情報を作成するには、Azure マネージド ID を参照する Azure Databricks アクセス コネクタを作成し、サービスまたはサービスに対するアクセス許可を割り当てます。 次に、サービス資格情報定義でそのアクセス コネクタを参照します。

Requirements

サービス資格情報を作成する前に、次の要件を満たす必要があります。

Azure Databricks で:

  • Unity Catalog に対して有効になっている Azure Databricks ワークスペース。

  • ワークスペースにアタッチされている Unity Catalog メタストアの CREATE SERVICE CREDENTIAL 権限。 アカウント管理者とメタストア管理者には、既定でこの特権があります。 ワークスペースが Unity カタログに対して自動的に有効になっている場合、ワークスペース管理者にもこの権限があります。

    注

    マネージド ID を使用するサービス資格情報を作成するには、サービス プリンシパルにアカウント管理者ロールが必要です。 CREATE SERVICE CREDENTIAL をサービス プリンシパルに委任することはできません。 これは、Azure Databricks のサービス プリンシパルと Microsoft Entra ID のサービス プリンシパルの両方に当てはまります。

Azure テナントで:

  • データにアクセスするワークスペースと同じリージョン内の Azure サービス。
  • Azure リソース グループの共同作成者ロールまたは所有者ロール。
  • サービス アカウント上の所有者またはユーザー アクセス管理者の Azure RBAC ロール。

マネージド ID を使用してサービス資格情報を作成する

サービス アカウントへのアクセスを承認する ID を構成するには、 Azure マネージド ID を Azure Databricks アカウントに接続する Azure Databricks アクセス コネクタを使用します。 アクセス コネクタが既に定義されている場合は、次の手順の手順 2 に進むことができます。

注

マネージド ID の代わりにサービス プリンシパルを使用できますが、マネージド ID を強くお勧めします。 マネージド ID には、サービス プリンシパルを使用できないネットワーク ルールによって保護されたサービス アカウントに Unity カタログがアクセスできるという利点があり、シークレットを管理およびローテーションする必要がなくなります。 サービス プリンシパルを使用する必要がある場合は、「 サービス プリンシパル (レガシ)を使用して Unity カタログマネージド ストレージを作成する」を参照してください。

  1. Azure portal で、Azure Databricks アクセス コネクタを作成し、「 Unity カタログのマネージド ID を構成する」の手順に従って、アクセスするサービスに対するアクセス許可を割り当てます。

    Azure Databricks アクセス コネクタはファースト パーティーの Azure リソースであり、マネージド ID を Azure Databricks アカウントに接続できます。 サービス資格情報を追加するには、Azure のアクセス コネクタ リソースに対する Contributor 以上のロールが必要です。

    手順 2: ストレージ アカウントへのアクセス権をマネージド ID に付与するの手順に従う代わりに、マネージド ID にサービス アカウントへのアクセス権を付与します。

    アクセス コネクタのリソース ID を書き留めます。

  2. 要件を満たすユーザーとしてAzure Databricksワークスペースにログインしてください。

  3. [ データ] アイコンをクリックします。カタログ。

  4. [ 外部データ > ] ボタンをクリックし、[ 資格情報 ] タブに移動し、[資格情報の 作成] を選択します。

  5. サービス資格情報を選択。

  6. 資格情報名、省略可能なコメント、およびアクセス コネクタのリソース ID を次の形式で入力します。

    /subscriptions/<subscription-id>/resourceGroups/<resource-group>/providers/Microsoft.Databricks/accessConnectors/<connector-name>
    
  7. (省略可能) ユーザー割り当てマネージド ID を使用してアクセス コネクタを作成した場合は、マネージド ID のリソース ID を [User-assigned managed identity ID] (ユーザー割り当てマネージド ID の ID) フィールドに次に形式で入力します。

    /subscriptions/<subscription-id>/resourceGroups/<resource-group-name>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<managed-identity-name>
    
  8. Create をクリックしてください。

  9. 作成された サービス資格情報 ダイアログボックスで、External ID をコピーします。

    また、サービス資格情報の詳細ページで外部 ID をいつでも表示することもできます。

  10. [Done] をクリックします。

(省略可能)特定のワークスペースにサービス資格情報を割り当てる

既定では、サービス資格情報にはメタストア内のすべてのワークスペースからアクセスできます。 つまり、ユーザーにそのサービス資格情報に対する特権が付与されている場合、メタストアにアタッチされている任意のワークスペースからその特権を実行できます。 ワークスペースを使用してユーザー データ アクセスを分離する場合は、特定のワークスペースからのみサービス資格情報へのアクセスを許可できます。 この機能は、ワークスペース バインドまたはサービス資格情報の分離と呼ばれます。

サービス資格情報を特定のワークスペースにバインドする一般的なユース ケースは、クラウド管理者が運用クラウド アカウントの資格情報を使用してサービス資格情報を構成し、Azure Databricks ユーザーがこの資格情報を使用して運用ワークスペース内の外部クラウド サービスにのみアクセスできるようにするシナリオです。

ワークスペース バインドの詳細については、「特定の ワークスペースにストレージ資格情報を割り当てる 」および 「ワークスペース カタログ バインド」を参照してください。

サービス資格情報を 1 つ以上のワークスペースにバインドする

特定のワークスペースにサービス資格情報を割り当てるには、カタログ エクスプローラーを使用します。

必要なアクセス許可: Metastore 管理者またはサービス資格情報の所有者。

注

Metastore 管理者は、カタログ エクスプローラーを使用してメタストア内のすべてのサービス資格情報を表示できます。サービス資格情報の所有者は、サービス資格情報が現在のワークスペースに割り当てられているかどうかに関係なく、メタストアで所有しているすべてのサービス資格情報を表示できます。 ワークスペースに割り当てられないサービス資格情報は淡色表示されます。

  1. メタストアにリンクされているワークスペースにログインします。

  2. サイドバーで、[データ] アイコンをクリック します。カタログ。

  3. [ 外部データ > ] ボタンをクリックし、[ 資格情報 ] タブに移動します。

  4. サービス資格情報を選択し、 Workspaces タブに移動します。

  5. [ワークスペース] タブ で、[All workspaces have access] (すべてのワークスペースにアクセス権がある) チェック ボックスをオフにします。

    サービス資格情報が既に 1 つ以上のワークスペースにバインドされている場合、このチェック ボックスは既にオフになっています。

  6. [Assign to workspaces] (ワークスペースに割り当てる) をクリックし、割り当てるワークスペースを入力または検索します。

アクセスを取り消すには、[ワークスペース] タブに移動し、ワークスペースを選択して [失効] をクリックします。 すべてのワークスペースからのアクセスを許可するには、[All workspaces have access] (すべてのワークスペースにアクセス権がある) チェック ボックスをオンにします。

次のステップ

制限事項

次の制限事項が適用されます。

  • Databricks Runtime バージョン 16.1 以降では、Python のみがサポートされています。
  • SQL ウェアハウスでは、バッチ Unity カタログ Python UDF のサービス資格情報のみがサポートされます。
  • サービス資格情報に対して実行されるアクションの監査イベントの一部は、 system.access.audit テーブルに表示されません。 サービス資格情報を作成、削除、更新、読み取り、一覧表示、または使用したユーザーに関する監査情報を利用できます。 「監査ログシステムテーブル参照を参照してください。」
  • サービス資格情報のプレビュー中、INFORMATION_SCHEMA.STORAGE_CREDENTIALS (非推奨) にはストレージ資格情報とサービス資格情報の両方が表示され、INFORMATION_SCHEMA.STORAGE_CREDENTIAL_PRIVILEGES (非推奨) にはストレージ資格情報とサービス資格情報の両方に適用される特権が表示されました。 この点は変更されました。 代わりに、ストレージ資格情報とサービス資格情報の両方に INFORMATION_SCHEMA.CREDENTIALS と INFORMATION_SCHEMA.CREDENTIAL_PRIVILEGES を使用する必要があります。