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
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
株式会社ヌーラボ
PRO
October 10, 2025
Technology
0
120
Streamlitとロール関連の話
株式会社ヌーラボ
PRO
October 10, 2025
Tweet
Share
More Decks by 株式会社ヌーラボ
See All by 株式会社ヌーラボ
Nulab Fun Deck 〜チームワークが、世界をもっと『おもしろく』する〜
nulabinc
PRO
1
2.3k
How to Migrate Your Backlog Free Plan
nulabinc
PRO
0
16
チームワークマネジメント Bar #5
nulabinc
PRO
0
42
Geeks Who Drink Fukuoka - 202508
nulabinc
PRO
0
20
TRIAL Meetup#1
nulabinc
PRO
0
27
20251129_BacklogWorld.pdf
nulabinc
PRO
0
34
業務プロセス改善を開発⽣産性に つなげるまでの奮闘⽇記
nulabinc
PRO
0
78
AI とナレッジ共有で進化する Backlog の未来
nulabinc
PRO
0
130
DATA_SUMMT2025_Presentation_materials.pdf
nulabinc
PRO
0
110
Other Decks in Technology
See All in Technology
Tebiki Engineering Team Deck
tebiki
0
24k
Greatest Disaster Hits in Web Performance
guaca
0
230
AzureでのIaC - Bicep? Terraform? それ早く言ってよ会議
torumakabe
1
530
生成AIを活用した音声文字起こしシステムの2つの構築パターンについて
miu_crescent
PRO
2
190
Bill One急成長の舞台裏 開発組織が直面した失敗と教訓
sansantech
PRO
2
370
CDK対応したAWS DevOps Agentを試そう_20260201
masakiokuda
1
270
こんなところでも(地味に)活躍するImage Modeさんを知ってるかい?- Image Mode for OpenShift -
tsukaman
0
140
インフラエンジニア必見!Kubernetesを用いたクラウドネイティブ設計ポイント大全
daitak
1
360
SREが向き合う大規模リアーキテクチャ 〜信頼性とアジリティの両立〜
zepprix
0
450
Red Hat OpenStack Services on OpenShift
tamemiya
0
100
日本の85%が使う公共SaaSは、どう育ったのか
taketakekaho
1
150
配列に見る bash と zsh の違い
kazzpapa3
1
140
Featured
See All Featured
Digital Projects Gone Horribly Wrong (And the UX Pros Who Still Save the Day) - Dean Schuster
uxyall
0
350
Winning Ecommerce Organic Search in an AI Era - #searchnstuff2025
aleyda
0
1.9k
Building Applications with DynamoDB
mza
96
6.9k
Ruling the World: When Life Gets Gamed
codingconduct
0
140
A Tale of Four Properties
chriscoyier
162
24k
KATA
mclloyd
PRO
34
15k
Skip the Path - Find Your Career Trail
mkilby
0
55
AI: The stuff that nobody shows you
jnunemaker
PRO
2
250
B2B Lead Gen: Tactics, Traps & Triumph
marketingsoph
0
53
The B2B funnel & how to create a winning content strategy
katarinadahlin
PRO
0
270
Navigating the moral maze — ethical principles for Al-driven product design
skipperchong
2
240
BBQ
matthewcrist
89
10k
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. ご清聴ありがとうございました