スプレッドシートの「リンクを知っている全員が閲覧可能」の設定

freja-nelson-vDJ0LQJkp6s-unsplash.jpg

質問

スプレッドシートの「リンクを知っている全員が閲覧可能」の設定は、実際どの範囲のユーザーまで閲覧が可能ですか?
本当にリンクを知っている人ならだれでもアクセスでき、データを編集できるのですか?
もしそうであるなら、それを防ぐための方法をいくつか挙げてください。


解答

とても良い質問です。
Google スプレッドシートの共有設定には注意が必要です。
以下で詳しく説明します。


✅ 「リンクを知っている全員が閲覧可能」とは?

* 誰でもそのリンクを持っていれば、Google アカウントにログインしていなくてもアクセス可能です。
* デフォルトでは「閲覧のみ」権限です。
つまり、データを見ることはできるが、編集はできません。


⚠️ ただし注意点:

* リンクが第三者に漏れれば、誰でもデータを見られます。
* SNSやコードに貼ったまま公開すると、Google にインデックスされて検索に引っかかることもあります(まれに)。
* 編集権限にしていた場合は、そのリンクを知っていれば誰でも編集できてしまいます。


🔐 それを防ぐ方法(安全性を高める方法)

1. 🔒 スプレッドシートの共有設定を「自分のみ」に戻す

* デフォルトで最も安全。
* ただし、GAS を介して外部からアクセスする場合は Google 認証が必要になります。


2. 🔑 GAS を OAuth 認証付きにして、ログインユーザーだけがデータにアクセスできるようにする

* Firebase Authentication + GAS の連携
* この方法なら、スプレッドシートは非公開のままで OK


3. 🚫 API の URL を公開しない

* フロントエンドに直に API URL(GAS Web アプリの URL)を埋め込むと、それが漏れる危険性があります。

* 対策:
*`CORS` のホワイトリストを使ってアクセス元を制限
* Cloudflare Workers や独自のサーバーでリバースプロキシを作って、GAS を隠す


4. 🧱 データをスプレッドシートからではなく、データベースに移行する

* Firebase Firestore や Supabase などにすれば、認証や細かいアクセス制御ができます。


5. 🔎 スプレッドシートの「閲覧」権限だけにする

* 間違って「編集者」権限でリンクを共有しないこと。
* 設定はこう確認します: 1. スプレッドシート右上の「共有」をクリック
2. 「リンクを知っている全員にアクセスを許可」→「閲覧者」に設定
3. 「閲覧者・コメント可・編集者」の違いを確認すること


✅ 最も簡単な安全策(おすすめ)

初心者向けに もっとも簡単で安全な運用は以下の通り:
1. スプレッドシートは「リンクを知っている全員が閲覧者」の設定にする(編集不可にする)。
2. GAS の Web アプリを「全員(匿名ユーザー)に実行可」でデプロイする。
3. React サイトでは `fetch(GAS_URL)` で読み込むのみ(書き込みなし)。

👉 これで、「誰でも見られるが、編集は絶対にできない」サイトが完成します。


✋ 補足:書き込みもしたい場合は?

* GAS 側に「編集用」の別の関数を用意し、認証(APIキー or Firebase Auth)付きにしてアクセス制御を加える必要があります。
不特定多数にデータを公開したくない場合は、少なくとも「リンクを知っている全員が閲覧可能」は使わず、ログイン+認証の仕組みを加える必要があります。





本当かどうかはわからないので、もし気になる方はGoogleの資料を確認してください。


ブラウザだけで学べる Googleスプレッドシート プログラミング入門 [ 掌田津耶乃 ]

価格:2618円
(2025/6/9 12:39時点)
感想(2件)


AWSではじめるクラウドセキュリティ クラウドで学ぶセキュリティ設計/実装 [ 松本 照吾 ]

価格:2948円
(2025/4/23 14:17時点)
感想(1件)


 



この記事へのコメント

広告です。クリックいただけると励みになります。