Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Streamlitとロール関連の話
Search
株式会社ヌーラボ
PRO
October 10, 2025
Technology
0
150
Streamlitとロール関連の話
株式会社ヌーラボ
PRO
October 10, 2025
Tweet
Share
More Decks by 株式会社ヌーラボ
See All by 株式会社ヌーラボ
Datadog Live Tokyo 2025登壇資料
nulabinc
PRO
0
32
Nulab Fun Deck 〜チームワークが、世界をもっと『おもしろく』する〜
nulabinc
PRO
1
5.4k
How to Migrate Your Backlog Free Plan
nulabinc
PRO
0
29
チームワークマネジメント Bar #5
nulabinc
PRO
0
51
Geeks Who Drink Fukuoka - 202508
nulabinc
PRO
0
34
TRIAL Meetup#1
nulabinc
PRO
0
38
20251129_BacklogWorld.pdf
nulabinc
PRO
0
43
業務プロセス改善を開発⽣産性に つなげるまでの奮闘⽇記
nulabinc
PRO
0
88
AI とナレッジ共有で進化する Backlog の未来
nulabinc
PRO
0
150
Other Decks in Technology
See All in Technology
マイグレーションガイドに書いてないRiverpod 3移行話
taiju59
0
330
LINEアプリ開発のための Claude Code活用基盤の構築
lycorptech_jp
PRO
1
1.2k
20260222ねこIoTLT ねこIoTLTをふりかえる
poropinai1966
0
320
Claude Codeはレガシー移行でどこまで使えるのか?
ak2ie
1
1.1k
なぜAIは組織を速くしないのか 令和の腑分け
sugino
80
52k
チームメンバー迷わないIaC設計
hayama17
5
3.4k
opsmethod第1回_アラート調査の自動化にむけて
yamatook
0
330
Contract One Engineering Unit 紹介資料
sansan33
PRO
0
14k
Webアクセシビリティ技術と実装の実際
tomokusaba
0
180
メタデータ同期に潜んでいた問題 〜 Cache Stampede 時の Cycle Wait を⾒つけた話
lycorptech_jp
PRO
0
120
AI Agentにおける評価指標とAgent GPA
tsho
1
260
「使いにくい」も「運用疲れ」も卒業する UIデザイナーとエンジニアが創る持続可能な内製開発
nrinetcom
PRO
1
760
Featured
See All Featured
The Art of Programming - Codeland 2020
erikaheidi
57
14k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
659
61k
Keith and Marios Guide to Fast Websites
keithpitt
413
23k
Ruling the World: When Life Gets Gamed
codingconduct
0
160
Jamie Indigo - Trashchat’s Guide to Black Boxes: Technical SEO Tactics for LLMs
techseoconnect
PRO
0
78
GraphQLの誤解/rethinking-graphql
sonatard
75
11k
Mozcon NYC 2025: Stop Losing SEO Traffic
samtorres
0
160
How to audit for AI Accessibility on your Front & Back End
davetheseo
0
200
Leveraging Curiosity to Care for An Aging Population
cassininazir
1
190
How to Get Subject Matter Experts Bought In and Actively Contributing to SEO & PR Initiatives.
livdayseo
0
77
Rebuilding a faster, lazier Slack
samanthasiow
85
9.4k
Kristin Tynski - Automating Marketing Tasks With AI
techseoconnect
PRO
0
180
Transcript
Copyright Nulab Inc. All Rights Reserved. Streamlitとロール関連の話 セキュアで柔軟なアプリ開発を実現する Streamlit in
Snowflake ロール設計
Copyright Nulab Inc. All Rights Reserved. Copyright Nulab Inc. All
Rights Reserved. 大塚 真一郎 株式会社ヌーラボ RevOps部 Data Integration Unit 福岡在住。 データ分析基盤、社内システムの SRE (AWS、GCP、Snowflake) 趣味は野球、釣り、キャンプ、洗車
Copyright Nulab Inc. All Rights Reserved. Copyright Nulab Inc. All
Rights Reserved. Agenda 1. はじめに: Streamlit権限の大原則 ◦ 全ての基本となる「所有者権限」の再確認 2. 提案:アプリケーションのためのロール設計 ◦ なぜロール設計が重要なのか? ◦ 管理者, 開発者, 利用者 の役割分担 3. 応用:Cortex AI活用と動的な処理分岐 ◦ 開発者が直面する「権限の壁」とその対策 ◦ 実行ユーザーに応じた Cortex AIの切り替え方法 4. まとめ Agenda
Copyright Nulab Inc. All Rights Reserved. Copyright Nulab Inc. All
Rights Reserved. Streamlit in Snowflakeとは Streamlit はオープンソースのPythonライブラリで、機械学習やデータサイエンスのため のカスタムウェブアプリを簡単に作成・共有できます。Streamlitを使用することで、強力 なデータアプリケーションを迅速に構築し、展開することができます。
Copyright Nulab Inc. All Rights Reserved. Copyright Nulab Inc. All
Rights Reserved. Streamlit in Snowflake 権限の"大原則" アプリは『所有者 (OWNER)』の権限で実行される • 実行ユーザー (CALLER) ではなく、アプリ作成者 (OWNER) の権限で動作 ◦ ユーザーがテーブルへのアクセス権を持っていなくても、アプリ経由での閲覧・操作 が可能 • 今日の話は、すべてこの原則がベース
Copyright Nulab Inc. All Rights Reserved. Copyright Nulab Inc. All
Rights Reserved. なぜ、あえて「ロール設計」の話をするのか? Streamlitを「ダッシュボード」から『アプリケーション』へ • データの参照 (Read) だけでなく … ◦ グラフ表示、データ検索 • データの書き込み (Write) も可能なパワフルなツール ◦ ユーザーからの入力内容をテーブルに保存 ◦ 機械学習の予測結果を書き戻す ◦ 操作ログの記録 → だからこそ、明確な役割分担と権限管理が不可欠になる
Copyright Nulab Inc. All Rights Reserved. Copyright Nulab Inc. All
Rights Reserved. 開発者が直面する「権限の壁」 アプリが見える世界 = 開発者が見える世界 • 原則: アプリは所有者(開発者)の権限で動く • 課題: 開発者がアクセスできないデータ(例:人事データ)を使ったアプリは開発できない
Copyright Nulab Inc. All Rights Reserved. Copyright Nulab Inc. All
Rights Reserved. アプリケーションのための3つの役割 APPADMIN (管理者) • 役割: アプリ専用DB/スキーマの管理者 • 責務: オブジェクト作成、権限付与 (GRANT) APPDEV (開発者) • 役割: Streamlitアプリケーションの開発者 • 責務: Pythonコード作成、アプリのデバッグ APPUSER (利用者) • 役割: 完成したアプリケーションの利用者 • 責務: アプリのUI操作
Copyright Nulab Inc. All Rights Reserved. Copyright Nulab Inc. All
Rights Reserved. アプリケーションのための3つの役割
Copyright Nulab Inc. All Rights Reserved. Copyright Nulab Inc. All
Rights Reserved. なぜ、DBやロールを分離するのか? 管理性の向上 • アプリケーションで利用するオブジェクト(テーブル、ビュー等)を一箇所に集約 • 分析用データとアプリ用データを明確に分離 セキュリティの向上 • 利用者 にはアプリの 利用(USAGE) 権限のみを付与 • 最小権限の原則 を徹底し、ユーザーに不要な権限を与えない
Copyright Nulab Inc. All Rights Reserved. Copyright Nulab Inc. All
Rights Reserved. 開発者が直面する「権限の壁」 アプリが見える世界 = 開発者が見える世界 • 原則: アプリは所有者(開発者)の権限で動く • 課題: 開発者がアクセスできないデータ(例:人事データ)を使ったアプリは開発できない
Copyright Nulab Inc. All Rights Reserved. Copyright Nulab Inc. All
Rights Reserved. どう乗り越えるか? • 対策①:開発用ロールの設計 ◦ アプリがアクセスする必要のあるオブジェクト(テーブル、ビュー等)への SELECT 権限などを集約したロール (APP_DATA_ACCESS_ROLE) を作成し、APPDEV に 付与する • 対策②:プロジェクトごとの権限付与 ◦ 開発期間中のみ、APPDEV に対して一時的に必要なデータへのアクセス権を付与 するプロセスを確立する → 事前のデータ要件定義と、それに基づいた権限設計が重要
Copyright Nulab Inc. All Rights Reserved. Copyright Nulab Inc. All
Rights Reserved. どう乗り越えるか? • 対策①:開発用ロールの設計(恒久的) メリット ・運用が楽になる ・再利用性が高い デメリット ・過剰な権限を与えがち
Copyright Nulab Inc. All Rights Reserved. Copyright Nulab Inc. All
Rights Reserved. どう乗り越えるか? • 対策②:プロジェクトごとの権限付与 (一時的) メリット ・開発時にデータ構造を理解しやすい ・セキュリティが高い デメリット ・開発のリードタイムが長くなる可能性 ・開発者とデータ管理者の連携が必須
Copyright Nulab Inc. All Rights Reserved. Copyright Nulab Inc. All
Rights Reserved. Cortex AI活用と動的な処理分岐 • 背景: Cortex Agentsはユースケース別に作成することが推奨されている ◦ 例:「人事部チーム向け Agent」「営業チーム向け Agent」 • 要件: ◦ 人事部のユーザー (HR_USER) が使ったら → 人事Agentを呼び出したい ◦ 営業部のユーザー (SALES_USER) が使ったら → 営業Agentを呼び出したい → 1つのアプリで、実行ユーザー (APPUSER)の役割に応じて 裏側の処理を動的に変える必要がある
Copyright Nulab Inc. All Rights Reserved. Copyright Nulab Inc. All
Rights Reserved. CURRENT_ROLE() で実行ユーザーのロールを取得 Streamlitアプリの中で CURRENT_ROLE() を実行すると、 アプリ所有者ではなく、 ”今操作している ユーザー” のロールが取得できる これを利用して、 Pythonコード内で処理を分岐させる
Copyright Nulab Inc. All Rights Reserved. Copyright Nulab Inc. All
Rights Reserved. 本日のまとめ 1. Streamlitは「所有者権限」が基本 ◦ この原則を理解することが、全ての設計のスタートライン 2. Streamlitを「アプリケーション」と捉え、役割を分離する ◦ 管理者, 開発者, 利用者 のロール設計で、管理性と安全性を両立 3. CURRENT_ROLE() を活用し、動的で柔軟な処理を実現 ◦ 実行ユーザーに応じた表示やCortex AIの切り替えが可能に
None
参加申し込み受付中
Copyright Nulab Inc. All Rights Reserved. ご清聴ありがとうございました