1
0

More than 1 year has passed since last update.

Azure DatabricksでUnity Catalogの資産管理にサービスプリンシパルを活用する

Last updated at Posted at 2023-06-08

こちらの続編です。

サービスプリンシパルはGUIアクセスできないアイデンティティですが、Databricksに対する操作の大部分をカバーできます。

これは、

  • インフラ管理者がDatabricksの資産の設定を行う
  • エンドユーザーがその資産を活用する
  • ただし、インフラ管理者は資産の設定のみを許可し、資産のアクセスはさせたくない

と言う要件で有効です。GUIでのアクセスができないので、アクセスすべきではない資産にインフラ管理者がアクセスしてしまうリスクを軽減できます。

ここでは、Unity Catalogの外部ロケーションの作成と権限付与をサービスプリンシパルで行うケースを説明します。

メタストアの設定

外部ロケーションはメタストア管理下にあるので、サービスプリンシパル自体、メタストア管理者である必要があります。

  1. メタストアのデフォルトの管理者はアカウント管理者ですが、これを専用のグループに変更します。
  2. アカウントコンソールでmetastore adminsというグループを作成し、そこに以前作成したサービスプリンシパルを追加します。必要に応じて他のアイデンティティを追加します。
    Screenshot 2023-06-08 at 10.08.53.png
  3. アカウントコンソールのDataにアクセスし、メタストアのConfigurationMetastore AdminEditをクリックします。
  4. 作成したグループを選択してSaveをクリックします。
    Screenshot 2023-06-08 at 10.09.35.png

REST APIによる外部ロケーションの作成

APIリファレンスはこちら。ストレージ資格情報がない場合には別途作成ください。

  • エンドポイント: https://<Databricksワークスペースのホスト名>/api/2.1/unity-catalog/external-locations
  • メソッド: POST
  • Authorization:
    • Type: Bearer
    • Token: サービスプリンシパルのトークン
  • Body: raw/json
{
    "name": "<外部ロケーション名>",
    "skip_validation": true,
    "url": "<ADLSのパス>",
    "read_only": true,
    "credential_name": "<ストレージ資格情報の名前>",
    "comment": "created by service principal"
}

これで、外部ロケーションが作成されます。作成者のサービスプリンシパルはGUIにアクセスできないので、外部ロケーション経由でファイルを参照するリスクが大きく軽減されます。
Screenshot 2023-06-08 at 10.16.11.png

REST APIによる外部ロケーションの設定

これだけでは、アクセス権が設定されていないので、これもREST API経由で権限設定を行います。

こちらのAPIを使用します。

  • エンドポイント: https://<Databricksワークスペースのホスト名>/api/2.1/unity-catalog/permissions/{securable_type}/{full_name}
    • securable_type: EXTERNAL_LOCATION
    • full_name: 上で作成した外部ロケーション名
  • メソッド: PATCH
  • Authorization:
    • Type: Bearer
    • Token: サービスプリンシパルのトークン
  • Body: raw/json
{
  "changes": [
    {
      "principal": "<権限付与対象のアイデンティティ>",
      "add": [
        "<追加する権限>"
      ]
    }
  ]
}

こちらの例では、ALL_PRIVILEGESを付与しています。
Screenshot 2023-06-08 at 10.21.41.png

これによって、権限付与された側はData Explorer上でも外部ロケーションにアクセスできるようになります。
Screenshot 2023-06-08 at 10.22.48.png

繰り返しになりますが、サービスプリンシパルのクライアントシークレットトークンには有効期限があることに注意してください。

Databricksクイックスタートガイド

Databricksクイックスタートガイド

Databricks無料トライアル

Databricks無料トライアル

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0