サービス資格情報を使用して外部クラウド サービスへのアクセスを管理する
この記事では、Unity Catalog Databricksから外部クラウド サービスへのアクセスを制御できるサービス資格情報オブジェクトを で作成する方法について説明します。Unity Catalog のサービス資格情報は、そのようなサービスへのアクセスを許可する長期的なクラウド資格情報をカプセル化します。
サービスの資格情報は、Unity Catalog の管理されたストレージの場所または外部ストレージの場所として使用されるクラウド ストレージへのアクセスを管理するためのものではありません。 これらのユースケースでは、ストレージ認証情報を使用します。 「Unity Catalog を使用してクラウド ストレージへのアクセスを管理する」を参照してください。
Google Cloud サービスにアクセスするためのサービス認証情報を作成するには:
- サービス資格情報オブジェクトは Databricks で作成します。
- Databricks は Google Cloud サービス アカウントを生成します。
- Google Cloud では、そのサービス アカウントに、サービスへのアクセスに必要な GCP ロールを付与します。
始める前に
サービス資格情報を作成する前に、次の要件を満たす必要があります。
Databricks:
- Unity Catalogが有効化されたDatabricksワークスペース
CREATE SERVICE CREDENTIAL
ワークスペースにアタッチされた Unity Catalog メタストアに対する特権。 アカウント admins と metastore admins は、デフォルトによってこの特権を持っています。 ワークスペースで Unity Catalog が自動的に有効になっている場合、ワークスペース管理者にもこの特権があります。
Google Cloudアカウントの場合
- データにアクセスするワークスペースと同じリージョンにある Google Cloud サービス。
- そのサービスのアクセス ポリシーを変更する権限。
Catalog Explorer を使用して Google Cloud サービス アカウントを生成する
-
Unity Catalogが有効なDatabricksワークスペースに、メタストアに対する
CREATE SERVICE CREDENTIAL
権限を持つユーザーとしてログインします。この権限はメタストア管理者ロールとアカウント管理者ロールの両方に含まれています。
-
サイドバーで、「
カタログ 」をクリックします。
-
[クイック アクセス ] ページで、[ 外部データ] > ボタンをクリックし、[ 資格情報 ] タブに移動して、[ 資格情報の作成 ] を選択します。
-
[サービス資格情報 ] を選択します。
-
資格情報名と オプションのコメントを入力します。
-
作成 をクリックします。
Databricks は、サービス資格情報を作成し、Google Cloud サービス アカウントを生成します。
-
[サービス資格情報が作成されました ] ダイアログで、Eメール アドレスの形式であるサービス アカウント ID をメモし、[ 完了 ] をクリックします。
-
(オプション)ストレージ資格情報を特定のワークスペースにバインドします。
デフォルトにより、特権ユーザーは、メタストアに接続されている任意のワークスペースでストレージ資格情報を使用できます。 特定のワークスペースからのアクセスのみを許可する場合は、 ワークスペース タブに移動してワークスペースを割り当てます。 「(オプション) 特定のワークスペースにサービス資格情報を割り当てる」を参照してください。
Google Cloud サービスへのアクセス権をサービス アカウントに付与する
-
Google Cloud コンソールに移動し、Databricks ワークスペースからアクセスするサービスを開きます。
-
サービスのアクセス許可設定で、Databricks で生成されたサービス アカウントに、サービスへのアクセスに必要なロールを付与します。
これらのロールは、サービスによって異なります。 ガイダンスについては、Google Cloud サービスのドキュメントをご覧ください。
サービスアカウントのEメールアドレスを主識別子として使用します。
(オプション)特定のワークスペースにサービス資格情報を割り当てる
デフォルトでは、サービス資格情報には、メタストア内のすべてのワークスペースからアクセスできます。 つまり、ユーザーにそのサービス資格情報に対する特権が付与されている場合、メタストアに接続されている任意のワークスペースからその特権を行使できます。 ワークスペースを使用してユーザー データ アクセスを分離する場合は、特定のワークスペースからのみサービス資格情報へのアクセスを許可することができます。 この機能は、ワークスペース バインドまたはサービス資格情報の分離と呼ばれます。
サービス認証情報を特定のワークスペースにバインドする一般的なユースケースは、クラウド管理者が本番運用 cloud アカウント認証情報を使用してサービス認証情報を設定し、 Databricks ユーザーがこの認証情報を使用して本番運用 ワークスペース内の外部クラウド サービスにのみアクセスするようにするシナリオです。
ワークスペースのバインドの詳細については、「 (オプション) ストレージ資格情報を特定のワークスペースに割り当てる 」および「 カタログ アクセスを特定のワークスペースに制限する」を参照してください。
サービス資格情報を 1 つ以上のワークスペースにバインドする
特定のワークスペースにサービス資格情報を割り当てるには、カタログ エクスプローラーを使用します。
必要なアクセス許可 : メタストア管理者またはサービス資格情報の所有者。
メタストア管理者は、カタログ エクスプローラーを使用してメタストア内のすべてのサービス資格情報を表示でき、サービス資格情報の所有者は、サービス資格情報が現在のワークスペースに割り当てられているかどうかに関係なく、メタストアで所有するすべてのサービス資格情報を表示できます。 ワークスペースに割り当てられていないサービス資格情報はグレー表示されます。
-
メタストアにリンクされているワークスペースにログインします。
-
サイドバーで、「
カタログ 」をクリックします。
-
[クイック アクセス ] ページで、[ 外部データ> ] ボタンをクリックし、[ 資格情報 ] タブに移動します。
-
サービス資格情報を選択し、[ ワークスペース] タブに移動します。
-
[ ワークスペース ] タブで、[ すべてのワークスペースがアクセス可能] チェックボックスをオフにします。
サービス資格情報が既に 1 つ以上のワークスペースにバインドされている場合、このチェック ボックスは既にオフになっています。
-
[ ワークスペースに割り当てる ] をクリックし、割り当てるワークスペースを入力または検索します。
アクセス権を取り消すには、[ ワークスペース ] タブに移動し、ワークスペースを選択して、[ 取り消し ] をクリックします。すべてのワークスペースからのアクセスを許可するには、[ すべてのワークスペースがアクセス可能 ] チェックボックスをオンにします。
次のステップ
- サービス資格情報を表示、更新、削除、および他のユーザーにサービス資格情報を使用するアクセス許可を付与する方法について説明します。 マネージドサービスの認証情報を参照してください。
- コードでサービス資格情報を使用する方法について説明します。 「Unity Catalog サービスの資格情報を使用して外部クラウド サービスに接続する」を参照してください。
制限
次の制限が適用されます:
- サーバレス コンピュートが Databricks Runtime 16.2 で更新されるまでは、 Python.
- SQLウェアハウスはサポートされていません。
- サービス資格情報に対して実行されたアクションの一部の監査イベントは、
system.access.audit
テーブルに表示されません。 サービス資格情報を作成、削除、更新、読み取り、一覧表示、または使用したユーザーに関する監査情報が利用可能になります。 Audit log システムテーブルリファレンスを参照してください。 - サービス資格情報のプレビュー期間中、
INFORMATION_SCHEMA.STORAGE_CREDENTIALS
(非推奨) にはストレージ資格情報とサービス資格情報の両方が表示され、INFORMATION_SCHEMA.STORAGE_CREDENTIAL_PRIVILEGES
(非推奨) にはストレージ資格情報とサービス資格情報の両方に適用される特権が表示されました。 これはもはや当てはまりません。 代わりに、ストレージとサービスの両方の資格情報にINFORMATION_SCHEMA.CREDENTIALS
とINFORMATION_SCHEMA.CREDENTIAL_PRIVILEGES
を使用する必要があります。