速報

JAL・JTAの予約情報約9万2千人分に外部参照の形跡|対象項目と利用者対応

CATEGORY

GitHub CopilotのAssisted permissionsが一般提供|自動承認を安全に使う設定と検証

※本ページのリンクにはプロモーションが含まれています。

GitHub Copilotのコマンド・パス・URL要求を自動承認、人の確認、拒否に分けて監督する開発者の概念イラスト

目次

GitHubは2026年10月26日、GitHub CopilotのAssisted permissionsを一般提供しました。対象はCopilot 、Copilot app、Visual Studio Codeです。コマンド実行、ファイルシステム上のパスへのアクセス、URLを開く要求をが評価し、明らかに安全と判断したものだけを自動承認します。それ以外は従来どおり利用者の承認が必要です。

承認回数を減らせる一方、AIが危険または意図しない操作を安全と誤判定する可能性は残ります。導入時は、denyルールとを先に整え、Assistedを「権限を与える仕組み」ではなく、既存の境界内で一部のask要求を自動判定する仕組みとして扱ってください。本稿は公式資料を2026年10月28日に確認したニュース解説であり、実環境で攻撃や誤承認を再現した報告ではありません。

スポンサーリンク

Manual・Assisted・Allow allの差を先に決める

GitHubの一般提供告知が示す選択肢は、毎回確認するManual、モデルが安全性を評価するAssisted、広い許可を事前に与えるAllow allです。Assistedでは自動承認できない要求を人へ戻せます。Allow allは個別のモデル審査を行わず、許可された範囲の操作を進めます。

モード実行前の判断向く場面主な注意点
Manual人が承認初回導入、高機密無人処理では承認が必要な要求を拒否する
Assisted対象要求をモデルが評価し、残りを人へ戻す境界を設定済みの対話作業誤承認を前提に隔離が必要
Allow all個別審査なし使い捨ての隔離環境破壊的操作も進み得る

選択の基準は、を信頼できるかではなく、誤った操作が起きても被害を限定できるかです。外部のIssue、README、依存パッケージの出力、Webページなどをコンテキストへ入れる作業では、意図しない指示が混ざる可能性があります。Assistedの審査があることを、リポジトリ外への書き込みやへのアクセスを許す理由にしないでください。

denyとサンドボックスはAssistedより先に適用する

GitHub DocsのAssisted permissions解説によると、既存のdenyルールと企業管理の制限は引き続き適用されます。シェル、ファイル読み書き、URLに対するaskルールは、対象ならモデルの承認で満たせます。一方、denyはモデルの判断より強く、サンドボックスを越える要求や、企業ポリシー上の承認が必要な別種のツール呼び出しは自動審査の対象になりません。

したがって設定順序は、保護対象の列挙、deny、サンドボックス、Assistedの順です。ホームディレクトリ全体、鍵、資格情報、ブラウザーのプロファイル、他案件の作業ディレクトリは、作業リポジトリから分離します。ネットワークも、必要なレジストリやだけへ到達できる構成を検討します。AIが安全と評価しても、OSやコンテナ側の境界を越えられない状態を合格条件にします。

ローカルサンドボックスはCopilot CLI自体を隔離するのではなく、CLIが利用者の代わりに動かすコマンドやツールを制限する仕組みです。クラウドサンドボックスはセッション全体を遠隔の隔離環境で実行します。どちらを使う場合も、必要な書き込み先と通信先をテストし、単に「sandbox enabled」と表示されたことだけで確認を終えないでください。

スポンサーリンク

対話セッションでは一時的に切り替えて挙動を見る

Copilot CLIの対話セッションでは、次のコマンドでAssistedへ切り替え、現在の状態を確認できます。最初は検証用リポジトリで実行し、読み取り、リポジトリ内の書き込み、外部URL、拒否対象のパスという順で確認します。

/permissions assisted
/permissions show

新しい対話セッションの既定値にする場合は、利用者設定の~/.copilot/settings.jsonへ次のように保存できます。管理者がpermissions.defaultModeを設定している場合は、管理された既定値が優先されます。利用可能でない、またはポリシーで禁止された既定値を選んだ場合はManualで開始します。

{
  "defaultPermissionMode": "assisted"
}

再開したセッションは保存済みのモードを維持しますが、その時点の管理ポリシーには従います。過去に許可したツールや現在地に保存された承認が残っていると、Assistedの効果を正しく比較できません。テスト前には/reset-allowed-toolsで現在のセッションと保存済み承認を整理し、ManualとAssistedで同じ要求を試すと差を追いやすくなります。

CIでは承認不能を正常系として設計する

非対話実行では--assisted-approvalを指定できます。これは-pや--promptを使う処理、端末が接続されないなどが対象です。モデルが自動承認できず、人の承認が必要な要求は拒否され、その理由がCopilotへ返されます。無人実行を必ず完走させる機能ではありません。

copilot -p "失敗したテストを調べ、修正案を作る" --assisted-approval

ジョブ設計では、拒否を権限拡大で解消せず、変更案やログを成果物として残して人へ引き継ぐ分岐を用意します。テスト対象の資格情報は読み取り範囲を狭め、本番用トークンを同じランナーへ置かないようにします。書き込みが必要なら一時や一時ディレクトリへ限定し、公開、、は別の承認へ分けます。

特に--allow-all-tools、--allow-all-paths、--allow-all-urlsとの併用を避けます。公式資料では、Assistedの判定が成功すると--allow-all-toolsより優先される一方、パスとURLの包括許可は変更しません。またAssistedが利用不能またはポリシーで無効でも、別途指定した--allow-all-toolsを自動的に取り消さず、警告を出す場合があります。CIはその警告を失敗として扱い、Assistedが有効でない状態で広い許可へ戻らないことを試験してください。

スポンサーリンク

企業管理ではAllow allとAssistedを別々に制御する

企業管理者は、Allow allを禁止してAssistedを残すことも、Assisted自体を無効にすることもできます。既定モードの配布だけでは、利用者が別モードへ切り替えられる余地が残る場合があります。許可するモード、開発者が変更できる範囲、denyするツール・パス・URLを一つの導入票で確認します。

まず高機密リポジトリはManualを維持し、公開情報だけを扱う検証用リポジトリでAssistedを試します。次に、同じ命令でどの要求が自動承認、手動承認、denyになったかを記録します。モデルは会話に使うモデルと異なる場合があり、BYOKではセッションのモデルが評価に使われます。モデル名だけで一律の挙動を保証せず、組織で実際に選べる構成ごとに確認します。

導入前に4つの失敗経路を試す

  1. deny対象:資格情報やリポジトリ外の保護パスへ触れる要求が、モデル判定へ進んでも実行されないこと。
  2. 判断不能:安全性を評価できない要求がManualへ戻り、無人実行では拒否されること。
  3. 機能停止:Assistedが管理ポリシーで無効、または利用不能なときに警告を検知し、包括許可へしないこと。
  4. 誘導入力:READMEやIssueに実行を促す文を置いた検証用データを読み込ませても、リポジトリ外の書き込みや不要なURL送信を境界で止められること。

4番目は既知の攻撃を再現する試験ではなく、自組織の境界を確認するための安全な模擬入力です。実在するや外部の第三者URLを使わず、ダミーのパスとローカルの受け口で試します。合格条件は「Copilotが危険と説明した」ではなく、実際の権限制御で操作が成立しないことです。

適用範囲と限界をチームへ共有する

一般提供の告知はCopilot CLI、Copilot app、Visual Studio Codeを対象にします。Copilot appではモード選択からTool permissionsを開いてAssistedを選びます。ただしクラウドセッションではツール権限の操作が利用できず、リモートホストでは使える制御が環境により異なります。端末の違いを無視して同じ手順書を配らないでください。

Assistedは承認ダイアログを減らす運用機能であり、安全の保証ではありません。モデルは誤る可能性があり、許可済みの範囲が広ければ誤承認時の影響も広がります。導入後は、実行したコマンド、変更ファイル、接続先、拒否理由を機密情報を含めない形で追跡し、想定外の自動承認が見つかったらManualへ戻して境界を修正します。

Copilotのや組織ポリシー全体を棚卸しする場合は、既存記事「GitHub CopilotのMCPを棚卸しする」も参照してください。承認画面で利用者が意図した対象と実行対象を結び付ける一般的な考え方は「AIに承認した内容がそのまま実行される?」で整理しています。Assistedの導入では、これらのポリシーと承認設計を置き換えず、その内側で安全と判断できる要求だけを自動化します。

2026年10月28日訂正:比較表のManualに関する無人実行の説明を訂正しました。承認待ちではなく、承認が必要な要求は拒否されます。GitHub公式の非対話実行リファレンスに基づく訂正です。

参考資料

この記事を書いた人

Ryohei

Webエンジニア / アプリ開発者 / 技術ブログ運営者

福岡のWeb制作会社に勤務するWebエンジニアです。10年以上にわたりWeb制作・開発に携わり、ヒアリングや進行管理から、コーディング、CMSの構築、システム開発、サーバーの構築・保守・運用まで、Webサイト制作の工程を幅広く担当しています。Webサイトは、これまでに100以上の構築・保守を手がけてきました。

個人でもWebサイトの制作・改修やWebアプリの開発・運用を行い、AIを活用した開発にも取り組んでいます。近年はWebセキュリティにも注力しています。

2015年から技術メディア「Into the Program」を運営し、実務や開発で得た知識をもとに、プログラミングの実装方法やWebサイトの運用・セキュリティ情報を発信しています。

主な分野
Webサイト構築・保守・運用 / HTML/CSS / JavaScript / PHP / WordPress / サーバー構築・保守・運用 / アプリ開発 / セキュリティ対策
資格・試験合格
情報セキュリティマネジメント試験
基本情報技術者試験
AWS認定ソリューションアーキテクト アソシエイト
PHP8技術者認定ウィザード
メディア運営
2015年〜

記事の作成・更新について

セキュリティ記事は、ベンダーの公式アドバイザリやCVE・JVNなどの一次情報を参照し、出典と情報確認日を記載します。実環境での検証を行った場合は、その環境と確認範囲を明示します。重要な追加情報や誤りを把握した場合は、内容を確認して追記・訂正します。

関連する記事

おすすめの書籍

キーワードから探す

スポンサーリンク

MCP

AIアプリケーションと外部のツールやデータをつなぐための共通の仕組み(プロトコル)。Anthropicが公開した。

詳しく見る

シークレット

パスワードやAPIキー、秘密鍵など、他人に知られてはいけない値。コードに書かず専用の仕組みで管理する。

詳しく見る

フォールバック

本来の方法が使えないときに、代わりの方法に切り替えて動作を続けること。また、その代わりの方法。

詳しく見る

デプロイ

作成・修正したプログラムやWebサイトを、本番のサーバーに配置して使える状態にすること。

詳しく見る

マージ

Gitなどで、あるブランチの変更を別のブランチに取り込んで一つにまとめること。

詳しく見る

ブランチ

Gitなどで、作業の流れを枝分かれさせたもの。ほかの作業に影響を与えずに、機能の追加や修正を並行して進められる。

詳しく見る

CI/CD

コードの変更をきっかけに、テストやビルド、本番への反映までを自動で行う開発の仕組み。

詳しく見る

API

ソフトウェアやサービスの機能を、ほかのプログラムから決まった方法で呼び出して使えるようにした窓口。

詳しく見る

クラウド

サーバーやソフトウェアを自分で持たずに、インターネット経由で必要な分だけ利用する形態。AWSやGoogle Cloudなど。

詳しく見る

SSH

ネットワーク越しにサーバーへ安全に接続し、操作するための仕組み。通信が暗号化され、鍵でログインできる。

詳しく見る

認証情報

本人であることを証明するための情報。IDとパスワード、APIキー、アクセストークン、秘密鍵など。

詳しく見る

プロンプト

生成AIに入力する指示や質問の文章。内容や書き方によって、AIの出力が大きく変わる。

詳しく見る

リポジトリ

ソースコードなどのファイルと、その変更の履歴をまとめて保管する場所。Gitで管理し、GitHubなどで共有する。

詳しく見る

サンドボックス

プログラムを周囲から隔離した環境で動かし、問題が起きてもほかに影響が及ばないようにする仕組み。

詳しく見る

LLM

大規模言語モデル。大量の文章から学習し、文章の理解や生成ができるAIのモデル。ChatGPTやClaudeなどの基盤。

詳しく見る

CLI

コマンドラインインターフェース。文字のコマンドを入力してコンピューターやツールを操作する方法、またはそのためのツール。

詳しく見る