「動いたのはうれしいけど、このまま置いておいて大丈夫かな?」
記帳が動き出すと、次に気になるのはここですよね。
この記事では、自分のVPSで動かすOpenClawの記帳Botを4か所で最小に絞り、点検しながら使い続ける方法をまとめます。読む目安は8分ほどです。
OpenClawそのものの説明は1本目の記事にあります。レシート自動記帳の作り方は、シリーズ2本目でまとめます。
この記事で分かること
- 絞る4か所と、それぞれの既定
- 私が実際にやったことと、公式が勧める設定
- 月1回を目安に回せる点検表
先に答えをまとめると
私が実際に絞ったのは、Googleの権限、鍵の置き場所、Discordの3か所です。
Googleは記帳専用のサービスアカウント1つに、シート1枚だけを共有しました。鍵とトークンはVPSの設定フォルダと ~/.openclaw/.env に置き、スキルには書いていません。
Discordは自分専用のサーバーで使っています。Gatewayは、公式が最も安全な既定とする「外に開けず、SSHかTailscale Serveで入る」形が基本です。
どれも一度で終わりではないので、鍵の入れ替えや不要な鍵の削除も含めて、定期的に点検しておくと安心です。
| 持ち場 | 既定 | 私がやったこと | 公式が勧めること |
|---|---|---|---|
| Googleの権限 | 共有しなければシートに届かない | 記帳専用アカウント1つ、シート1枚を「編集者」で共有 | 用途専用のアカウントに必要な分だけ |
| 鍵とトークン | 鍵は有効期限なし | VPSの設定フォルダと ~/.openclaw/.env に置き、スキルには書かない。組織ポリシーは戻した | 90日以内に入れ替え、不要な鍵は無効化→削除 |
| Gateway | 「loopback」+認証必須 | ―(公式の勧め方を紹介) | 外に開けず、SSHかTailscale Serveで入る |
| Discord | サーバー内はメンション時だけ応答、DMは「pairing」 | 自分専用サーバー。重複トークンは自動で無効になった | 「allowlist」を基準に、IDで指定 |
Googleの権限と鍵:記帳専用アカウントとシート1枚に絞る
最初の持ち場は、BotがGoogleで触れる範囲です。ここを絞っておくと、もし鍵が外に出ても、届く範囲を小さく抑えられます。
渡す範囲:アカウント1つ、シート1枚
私は記帳専用のサービスアカウント(プログラム用のGoogleアカウント)を1つだけ作りました。共有したのは記入先のシート1枚で、権限は「編集者」です。
たとえば家計簿や仕事のシートが別にあっても、共有していなければ、このアカウントからは開けません。
| 確認すること | 絞った状態 |
|---|---|
| サービスアカウント | 記帳専用の1つ。使い回さない |
| 共有しているシート | 記入先の1枚だけ(「編集者」) |
| プロジェクト全体の権限 | シートの共有だけで動くなら付けない |
用途専用のアカウントにして、シート単位の共有だけで動く形にしておくと、届く範囲を小さくできます。

鍵は「期限」ではなく「入れ替え」で管理する
サービスアカウントの鍵は、既定では有効期限がありません。
Googleは、少なくとも90日ごとに鍵を入れ替えるよう勧めています(Google Cloud:サービスアカウントキーのローテーション)。
ローテーション(鍵の入れ替え)とは、新しい鍵に差し替えてから古い鍵を使えなくすることです。
流れは次の5ステップです。
- 入れ替える鍵を特定する
- 同じサービスアカウントで新しい鍵を作る
- VPS上の鍵ファイルを新しいものに差し替える
- 古い鍵を無効化し、記帳が動くか確かめる
- 問題なければ古い鍵を削除する
では、期限付きの鍵にすれば楽では?
Googleは入れ替えの手段として、期限付きの鍵を勧めていません。きちんと入れ替えないと、期限切れで止まる原因になるためです。
Tomoya24時間動く記帳Botなら、期限ではなく入れ替えで管理する考え方が合います。
削除した鍵は元に戻せません。そのため、まず無効化して、不要だと確信してから削除します。
鍵の置き場所と組織ポリシー
私は鍵とトークンを、VPSの設定フォルダと ~/.openclaw/.env に置いています。
鍵ファイルは読めるユーザーを絞り、ディスクも暗号化しておくのがGoogleの推奨です(Google Cloud:サービスアカウントキー管理のベストプラクティス)。VPSの管理責任とバックアップは1本目で触れました。
もう1つ、組織ポリシー(Googleの組織全体のルール)の戻し忘れも確かめます。私の組織では鍵の作成が既定で禁止されていたため、プロジェクト単位で一時的に解除しました。鍵を作った直後に、「親のポリシーを継承」に戻しています。

ポリシーの変更は、反映まで最大15分かかることがあります。少し時間をおいて見直すと確実です。
感想:鍵を作ったあと、組織ポリシーを「親のポリシーを継承」に戻したときの気持ち
誰でも鍵を作って使える状態を制限してあるのは、GCPのセキュリティが堅牢だと感じる証拠だと思います。作業者側は少し手間に感じるかもしれないが失うものの大きさに比べれば取るに足らない事だと思うので「開けたら閉める」を意識する事を学べたなと思います。
Gatewayを外に開けない:loopbackのまま入る
2つ目の持ち場はGatewayです。OpenClawの受付にあたる部分で、4か所の中でも中心になります。
Gatewayの待ち受け先(bind)は、既定で「loopback」です。loopbackとは、同じ機械の中からだけ接続できる状態を指します(OpenClaw:Network exposure)。
たとえばVPSの中のコマンドからは届きますが、インターネット上のほかの機械からは直接つなげません。
わかりやすく言うと、玄関は閉めたまま、合鍵を持つ人だけが専用の通路から入る形です。その通路が、SSHトンネルやTailscale Serveです。
| 待ち受けの形 | 届く範囲 | 公式の扱い |
|---|---|---|
| loopback(既定) | 同じ機械の中だけ | 推奨。このまま使う |
| LANなど外向きの待ち受け | ほかの機械からも届く | 認証と、本物のファイアウォールが前提 |
| 0.0.0.0で認証なし | どこからでも届く | 絶対にしない |
OpenClaw Gatewayを外部公開したくなったら、まずこの表を見返してください。公式は、LANでの待ち受けよりTailscale Serveを勧めています。Gatewayはloopbackのままで、接続の管理はTailscaleが受け持つためです。
認証は既定で必須
Gatewayの認証は、既定で必須です。有効な認証がないと、Gatewayは接続を受け付けません。
トークン(合言葉にあたる文字列)は、次のコマンドで作れます。
openclaw doctor --generate-gateway-token
24文字より短いトークンは、openclaw security audit で警告が出ます。生成したものを使うと安心です。

外から使うときの入り方
公式のリモート接続の説明には、”Loopback + SSH/Tailscale Serve is the safest default” とあります。外に開けず、通路だけを用意する考え方です。
SSHトンネルは、手元のパソコンとVPS内のGatewayを、SSHの暗号化した通路でつなぐ方法です。
公式の例と同じ形で書くと、次のとおりです。
ssh -N -L <PORT>:127.0.0.1:<PORT> <user>@<vps>
-N は、通路だけを作ってコマンドは実行しない指定です。<PORT> にはGatewayのポート、<user> と <vps> にはVPSのユーザー名と接続先が入ります。
- 条件:パソコンから管理画面やコマンドを使いたい 行動:SSHトンネルで入る
- 条件:スマホなど複数の端末から、決まった相手だけで使いたい 行動:Tailscale Serveを検討する
- 条件:どうしてもLANで待ち受けたい 行動:認証を有効にし、接続元を絞る

Discordの公開範囲と月1回の点検表
3つ目の持ち場は、Botに話しかけられる相手と場所です。私はDiscordを、自分専用のサーバーで使っています。
既定と、公式が勧める基準
OpenClawのDiscord連携には、最初から絞る方向の既定があります(OpenClaw:Discord access control)。
| 項目 | 既定・公式の基準 | 意味 |
|---|---|---|
| サーバー内の応答 | メンション時だけ(requireMention で切り替え) | @で呼ばれない限り反応しない |
| DM | dmPolicy は「pairing」 | 知らない相手には承認を求める。ほかに allowlist/open/disabled |
| サーバーの受け入れ方針 | channels.discord がある場合の安全な基準は「allowlist」 | 登録したサーバーだけで動く |
| チャンネルの指定 | チャンネルを登録すると、それ以外は拒否 | 登録した部屋でだけ応答する |
| 相手の指定 | 名前よりIDが安全 | 名前やタグだと監査で警告が出る |
たとえば記帳用のチャンネルを1つだけ登録すると、ほかのチャンネルでは応答しません。
Discord Botを自分だけで使うなら、「自分専用サーバー+登録チャンネル+IDで指定」が公式の基準に沿った形です。
もう1つ、Botトークンの重複です。
私は同じトークンを2か所に設定していましたが、片方は自動で無効になっていました。公式によると、監視は1つだけ起動し、重複側は無効と表示されます。
動作に害はありませんでした。とはいえ、どちらの設定が生きているか迷わないよう、1つにまとめておくのがおすすめです。
月1回の点検表(おすすめのリズム)
公式に「毎月」という決まりはありません。OpenClawは設定変更後の監査を、Googleは90日ごとの鍵の入れ替えを勧めています。
その両方に間に合うよう、月1回をおすすめのリズムとしました。
-
openclaw security auditを実行する(くわしく見るなら--deepを付ける) - Gatewayの待ち受けが「loopback」のままか
- 使っていない鍵が、無効化または削除されているか
- 使っている鍵が、作ってから90日以内か
- 記入先のシートの共有が、記帳用アカウント1つだけか
- 組織ポリシーが「親のポリシーを継承」のままか
- Discordの allowlist とメンションの設定が残っているか
-
~/.openclawが700、openclaw.jsonが600になっているか
ただし、--fix はトークンや鍵の入れ替えはしません。Gatewayの待ち受けや公開範囲も変えないため、そこは表を見ながら自分で確かめます(OpenClaw:security CLI)。
よく聞かれる点
まとめ
- Googleは、記帳専用のアカウント1つとシート1枚に絞る
- 鍵は期限ではなく入れ替えで管理し、不要な鍵は無効化してから削除する
- 鍵とトークンはVPS上の設定に置き、スキルには書かない
- Gatewayはloopbackのまま、SSHかTailscale Serveで入る
- Discordは自分専用サーバーで、allowlistとメンション、IDでの指定を基準にする
まずは点検表を1回、通してみてください。費用の内訳と抑え方は、シリーズ4本目でまとめます。
私たちは挑戦者です。安心して使い続けられる形を、一緒に整えていきましょう。
OpenClaw セキュリティ,OpenClaw 安全 設定,OpenClaw VPS セキュリティ,OpenClaw Gateway 外部公開,サービスアカウント 権限 最小,サービスアカウントキー ローテーション・不要なキー 削除,Discord Bot 自分だけ 使う,スマホから使うのにポートを開けなくて大丈夫?,鍵が漏れたかもと思ったら?,これで完全に安全?

コメント