最終確認 約5分で読めます 開発者向けセキュリティ

npm granular access token(GAT)の2FAバイパス制限 対象と対象外

npmの2FAバイパス設定つきgranular access tokenへの制限を、GitHub公式発表にもとづき整理。GitHub PAT・GitHub Appトークン・GITHUB_TOKENが対象外である根拠と、CI/CDでの対応手順をまとめました。

答え 対象外のGitHubトークン 3 種類 npm GATは対象

この記事は、海外の一次情報をAIエージェントが調査・検証・翻訳して整理したものです。製品やサービスの実使用にもとづく体験談ではありません。

結論:対象はnpmのGATだけ、GitHub側の3種のトークンは対象外

npmが2026年7月に制限したのは、npmjs.com側で発行し「bypass 2FA(2FAをバイパスする)」設定を入れたgranular access token(GAT)だけです。GitHubは2026年7月31日付のChangelog記事で、この制限の範囲について次のように明記しています。

This only impacts npm granular access tokens. This does not affect GitHub personal access tokens, GitHub App tokens, or GITHUB_TOKEN in Actions.

GitHub Personal Access Token(PAT)、GitHub Appトークン、GitHub Actionsが自動発行するGITHUB_TOKENの3種は、GitHubの説明によればこの制限の対象外です。npmはGitHubが運営していますが、npmのアクセストークンとGitHubのトークンは別の体系であり、2025年12月時点のnpm公式ドキュメント「About access tokens」にもGitHub PAT・GitHub Appトークン・GITHUB_TOKENへの言及はありません。CIの設定に保存しているトークンが、npm側のGATなのかGitHub側のトークンなのかを確認することが最初の判断軸になります。

条件別の早見表:自分のトークンは対象か

使っているトークン発行元今回の制限の対象か
npm granular access token(bypass 2FA設定あり)npmjs.com対象。機微操作に対話的な2FAチャレンジが必須
npm granular access token(bypass 2FA設定なし)npmjs.com対象外(bypass 2FA設定を入れていないトークンへの言及は無い)
GitHub Personal Access Token(PAT)GitHub対象外とGitHubが明記
GitHub App tokenGitHub対象外とGitHubが明記
GitHub Actionsの GITHUB_TOKENGitHub Actions(自動発行)対象外とGitHubが明記

「対象」に該当する操作は、GitHubの7月31日付の説明によれば、トークンの作成・削除、パッケージのアクセス権・メンテナー・信頼できるパブリッシング設定の変更、組織・チームのメンバーシップとパッケージ権限の管理です。7月8日付の発表では、これに加えてパスワード・メール・プロフィール・2FA設定の変更も対象操作として挙げられていました。

タイムラインを整理

GitHubの発表は2段階に分かれており、書きぶりの違いに注意が必要です。

  • 2026年7月8日:GitHubは、2FAバイパスを有効にしたGATについて、上記の機微操作に対話的な2FAチャレンジを必須にすると予告。適用開始の時期は「2026年8月上旬になる見込み」という書き方でした。
  • 2026年7月31日:GitHubは同じ制限を「What now requires an interactive 2FA challenge(現在、対話的な2FAチャレンジが必要になっている操作)」という見出しのもとで説明。現在形で「もう実行できない」と書かれており、7月31日時点ではすでに運用が始まっているとみられます。
  • 2027年1月ごろ(目標):GitHubは、2FAバイパストークンから直接publishする権限も取り除く計画を示しています。実現すると、このトークンでできることはプライベートパッケージの読み取りと、メンテナーが2FAで承認するstaged publishingだけに絞られる予定です。7月31日の記事は、この変更を「Coming next」という見出しの下に置いており、7月31日の時点ではまだ直接publishの制限には至っていないと読み取れます。

対応手順

  1. CI/CDのシークレット一覧を確認し、npmへのpublishに使っているトークンが何かを特定する。
  2. そのトークンがnpmjs.com発行のgranular access tokenで、かつ「bypass 2FA」設定が入っているかを確認する。npmのアカウント設定のトークン一覧画面で確認できる。
  3. bypass 2FA設定が入ったGATで、トークンの作成・削除やパッケージ設定の変更などをCIから自動実行している場合は、対話的な2FAチャレンジが必要になっている可能性があるため、該当する自動化ステップを洗い出す。
  4. CIからのnpm publish自体をbypass 2FA設定のGATで行っている場合は、2027年1月ごろに予定されている次の段階に備え、npm公式が推奨するTrusted Publishing(OIDC)またはstaged publishingへの移行を検討する。
  5. GitHub PAT・GitHub Appトークン・GITHUB_TOKENのみを使っている場合は、GitHubの説明の通り今回の制限の対象外なので、追加対応は不要と判断できる。

注意点

この件の一次情報はGitHub(github.blog)のChangelog記事とnpm公式ドキュメントのみで、独立した第三者による裏づけ記事は確認できていません。GitHub PAT・GitHub Appトークン・GITHUB_TOKENが対象外であるという整理も、GitHub自身の発表にもとづく内容です。

2027年1月ごろのdirect publish制限は、GitHubが「targeting(目標)」としている予定であり、確定した実施日ではありません。npm公式ドキュメント「About access tokens」は2025年12月9日が最終編集日で、2026年8月1日時点で235日前の情報にあたります。npmのトークン仕様は変わりうるため、CIの設定を変更する前に、npmおよびGitHubの公式ドキュメントで最新の状態を確認してください。

参考にした情報源

3件のうち0 が公的機関の公開資料です。

  1. Restricting npm bypass-2FA granular access tokens

    github.blog参照 2026-08-01

  2. npm install-time security and GAT bypass2fa deprecation

    github.blog参照 2026-08-01

  3. About access tokens | npm Docs

    docs.npmjs.com参照 2026-08-01