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
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
株式会社ヌーラボ
PRO
October 10, 2025
Technology
180
0
Share
Streamlitとロール関連の話
株式会社ヌーラボ
PRO
October 10, 2025
More Decks by 株式会社ヌーラボ
See All by 株式会社ヌーラボ
The_Evolution_of_Bits_AI_SRE.pdf
nulabinc
PRO
0
300
進化するBits AI SREと私と組織
nulabinc
PRO
2
470
実践 Datadog MCP Server
nulabinc
PRO
3
480
全社横断PjM⽀援チーム “PEaS”の取り組みと プロジェクトマネジメント でのAI活⽤について
nulabinc
PRO
0
140
Datadog の RBAC のすべて
nulabinc
PRO
4
700
Datadog Live Tokyo 2025登壇資料
nulabinc
PRO
0
120
Nulab Fun Deck 〜チームワークが、世界をもっと『おもしろく』する〜
nulabinc
PRO
1
13k
How to Migrate Your Backlog Free Plan
nulabinc
PRO
0
210
チームワークマネジメント Bar #5
nulabinc
PRO
0
71
Other Decks in Technology
See All in Technology
2026年、知っておくべき最新 サーバレスTips10選/serverless-10-tips
slsops
11
3.6k
60分で学ぶ最新Webフロントエンド
mizdra
PRO
30
13k
あるアーキテクチャ決定と その結果/architecture-decision-and-its-result
hanhan1978
2
590
Databricksを用いたセキュアなデータ基盤構築とAIプロダクトへの応用.pdf
pkshadeck
PRO
0
300
Hello UUID
mimifuwacc
0
130
AIエージェントを構築して感じた、AI時代のCDKとの向き合い方
smt7174
1
220
DIPS2.0データに基づく森林管理における無人航空機の利用状況
naokimuroki
1
200
インフラを Excel 管理していた組織が 3 ヶ月で IaC 化されるまで
geekplus_tech
3
190
Zero Data Loss Autonomous Recovery Service サービス概要
oracle4engineer
PRO
5
14k
New CBs New Challenges
ysuzuki
1
180
プロンプトエンジニアリングを超えて:自由と統制のあいだでつくる Platform × Context Engineering
yuriemori
0
180
すごいぞManaged Kubernetes
harukasakihara
1
400
Featured
See All Featured
Stewardship and Sustainability of Urban and Community Forests
pwiseman
0
180
Breaking role norms: Why Content Design is so much more than writing copy - Taylor Woolridge
uxyall
0
250
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
128
55k
Organizational Design Perspectives: An Ontology of Organizational Design Elements
kimpetersen
PRO
1
670
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
141
35k
The AI Revolution Will Not Be Monopolized: How open-source beats economies of scale, even for LLMs
inesmontani
PRO
3
3.3k
JAMstack: Web Apps at Ludicrous Speed - All Things Open 2022
reverentgeek
1
410
Agile Actions for Facilitating Distributed Teams - ADO2019
mkilby
0
170
GitHub's CSS Performance
jonrohan
1032
470k
Darren the Foodie - Storyboard
khoart
PRO
3
3.2k
Measuring Dark Social's Impact On Conversion and Attribution
stephenakadiri
1
180
How to Build an AI Search Optimization Roadmap - Criteria and Steps to Take #SEOIRL
aleyda
1
2k
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. ご清聴ありがとうございました