Dataikuでのユーザー管理方法

1.はじめに

Dataikuでは多様な役割を持った人達とコラボレーションしながら機械学習やデータ分析をすることが可能です。

しかし、大量にユーザを追加する必要が出てくると一人一人にユーザーを割り当てるのは大変な作業になりますし、それぞれにどのような権限を持たせるかも考慮する必要があります。

そこで今回はJupyter Notebookを用いたユーザー追加と権限設定方法を紹介します。

2.権限設定の種類

Dataikuでユーザーに与えられる権限はプロジェクトの作成やpythonのコード環境の作成などがあります。

権限の種類についてはこちらが参考になると思います。

Main project permissions

https://doc.dataiku.com/dss/latest/security/permissions.html

権限の設定はグループ単位で設定されます。

AdministrationのSecurityを選択します。画面左の項目のGroupsを選択します。

NEW GROUPから作りたいグループを作成することができます。

グループは以下のように作成できます。今回はグループ名をteamAとしておきます。

Global permissionsでAdministratorにチェックすると管理者権限が付与され、すべての権限が付与されます。それ以外はすべて手動で決めていく形になります。以下の画像ではプロジェクトを作成する権限が付与されていないので、このグループに入っているユーザーはプロジェクトを作成することはできません。

3.Jupyter Notebookでのユーザー追加

冒頭でもお話したように、ユーザーを一人二人追加する程度であれば手動で簡単にできるのですが、膨大な数になってくると大変な作業になります。

今回はDataiku API とJupyter Notebookを使った方法を紹介します。

まずユーザー管理用のプロジェクトを作ります。

プロジェクトを作成したらNotebooksを選択します

Notebooksを選択したらユーザー追加用のJupyter notebookを作成します。

参考

Users and groups

https://developer.dataiku.com/latest/concepts-and-examples/users-groups.html?_gl=1*1kgcia*_ga*ODM3ODUxNTQ3LjE3MTIwMjE1Nzc.*_ga_B3YXRYMY48*MTcxNTU1ODE5OS41MS4xLjE3MTU1NTgyMzAuMjkuMC4w#creating-a-user

notebookを作成したら以下のようなコードを作成してください

import dataiku

# Dataiku APIクライアントの初期化
client = dataiku.api_client()

# ユーザー情報のリスト
local_users = [
    # ('login', 'display_name', 'email', 'password', 'group')
    ('a', 'a', 'a@example.com', 'password', 'teamA'),
    ('b', 'b', 'b@example.com', 'password', 'teamA'),
    ('c', 'c', 'c@example.com', 'password', 'teamA'),
    ('d', 'd', 'd@example.com', 'password', 'teamA'),
    ('e', 'e', 'e@example.com', 'password', 'teamA'),
    ('f', 'f', 'f@example.com', 'password', 'teamA')
]

# 各ユーザーの作成
for user in local_users:
    login, display_name, email, password, group = user
    try:
        print(f'Creating user: {login}')
        
        # ユーザー作成
        new_user = client.create_user(
            login=login,
            password=password,
            display_name=display_name,
            source_type='LOCAL',
            groups=[group]
        )
        
        # 設定の取得と更新
        settings = new_user.get_settings()
        raw_settings = settings.get_raw()
        raw_settings['email'] = email
        raw_settings['userProfile'] = 'DESIGNER'
        settings.save()
        
        print(f'User {login} created successfully!')
    except Exception as e:
        print(f'Error creating user {login}: {e}')

これで複数ユーザーの追加が一瞬で行うことができます。

今回のコードではまずDataikuのライブラリをインポートし、Dataiku APIクライアントの設定を初期化します。

そのあとユーザの取得リストを作成します。ここでユーザー名、Dataiku上で表示される名前、メールアドレス、パスワード、事前に作成したグループを入力します。

作成したリストをもとにユーザーを追加します。

Dataikuでは様々なロールの人たちがコラボレーションしながらプロジェクトを進めていくことができます。だからこそロールごとに権限設定もしていくことも重要になると思います。

ユーザーのリストもドキュメントなどで管理しておけば、コピペするだけで簡単にユーザーを追加更新できます。

Dataiku内で権限設定用のプロジェクトを作りnotebookを利用することによって、工数をかけることなくユーザー管理が容易になります。

ShtockData

お問い合わせフォーム

お問い合わせ項目を選択してください