trocco® にチーム機能を作った話
by
yosoka
Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
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
ご清聴ありがとうございました