Upgrade to Pro — share decks privately, control downloads, hide ads and more …

AI Agent に GitHub の鍵を渡しっぱなしにしない

Sponsored · SiteGround - Reliable hosting with speed, security, and support you can count on.

AI Agent に GitHub の鍵を渡しっぱなしにしない

2026/08/22 Kanazawa.rb meetup 168 LT 1本目
AI Agent に無制限に gh コマンド実行を許すのではなく、GitHub fine-grained PAT(Personal Access Token) と 1Password op コマンドを組み合わせて利用範囲を制限しようという話

続きとなる2本目:
1Password 認証を MCP の起動単位にする
https://speakerdeck.com/kiyohara/1password-ninshou-o-mcp-no-kidou-tani-ni-suru

Avatar for Tomokazu Kiyohara

Tomokazu Kiyohara

August 22, 2026

More Decks by Tomokazu Kiyohara

Other Decks in Technology

Transcript

  1. agent へ渡す権限を 4方向から小さくする 01 02 03 04 対象 操作 期間

    露出 どの org / repo へ届く 読む・書く・管理する いつまで有効か いつ agent へ渡すか か GitHub 側は fine-grained PAT で ローカル側は 1Password CLI で絞る ※ 漏えいや誤操作が起きても影響範囲を限定できる設計にする
  2. たとえば PR 対応用の PAT なら こう絞る 用途から逆算して permission を選んだ一例 設定

    例 Repository access 対象 repo のみ この PAT でできること • PR の作成とレビュー対応 Pull requests Read and write Contents Read and write ※ Expiration 30日 ※ ブランチ作成・HTTPS push も同じ PAT で行う場合 • PR へのコメント • ブランチ作成と push この PAT ではできないこと • ほかの repo への操作 使う gh コマンドから逆算して足りない分を足す • Actions と workflow の変更 • repository 設定の変更
  3. 作った PAT は 環境変数 GH_TOKEN で g h へ渡す たとえば

    こんな渡し方がある — どれも GH_TOKEN に入れるだけ その都度渡す ~/.zshrc .env + direnv GH_TOKEN='github_pat_…' \ export GH_TOKEN= \ GH_TOKEN=github_pat_… gh pr view 'github_pat_…' どの渡し方でも gh は GH_TOKEN を最優先で使う ※ ここに挙げたどれも 実 token を file やコマンド履歴に残すことになる
  4. 4つめの「露出」は まだ絞れていない file に書いた token は agent がいつでも読める token を渡すのは

    gh を実行する その瞬間だけにしたい ※ 対象・操作・期間は PAT で絞れた。残るのは 渡すタイミングをどこまで狭められるか
  5. o p run なら 実行の瞬間だけ token を渡せる GH_TOKEN='op://Development/example-repo GitHub PAT/token'

    \ op run -- gh pr view op run 参照を解決して子プロセスへ渡すコマンド op://vault/item/field 1Password 内の場所を指す参照
  6. agent への指示は AGENTS.md / CLAUDE.md に書く 実行の作法を project の指示ファイルへ残しておく 指示ファイルに書く内容

    G itH ub 操作では保存済み credential を使わず gh を必ず次の形式で実行すること GH_TOKEN='op://…/token' op run --gh ... ※ 指示ファイルは強制機構ではない。実行承認の設定と併用する
  7. 指示を書かなくても 同じことが起きるようにする 1Password Shell Plugin が gh を包んで token を注入する

    01 02 gh を alias で op run に包む 使う item を directory ごとに保存 op plugin init gh Use automatically when in this directory ※ 以後は gh pr view --comments のようにいつもどおり実行するだけ
  8. 1Password は「秘密の保管と注入」を守る 1Password が守ること 別に守ること • token を平文ファイルへ置かない • agent

    が実行できるコマンド • 実行時だけ子プロセスへ注入する • PAT が許可した GitHub 操作 • 人間の認証を入口にできる • git push / SSH の認証 secret manager ≠ sandbox