
目次
大事なページを、誰にも触られないようにしたい。Notionには、ページをロックする機能があります。
これをかけておけば安心か。外から操作する場合には、そうではありませんでした。
ロックと、Web公開。この2つを外から触って測った結果を書きます。
ロックしても、外からは削除まで通ります
結論から書きます。
ロックはかかります
まず、外からロックをかけられるかを試しました。かかりました。
読み直すと、ちゃんと「ロック中」になっています。ここまでは期待どおりです。
ところが、何でもできました
ロックをかけた状態で、いろいろ試しました。
| ロック中にやったこと | 結果 |
|---|---|
| タイトルを変える | 変わる |
| 本文を追加する | 入る |
| ページを削除する | 消える |
全部通りました。エラーは1つも出ていません。
削除まで通るのが驚きでした。ロックをかけても、外からは何の制限にもなっていません。
データベースの行でも同じでした
データベースの1行にもロックをかけられます。こちらも同じで、ロック中に値を変えられました。
行ごとにロックして守る、という使い方も、外からの操作には効きません。
画面での効き方は、確かめていません
1つ断っておきます。画面上でロックがどう効くかは、今回検証できていません。外から画面の操作を再現できないためです。
分かったのは、「外からの操作は止まらない」という一点です。画面で人が触るのを止める効果はあるかもしれません。
ただ、外部ツールをつないでいるなら、ロックは防御になりません。ここは押さえておいてください。
誤解しやすい場面があります
こういう思い違いが起きます。
| 思っていること | 実際 |
|---|---|
| ロックしたから、同期で上書きされない | 上書きされる |
| ロックしたから、誤って消えることはない | 消える |
| ロックが外れていたら気づける | ロックは外れない。かかったまま書き換わる |
3つ目がとくに厄介です。ロックは外れません。「ロック中」のまま中身だけが変わります。
あとから見ても、ロックは正しくかかっています。設定を見ても、何が起きたか分かりません。
ロックできるのは、ページと行だけです
そもそも、どこにロックをかけられるのかも確かめました。
4つのうち、2つだけです
| 対象 | ロック |
|---|---|
| ページ | かけられる |
| データベースの行 | かけられる |
| データベース本体 | そもそも項目が無い |
| 本文のブロック | 項目が無い |
データベース本体にロックをかけようとすると、200が返ってきます。ところが読み直しても、何も変わっていません。
列の構成は守れません
つまり、データベースの列を勝手に増やされたり消されたりするのは、ロックでは防げません。
行の中身は守れそうに見えて、実際は外からなら変えられる。データベースの作りそのものは、守る手段がありません。
| 守りたいもの | ロックで守れるか |
|---|---|
| 行の値 | 守れない(ロック中でも変わる) |
| 行そのもの | 守れない(削除が通る) |
| 列の追加・削除 | ロックをかけられない |
| 列の型の変更 | ロックをかけられない |
列を消されると、その列の値も一緒に消えます。いちばん被害が大きいのがここです。それなのに、守る手段だけがありません。
Web公開は、逆でした
もう1つ、似た設定を試しました。
読めるけれど、切り替えられません
Notionのページは、Webに公開して誰でも見られる状態にできます。この状態は、外から読み取れました。
公開していないページは「なし」として返ってきます。公開していれば、そのアドレスが入るという作りです。
では、外から公開に切り替えられるか。できませんでした。
断られ方が2通りありました
| 送ったもの | 結果 |
|---|---|
| 公開アドレスの欄に値を入れる | 200。だが何も変わらない |
| 「公開する」という指定 | 400。はっきり断られる |
1つ目が厄介です。成功の返事が返ってくるのに、何も起きていません。読み直すまで気づけません。
ロックと逆の形です
| 外から | |
|---|---|
| ロック | かけられる。でも効かない |
| Web公開 | 読める。でも切り替えられない |
どちらも、画面の設定と、外からの操作が食い違っています。
画面で設定したことが、外からの操作にそのまま効くとは限りません。これが今回いちばんの教訓です。
図にすると、こういう食い違いです
権限そのものは、まったく見えません
では、誰が何を見られるのかは分かるのか。
ページの情報に、権限の項目がありません
ページを読むと返ってくる項目を全部並べてみました。権限や共有相手に関するものは、1つもありませんでした。
返ってくるのは、作った人、最後に触った人、更新日時、アイコン、置き場所、ロック、公開アドレス。誰に共有しているかは、どこにも入っていません。
人の一覧にも、区別がありません
ワークスペースの人の一覧も読めます。ただ、返ってくるのは名前とアイコンとメールアドレスだけです。
その人がメンバーなのかゲストなのかは、分かりません。以前ゲストとメンバーの違いを書いた記事でも同じ結論でした。
棚卸しに使えるもの、使えないもの
| 知りたいこと | 外から分かるか |
|---|---|
| 誰がこのページを見られるか | 分からない |
| メンバーかゲストか | 分からない |
| ワークスペースに誰がいるか | 分かる(名前とメール) |
| Webに公開されているか | 分かる |
| ロックされているか | 分かる |
下2つが、実務で使えるところです。
上3つが取れないのは、外部ツールで棚卸しを作ろうとすると壁になります。「誰が何を見られるか」の一覧は、外からは作れません。
そこを自動化したいなら、Notion側の管理画面で確認することになります。外から取れるものだけで作ろうとすると、途中で行き詰まります。
先に「何が取れないか」を知っておくと、作り始めてから気づく無駄がなくなります。
できるのは、棚卸しです
止められないなら、せめて把握する。そこは可能でした。
1,607件を17回で走査できました
ワークスペース全体を検索で走査して、公開状態を数えました。
| 結果 | |
|---|---|
| 走査した件数 | 1,607件(ページ1,580 + データベース27) |
| かかった回数 | 17回 |
| かかった時間 | 13.6秒 |
| 公開中だったもの | 0件 |
全件に公開状態の項目が付いています。1,607件のうち1,607件です。取りこぼしがありません。
「公開したまま忘れている」を見つけられます
Web公開は、便利なので使われます。外部の人に資料を見せる、フォームの説明ページを出す。
問題は、用が済んだあとに戻し忘れることです。公開したままだと、アドレスを知っている人は誰でも見られます。
これを定期的に洗い出せます。13秒で済むので、毎日動かしても負担になりません。
見つけたあとは、画面で戻します
ただし、見つけても外からは戻せません。公開を止めるのは画面での操作になります。
つまり、「見つけて、知らせる」までが外からできる範囲です。あとは人がやります。
これでも十分に役に立ちます。気づかないまま放置されるのが、いちばん危ない状態だからです。
棚卸しの回し方
| 頻度 | やること |
|---|---|
| 毎日 | 公開中の件数を数える |
| 増えていたら | どのページが増えたかを出す |
| 月に1回 | 公開中のものを一覧にして、まだ必要かを確認する |
毎日やるのは件数を数えるだけで十分です。13秒で終わるので、負担になりません。
増えたときだけ中身を見る。これなら、公開した当日に気づけます。
月1回の確認も入れておいてください。必要があって公開したものも、いつかは用が済みます。
守りたいなら、渡す側で絞ります
最後に、実務の話をします。
Notion側では守れません
ここまでで分かったのは、Notion側の設定では外からの操作を止められないということです。
| やりたいこと | Notion側で |
|---|---|
| このページを編集させたくない | ロックは効かない |
| このページを削除させたくない | 手段がない |
| この列を消させたくない | 手段がない |
守るのは、つなぐときです
止められるのは、つなぐときに渡す権限のほうです。
| 渡す権限 | できなくなること |
|---|---|
| 読むだけを渡す | 編集も削除もできない |
| 読む+足すを渡す | 既存の書き換えはできない |
| 全部渡す | 何でもできる |
ここが唯一の防御線です。Notionのページ側ではなく、つなぐ側で決まります。
見落とされがちですが、権限はあとから減らせます。いま全部渡しているなら、使っていないものを外してください。
外したあとに処理を動かして、止まらなければそのままで大丈夫です。止まったら、その権限だけ戻せば済みます。
共有する範囲も絞ります
もう1つは、どのページを共有するかです。
つないだ相手には、共有したページの下にあるものが全部見えます。上の階層で共有すると、その下が丸ごと対象になります。
触らせたくないページは、共有する階層の外に置いてください。これがいちばん確実です。
順番にすると、こうなります
| 順番 | やること |
|---|---|
| 1 | 触らせたくないページを、共有の外に出す |
| 2 | 渡す権限を、使うぶんだけにする |
| 3 | 公開されたままのページを定期的に洗い出す |
| 4 | ロックは、画面で人が触るのを減らす目的で使う |
4番の位置づけが大事です。ロックを「外からの防御」として数えないでください。
いちばん効くのは1番です
2番以降は、どれも「できることを減らす」話です。1番だけが、そもそも見せない話になります。
経営の数字、人事の情報、契約書。外部ツールが読む必要のないものは、読める場所に置かないでください。
Notionは階層で共有するので、置き場所を変えるだけで対象から外れます。設定をいじるより確実で、あとから見ても分かりやすいです。
よくある質問(FAQ)
ロックは意味がないということですか。
外からの操作に対しては効きませんでした。画面で人が触るときにどう効くかは、今回確かめていません。外部ツールをつないでいる場合は、防御として数えないでください。
データベースの列を守る方法はありませんか。
Notion側にはありませんでした。つなぐときに渡す権限を「読むだけ」にするか、そのデータベースを共有の外に置くことになります。
公開されたままのページを、外から非公開に戻せますか。
戻せません。見つけることはできますが、止めるのは画面での操作になります。見つけて知らせるところまでが、外からできる範囲です。
公開中のページには、本当にアドレスが入りますか。
そこは確かめていません。外から公開できないので、公開状態のページを用意できませんでした。項目があることと、未公開なら「なし」が返ることまでを確認しています。
1,607件というのは多いほうですか。
今回つないだ範囲で見えた件数です。共有した階層の下が全部入るので、上のほうで共有しているとこのくらいになります。自分の環境でも同じ方法で数えられます。
誰がどのページを見られるかを、一覧にしたいです。
外からは取れませんでした。ページの情報にも、人の情報にも、権限に関する項目が1つも入っていません。
ロックは、外からの防御になりません
ロック中でも、外からは編集も削除も通りました。守りたいなら、つなぐときに渡す権限を絞るか、そのページを共有の外に置いてください。公開されたままのページは、13秒で洗い出せます。