Streamlit CloudやGAS(Google Apps Script)でデプロイした社内ツールの公開範囲を、非エンジニア向けに漫画で解説します。URLを社内チャットにしか送っていなくても、公開設定がPublicなら世界中からアクセスできる状態です。「ログイン画面があるから安全」も、そのままでは成り立ちません。この記事では、シークレットモードと社外回線で外からの見え方を確認する方法、GASの「全員」の本当の意味、アクセス制限(門)と認証(鍵)を重ねる考え方、そして公開前チェックリストまでを、10ページの漫画と文章でお伝えします。

「要約ツール、Webで使えるようになったよ!」

前回までで、AIと一緒にツールを作り(GitHub超入門)、APIキーをコードの外に出す(第2条)ところまで来ました。今回は、そのツールをデプロイして、社内のみんなに配るときの話です

ここでもまた、多くの人が同じところでつまずきます。

  • URLは社内チャットにしか送っていないから、社内限定のはず
  • ログイン画面があるから、パスワードを知らない人は入れないはず

どちらも、そのままでは成り立ちません。「URLを配った相手」と「そのURLに入れる相手」は別の話で、「入口が見えること」と「中身を使えること」も別の話です。まず漫画でその違いをつかんでいただき、そのあとで「公開前に何を確認すればいいのか」を文章で整理します。

まずは漫画でどうぞ(第3条:デプロイしたツールの公開範囲を確認する/10ページ)

いかがでしょうか。ここからは、漫画に出てきた考え方を順番に補足していきます。

デプロイとは ── 「手元で動く」から「URLで届く」へ

デプロイは、手元のパソコンで動いていたツールを、サーバーやクラウドに置いて、URLでアクセスできるようにすることです。Streamlit Community Cloud、Google Apps Script(GAS)のウェブアプリ、Vercelなど、いまは無料や低コストで、数クリックでデプロイできるサービスがたくさんあります。

便利な反面、デプロイした瞬間に、そのツールは「インターネット上の住所」を持ちます。誰がその住所にたどり着けるのかは、URLを誰に送ったかではなく、サービス側の公開設定で決まります。ここが今回のテーマです。

公開範囲の確認方法① シークレットモード(未ログイン)で開いてみる

漫画2ページ目で先輩が最初にやったのは、設定画面を見ることではなく、実際に開いてみることでした。

普段のブラウザは、自分のアカウントでログインしたままになっています。その状態でツールを開いて「ちゃんと使えた」としても、それは「許可された自分が使えた」だけで、外の人がどう見えるかは分かりません。

そこで使うのが、ブラウザのシークレット(プライベート)モードです。普段のログイン状態を引き継がずに開けるので、「何も持っていない人」としてURLにアクセスしたときの見え方を確かめられます。コツは、開いているシークレットの窓を全部いったん閉じてから開き直すこと。シークレットの窓同士はログイン状態を共有しているので、閉じずに使い回すと確認になりません。

漫画では、未ログインでもログイン画面が表示されました。ここで「じゃあ大丈夫」と思うかどうかが、次の分かれ道です。

公開範囲の確認方法② 社外回線から開く ── URLの配布先と公開範囲は別

3ページ目で先輩が指摘したのは、「シークレットモードで開いても、まだ社内のネットワークからアクセスしている」という点です。オフィスのWi-Fiから見て入口が見えるのは当然で、本当に確かめたいのは「社外の回線からどう見えるか」です。

スマホの回線(VPNなし)から開いてみて、そこでもログイン画面が表示されるなら、そのツールは世界中のどこからでも入口に到達できる状態です。公開設定がPublicになっていれば、まさにそうなります。

「URLは社内にしか送っていない」は、鍵を「知り合いにしか渡していない」のと同じで、玄関自体は通りに面したままです。配った相手と、たどり着ける相手は、別の集合だと考えてください。

「ログイン画面があるから安全」は本当か ── 入口が見えることと、中身を使えることは別

4ページ目の主人公の反論はもっともです。「パスワードを知らなければ入れないなら、入口が見えても問題ないのでは?」

たしかに、認証(ログイン)は「中身を使えるかどうか」を守る仕組みです。入口が見えていても、正しい認証を通らなければ保護された情報や機能には触れません。ただし、その前提には「公開した入口は、守らなければならない」という条件がつきます。

ブルートフォース攻撃 ── 公開したログイン画面に自動で繰り返し試してくる

5ページ目の「総当たり(ブルートフォース)」がその理由です。インターネットに公開されたログイン画面には、パスワードを自動で、繰り返し試すプログラムがやってきます。人と違って休みませんし、よく使われるパスワードの一覧を片っ端から試すこともあります。

これに対する基本の守りが2つあります。

  • 試行回数の制限:一定回数失敗したら、しばらく受け付けない・ロックする
  • 多要素認証(MFA):パスワードに加えて、スマホの確認やセキュリティキーなど、もうひとつの要素を求める

自作のツールにこれらを自前で組み込むのは大変なので、後述するように、サービスが提供している認証機能や、会社のアカウント基盤(Google Workspaceなど)に乗るのが現実的です。

アクセス制限(門)と認証(鍵)を重ねる

6ページ目の家の例えは、この記事の考え方の中心です。

  • 玄関の鍵(認証):中に入れる人を本人確認で絞る
  • 門(アクセス制限):そもそも玄関まで来られる人を絞る

鍵だけの家は、誰でも玄関の前まで来て、鍵をガチャガチャ試せます。門があれば、玄関の前に立てる人自体が減ります。逆に、門だけで鍵がなければ、門を越えた人は誰でも中に入れます。社内ツールでは、この2つを重ねるのが基本です。「門があっても、鍵は必要」。主人公の言葉どおりです。

Streamlit Cloudの非公開設定、IP制限、VPN ── サービスごとに違う入口の制限

7ページ目は、実際の設定の話です。何ができるかはサービスごとに違うので、まずは「非公開設定」や「閲覧者の制限」があるかを確認します。

Streamlit Community Cloud:閲覧者を指定する

アプリを非公開にし、閲覧できるユーザーのメールアドレスを指定できます(利用できる機能はプランや設定によります)。デプロイ直後の初期設定がどうなっているかを、必ず確認してください。

IP制限・VPN:対応する構成で使う

会社のネットワークやVPNを経由した人だけを通す方法もありますが、これは「IP制限やVPNに対応した構成」で動かしている場合の話です。個人が無料のクラウドにデプロイしたツールに、あとから会社のVPNをかぶせることはできません。

ここで注意したいのが、漫画3コマ目の「VPNを使うだけでは、公開URLは閉じない」です。自分がVPNでアクセスしていても、ツール側が公開URLのままなら、公開経路は残ったままです。「VPN経由でしか使っていない」と「VPN経由でしか使えない」は別です。

使える機能はサービスごとに違い、会社側のネットワーク構成にも関わるので、公開経路については担当者と一緒に確認するのが確実です。

GASウェブアプリの「アクセスできるユーザー:全員」は、会社の全員ではない

8ページ目は、GAS(Google Apps Script)をウェブアプリとして公開する人が、ほぼ必ず一度は迷う設定です。

「アクセスできるユーザー」の選択肢に「全員」があります。会社のGoogleアカウントで作業しているので、「全員=会社のみんな」と読みたくなりますが、これはインターネット上の全員です。未ログインの社外の人も含みます。

似た選択肢に「Googleアカウントを持つ全員」があります。こちらはログインを求めますが、Googleアカウントは誰でも作れるので、社内限定ではありません。「Googleへのログインが必要」と「社内限定」は別です。

社内限定にしたい場合は「(組織名)内の全員」のような、組織内に限定する選択肢を選びます。この選択肢は、会社のGoogle Workspaceの管理設定によっては表示されないことがあります。選べないときは、自分で無理に回避策を考えず、管理者に相談してください。

デプロイ前・公開前チェックリスト

9ページ目で主人公が自分でやっていた確認を、そのままチェックリストにします。

  1. 未許可の人は拒否されるか:社外回線・未ログイン・配布するURLの3点セットで開き、使えないことを確認する
  2. 必要な人は利用できるか:承認済みの社内アカウントで、ちゃんと使えることを確認する
  3. 設定と動作を照合する:設定画面で「こうなっているはず」と、実際に開いてみた結果が一致しているか

想定外に使えてしまったら、いったん公開を止めて(非公開に戻して)、担当者に相談します。「とりあえず動いているから」で放置しないことが大切です。

よくある質問(社内ツールの公開設定Q&A)

Q. URLが長くてランダムなら、推測されないので大丈夫では?

A. URLは、送った相手の転送、ブラウザの履歴、チャットの検索、ログなど、いろいろな経路で広がります。「知られなければ安全」に依存する設計は、知られた瞬間に守りがゼロになります。門と鍵を別に用意してください。

Q. 自分しか使わないツールでも、公開設定を気にすべき?

A. はい。使うのが自分だけでも、公開範囲がPublicなら入口は全世界に見えています。第2条で扱ったAPIキーを使うツールなら、なおさら他人に使われた分の請求は自分に来ます。

Q. 社内ツールのログインを、自前で作ってもいいですか?

A. おすすめしません。試行回数制限や多要素認証を自前で正しく作るのは難易度が高く、AIが生成した「それらしいログイン」には抜けが残りがちです。サービスの認証機能や、会社のアカウント基盤(Google Workspace、Microsoft Entra IDなど)でのログインに乗せる方が安全です。

Q. 確認して問題があったら、誰に言えばいい?

A. 会社の情報システム担当や、ツールの責任者に、そのまま伝えてください。「公開範囲を確認したらこう見えた」という報告は、責められる話ではなく、歓迎される話です。

まとめ:公開する前に、誰が入れるか確認

最後の10ページ目のチェックリストを、もう一度。

  1. 公開先の設定を確認する(Public/非公開、閲覧者の指定、GASの「全員」の意味)
  2. 社外回線・未ログインで、実際に開いて確認する
  3. 必要な人だけに許可する(配った相手ではなく、入れる相手で考える)
  4. 入口の制限(門)と認証(鍵)を重ねる

「URLを送った相手」と「URLに入れる相手」は別。この一点を覚えておくだけで、社内ツールの事故はぐっと減ります。次にデプロイするときは、ぜひシークレットモードとスマホの回線で、外からの見え方を確かめてみてください。

次回は第4条を、同じく漫画でお届けします。


株式会社Four Youでは、生成AIの導入支援から、AIで作った社内ツールを安全に運用するための体制づくりまで、企業のAI活用を伴走支援しています。「AIでツールは作れたが、公開設定やアクセス管理が不安」という方は、お気軽にご相談ください。