Slide 1

Slide 1 text

trocco®にチーム機能を作った話 2023.6 primeNumber Inc.

Slide 2

Slide 2 text

©primeNumber Inc. 2 yosoka WHO AM I? 株式会社primeNumber リードエンジニア 2022/03 入社 1
 2

Slide 3

Slide 3 text

©primeNumber Inc. 3 ● チーム単位でのロールベースアクセス制御を可能とする機能(有償オプション ○ アカウント内でETL設定などのリソースをユーザー間で共有する機能 ● チーム機能を利用していない場合、各設定は作成者のみ閲覧可能 ● 契約オプション No.1 チーム機能とは?

Slide 4

Slide 4 text

©primeNumber Inc. 4 チーム機能ができる前 「グループ機能」という名でユーザー間共有のための機能は存在していた 1. ユーザーをグループに所属させる 2. 設定をグループに共有する 3. 設定をみんなで使える!

Slide 5

Slide 5 text

©primeNumber Inc. 5 チーム機能ができる前 ユーザーに2種類の権限を設定できる ● admin:共有されたリソースに何でもできる ● member:閲覧・実行のみ(編集不可)

Slide 6

Slide 6 text

©primeNumber Inc. 6 シンプルなのは良いことだが… 権限がざっくりしすぎていて細やかな制御ができない お客様の要望 ● 参照はできるが実行・編集ができないように共有したい ● 接続情報などセキュアなものは別グループで管理したい ● 複数グループで共有できるようにしたい グループ機能の問題

Slide 7

Slide 7 text

©primeNumber Inc. 7 2022年4月某日 ???「岡さんも入社1ヶ月経ったし、そろそろ大きめのタスクやりますか?」 岡「よくわからんけどやります」 そこで… グループ機能 リニューアルPRJ

Slide 8

Slide 8 text

©primeNumber Inc. 8 ● AWSのようなポリシーJSONを作れるようにするか…? → 流石にユーザーも開発もたいへんだからボツ ● グループのロールを増やすか…? → 複数グループへの共有などができず要望を満たせないのでボツ 考えたこと

Slide 9

Slide 9 text

©primeNumber Inc. 9 ロールベースの制御が必要かつ、複数グループで共有したい Google Drive の共有設定が似てるかも? → いい感じにいけそう! 考えたこと

Slide 10

Slide 10 text

©primeNumber Inc. 10 グループ機能では人とリソースが1つの箱に入っているイメージ 人だけの箱とリソースだけの箱に分けて、間をロールで繋げばよさそう 人とリソースをそれぞれまとめる チーム = 人だけの箱 リソースグループ = リソースだけの箱

Slide 11

Slide 11 text

©primeNumber Inc. 11 チーム

Slide 12

Slide 12 text

©primeNumber Inc. 12 リソースグループ

Slide 13

Slide 13 text

©primeNumber Inc. 13 4種類の権限をサポート ● 管理者:なんでもできる ● 編集者:リソースの編集・実行ができる     (リソースグループ自体に対する変更は不可) ● 運用者:リソースの使用・実行のみできる ● 閲覧者:リソースの閲覧のみできる ロール

Slide 14

Slide 14 text

©primeNumber Inc. 14 グループ機能からチーム機能への変換 お客様の使用状況をそのまま再現する必要がある 変換するためのスクリプトを作り、個社別にメンテナンス時間を頂いた

Slide 15

Slide 15 text

©primeNumber Inc. 15 ● 正社員はなんでもできる、業務委託の方は実行権限のみにしたい ● 他事業部は参考のため閲覧だけしたい ユースケース1 正社員チーム Aさん 業務委託チーム Bさん Cさん リソースグループ ETL設定1 ETL設定2 閲覧者 他事業部 Dさん 運用者 管理者

Slide 16

Slide 16 text

©primeNumber Inc. 16 ● セキュア情報は使用のみで編集してほしくない ● 転送設定などは編集してほしい ユースケース2 管理者チーム Aさん メンバーチーム Aさん Bさん Cさん 機密リソースグループ セキュア情報1 セキュア情報2 リソースグループ ETL設定1 ETL設定2 管理者 管理者 運用者 編集者

Slide 17

Slide 17 text

©primeNumber Inc. 17 利用状況 管理者 運用者 編集者 閲覧者 とりあえず管理者にする人は多そう? 予想以上に運用者が利用されている

Slide 18

Slide 18 text

©primeNumber Inc. 18 ● 影響範囲が広すぎる ○ 入社1ヶ月で受けるタスクじゃない ● お客様のマイグレーション ○ 全社同時に対応はできず、切り替えフラグを使いながら実施 ○ ミスが許されないのでしっかり検算しながらやった ○ 営業さん・CSさんありがとう🥰 大変だったこと

Slide 19

Slide 19 text

©primeNumber Inc. 19 ● ワークフローの権限問題 ○ ワークフロー中のタスクの権限が変わったら保存できなくなる ○ 現状「リソースの作成者に問い合わせください」と表示するしかない イケてないところ1

Slide 20

Slide 20 text

©primeNumber Inc. 20 ● 計算量が増大 ○ グループ機能では計算量は線形だった (ユーザーがリソースと同じグループかどうか) ○ ロール * チームの計算量になった (各ロールのチームにユーザーが含まれるか) ■ これにチェックしたいリソース数が掛けられる イケてないところ2

Slide 21

Slide 21 text

©primeNumber Inc. 21 ● カスタムロールの対応 ○ お客様が自由なロールを作れる ● スーパー管理者の要望 ○ すべてのリソースを管理したい ○ 権限を付け替えたい ● Google Driveのようなフォルダ管理 やれなかったこと(のびしろ)

Slide 22

Slide 22 text

©primeNumber Inc. 22 まとめ ● グループ機能をグレードアップしてチーム機能としてリニューアルした ● ある程度の要望を満たせたのでここからブラッシュアップしたい 💪 ● 天才になった

Slide 23

Slide 23 text

ご清聴ありがとうございました