ANTIGRAVITY LABEN
記事一覧/連携・プラグイン
連携・プラグイン/2026-06-27上級

無人のエージェントを止めずに鍵を入れ替える — 重複期間つきローテーション設計

API キーやトークンは、漏れる前に定期的に入れ替えたいものです。ところが無人で動くエージェントは、入れ替えの瞬間に認証が切れて静かに止まります。個人開発で複数サイトを自動運用してきた立場から、止めずに鍵を回す重複期間つきの設計をまとめます。

Antigravity275シークレット管理2認証5自動運用6

プレミアム記事

鍵を入れ替えた直後に、夜間の自動実行が静かに止まっていたことがありました。漏洩を防ぐために古い API キーを無効化したのですが、無効化と新キーの配布の間に数分の隙間ができ、ちょうどその時刻に走ったジョブが認証エラーで落ちていました。翌朝、生成されているはずの記事がないことで気づきました。

鍵を定期的に入れ替えること自体は正しい習慣です。問題は、無人で動くエージェントにとって「入れ替えの瞬間」が一番の弱点になることです。人がそばにいれば 401 を見て手で直せますが、夜間や移動中のエージェントは、認証が切れたことを誰にも伝えられないまま止まります。ここでは、止めずに鍵を回すための設計を書きます。

入れ替えを「一瞬の切替」にしない

最初に捨てるべき発想は、古い鍵を消して新しい鍵を置く、という一瞬の切替です。どれだけ手早くやっても、無効化と配布の間には必ず時間差が生まれます。その時間差にジョブが当たれば落ちます。

代わりに必要なのは、新旧2つの鍵がしばらく同時に有効である「重複期間」です。新しい鍵を先に有効化し、読み手側が新旧どちらでも通るようにしてから、書き手側を新へ切り替え、最後に古い鍵を退役させます。瞬間の切替を、緩やかな移行に置き換える発想です。

4段階で回す

私は鍵のローテーションを次の4段階に分けています。

  1. 発行: 新しい鍵を作るが、まだ誰にも使わせない
  2. 受容: すべての読み手が新旧どちらの鍵でも認証を通せる状態にする
  3. 切替: 書き手(エージェント本体)が使う鍵を新へ寄せる
  4. 退役: 古い鍵を無効化する

肝は2と3を必ず分けることです。読み手が両対応になる前に書き手を切り替えると、まさに冒頭の隙間が生まれます。逆に、受容を先に済ませておけば、切替はいつ起きても穴になりません。

# secrets.yaml — 重複期間を明示する設定
api_key:
  primary: "${API_KEY_NEW}"      # 切替後はこちらを使う
  secondary: "${API_KEY_OLD}"    # 重複期間だけ受容する
  overlap_until: "2026-06-29T15:00+09:00"  # この時刻に退役

overlap_until を設定に持たせておくと、退役の判断を勘ではなく時刻で下せます。私はこの窓を48時間に取っています。週末をまたいでも、長めのジョブが走り切るのに十分で、かつ古い鍵を長く生かしすぎない長さだからです。

ここまでお読みいただきありがとうございます。

この記事の続きを読む

この先には、実装コードやベンチマーク結果など、実務でお役に立てる内容をご用意しています。このサイトは広告を掲載しておらず、サーバーや開発にかかる費用はメンバーの皆様のご支援で成り立っています。もしお役に立てていましたら、ご支援いただけますと大変ありがたいです。

この記事で得られること
新旧2つの鍵を同時に有効化し、切替の瞬間にも認証の穴を作らない重複期間の設計手順
ローテーションが無人運用で事故になる3つの落とし穴(キャッシュ・実行中ジョブ・再認証トークン)と回避策
私自身が90日ごとの入れ替えを手作業から自動化したときの、48時間の重複窓と切替手順の具体例
Stripe による安全な決済 · いつでもキャンセル可能

この記事を購入する

この先の内容をすべてお読みいただけます。一度のご購入で、いつでも何度でもアクセスできます。このサイトは広告を掲載しておらず、皆さまのご支援がサーバー費用などの運営を支えています。

または
メンバーシップなら全記事が読み放題 →
シェア

お読みいただきありがとうございます

Antigravity Lab は広告なしで運営しており、サーバー費用などの運営コストはメンバーシップのご支援で賄っています。実装コード・ベンチマーク・本番設計パターンなど、実務でお役立ていただける記事を毎日更新しています。もし読んでよかったと感じていただけましたら、ぜひご覧ください。

  • コピー&ペーストで使える実装コード付き
  • 毎日新しい上級ガイドを追加
  • ¥580/月 または ¥1,480 の永久アクセス
メンバーシップを見る →

関連記事

連携・プラグイン2026-06-17
Antigravity CLI が無人実行中に 401 で止まるとき — 認証切れと再ログイン待ちを切り分ける
Antigravity CLI を無人のスケジュール実行に組み込んだあと、ある朝から 401 が一度出て止まる症状の原因と、認証切れと再ログイン待ちを切り分けて自動運用を立て直す手順をまとめます。
連携・プラグイン2026-06-25
翻訳済みの一行が、いつの間にか英語へ戻っていた — エージェントが触った文字列リソースを差分で守る
エージェントに values フォルダの整理を任せると、訳済みの値が静かに原文へ戻ることがあります。既定言語を正、各ロケールを差分として鍵単位で突き合わせ、欠落・戻し訳・書式引数の崩れだけを pre-commit で止める設計と実装をまとめました。
連携・プラグイン2026-06-22
エージェントに渡すMCPツールを絞る — 最小権限の許可リスト設計
Antigravity 2.0 に MCP サーバーを足していくと、各エージェントが触れるツールはいつの間にか「全部入り」になります。読み取りしか必要ないエージェントに削除系ツールまで見えている状態は、いつか事故を起こします。ツールをエージェント単位の許可リストで絞り、呼び出し直前で弾き、破壊的操作だけ二段階にする最小権限の設計を、動くPython実装と運用の所感つきでまとめました。
📚RECOMMENDED BOOKS
大規模言語モデル入門
山田育矢
LLM開発
生成AIプロンプトエンジニアリング入門
我妻幸長
プロンプト
Claude CodeによるAI駆動開発入門
平川知秀
AI駆動開発
※ アフィリエイトリンクを含みます
もっと見る →