セキュリティの話をしようと思う。やらかした話だ。
Gmailで通知システムを作りたかった
VPSにClaudeが常駐するようになって、次にやりたかったのが「通知システム」だった。
Claudeが何か作業を終えたとき、あるいは何か問題が起きたとき、自分のスマホにメールで知らせてほしい。
VPSはずっと動き続けているが、自分はパソコンの前にいるとは限らない。
スマホに通知が来れば、外出中でも状況がわかる。
ざっくり言うと「VPSからメールを送れるようにしたい」という話だ。
Geminiに聞いたら「Gmailを使うのが一番簡単です」と言われた。
ただし、Gmailを普段使いのアカウントで設定するのはリスクがある、とも言われた。
送信専用のGmailアカウントを一つ別に作って、そこから送るようにするのがいい、と。
なるほど、それなら万が一何かあっても普段使いのアカウントには影響しない。
アカウントを新しく作った。
アプリパスワードというものが必要らしい
Gmailからメールを送るには「アプリパスワード」というものが必要だと教えてもらった。
普通のGmailのパスワードとは別に、特定のアプリやスクリプトが使うための専用パスワードを発行できる仕組みだ。
Googleのアカウント設定から「2段階認証を有効にして、アプリパスワードを発行する」という手順を踏む必要がある。
Geminiに手順を教えてもらいながら進めた。
Googleのアカウント設定を開いて、セキュリティの項目を探して、2段階認証をオンにして、アプリパスワードの発行画面にたどり着く。
「メール」「Windowsパソコン」を選択して生成ボタンを押すと、16桁のランダムな文字列が表示された。
これがアプリパスワードだ。
「このパスワードをコピーして、設定ファイルに貼り付けてください」とGeminiが言った。
チャット欄に貼り付けた
ここで問題が起きた。
「設定ファイルに貼り付ける」という操作をClaude Codeにやってもらおうと思った。
そのためには、Claudeにアプリパスワードを伝えなければならない。
どうやって伝えるか一瞬考えた。
チャット欄に貼った。
「アプリパスワードはxxxx xxxx xxxx xxxxです。設定ファイルに書き込んでください」
Claudeがすぐに反応した。
作業を進めてくれながら、こんなことを言ってきた。
「アプリパスワードをチャット欄に直接貼り付けることはセキュリティ上のリスクがあります。チャットの履歴に残ってしまうため、パスワードは設定ファイルに直接書き込むか、環境変数として設定することをおすすめします」
あ、やってしまった。
すぐにパスワードを無効化した
Claudeの警告を読んで、まずGoogleのアカウント設定を開いた。
さっき発行したアプリパスワードを探して、削除した。
チャット履歴にパスワードが残っている状態は、たとえそのチャットを誰かに見せる予定がなくても気持ちが悪い。すぐに使えない状態にしておくのが正解だと思った。
削除したら、新しいアプリパスワードを発行し直した。
今度はチャット欄には貼らず、Claudeに「設定ファイルを開いて、パスワードの欄に自分でペーストする」という方法で作業した。
画面を見ながら自分でコピーして貼り付ける。
Claudeには設定ファイルのどこに書けばいいかだけ教えてもらった。
これで、チャット履歴にパスワードが残ることはなくなった。
何が問題だったのか
落ち着いてから考えると、自分がなぜそうしてしまったかはわかる。
「Claudeに伝えるにはチャットに書くしかない」と思い込んでいたからだ。
Claudeとのやり取りはすべてチャット欄を通じて行うもの、という頭があった。
パスワードも情報の一つだから、情報を伝えるにはチャットに書く。その発想の流れ自体はおかしくない。
でも、パスワードのような秘密情報は「伝える」のではなく「自分で直接入力する」のが正しいやり方だった。
Claudeを経由させる必要はなかった。
エンジニアならこれは常識なのかもしれない。
でも最初はわからなかった。
Claudeを使えば何でも全部任せられると思っていたが、任せていいものとそうでないものがある、ということをこのとき学んだ。
ちなみにメール送信専用アカウントは今も活躍している
この一件の後、無事にGmailの通知システムは動くようになった。
VPSからメールを送れるようになると、できることが一気に広がった。
Claudeが作業を終えたら報告メールを送ってくる。
エラーが出たら即座に通知が来る。
毎朝決まった時間にその日の予定をまとめたメールが来る。
スマホを開くたびに「Claudeから何か来てるかも」と思うようになった。
この感覚は今でも好きだ。
アプリパスワードはチャット欄に貼るな。これだけ覚えておけばいい。
← 前の話|第4話|TeraTermがCtrl+Bを横取りしていてtmuxに命令が届いていなかった話 | 次の話|第6話|SSH鍵の設定に丸1日溶かした話 →

コメント