NuGetの長期APIキー廃止へ―Azure DevOps利用者は30日以内の更新対応が必要

2026年8月18日 12:29

印刷

記事提供元:Tech Times

NuGet.orgは2026年8月17日、新たに作成するAPIキーの最大有効期間を従来の365日から30日に短縮した。8月17日より前に作成された既存のAPIキーも、当初の有効期限にかかわらず11月1日に失効する。

NuGet.orgへのパッケージ公開を自動化している開発者や組織は、それまでにAPIキーを更新できる運用を整えるか、OpenID Connect(OIDC)を利用する「NuGet Trusted Publishing」への移行を検討する必要がある。GitHub ActionsとGitLab CIの利用者にはTrusted Publishingへの移行が推奨されているが、それ以外のCI/CD環境では、現時点で短期間のAPIキーを安全に更新する仕組みが必要となる。

■新規APIキーは最長30日、既存キーは11月1日に失効

2026年8月17日以降、NuGet.orgで新たに作成するAPIキーの最大有効期間は30日となり、作成画面から365日の選択肢が削除された。8月17日より前に作成されたキーは、設定済みの有効期限にかかわらず11月1日に失効する。

例えば、2026年初めに作成し、2027年まで利用できる想定だったキーも11月1日以降は使えない。リポジトリやCI/CDサービスのシークレットに既存キーを登録している場合、対応しなければNuGet.orgへのパッケージ公開処理が失敗する可能性がある。

Microsoftは、NuGet.orgにパッケージを公開する開発者に対し、公開ワークフローを早期に確認するよう求めている。11月1日は単なる確認日ではなく、既存キーからの移行を完了させる期限として扱う必要がある。

■長期にわたって有効な認証情報のリスク

NuGet.orgのAPIキーは、パッケージを公開する権限を与える認証情報である。リポジトリのシークレットやビルド設定などからキーが漏洩した場合、そのキーが失効または削除されるまで、不正なパッケージの公開に利用されるおそれがある。

有効期間が長いほど、漏洩した認証情報を第三者が利用できる時間も長くなる。最大有効期間を30日に短縮する措置は、この悪用可能な期間を抑えることを目的としている。一方、Microsoftは、有効期間の短縮だけでAPIキーに伴うリスクがなくなるわけではないとも説明している。

Microsoftの.NETチームは、変更の背景として、盗まれた認証情報を利用したNx Consoleのサプライチェーン侵害を挙げている。悪意あるバージョンのNx Consoleが公開され、Nx開発チームによると、削除されるまでの約36分間に約6,000回のアクティベーションが記録された。

この侵害では、悪意あるNx ConsoleのVisual Studio Code拡張機能を通じてGitHub従業員の端末も侵害され、GitHubが所有する内部リポジトリへの不正アクセスとデータ流出につながった。米サイバーセキュリティ・社会基盤安全保障庁(CISA)は2026年5月28日に注意喚起を公表し、悪意あるNx Consoleバージョンに割り当てられた脆弱性を、悪用が確認された脆弱性をまとめるKEVカタログに追加した。

■APIキーを継続利用する場合の対応

APIキーを引き続き利用するチームは、30日以内に期限切れとなることを前提に公開処理を設計する必要がある。担当者がカレンダーを見て手動で交換するだけでは、更新漏れや担当変更によってパイプラインが停止する可能性があるため、可能な範囲で安全な更新手順を運用に組み込むことが重要となる。

Microsoftは、NuGet.orgへパッケージを公開するすべてのワークフローを棚卸しし、8月17日より前に作成されたキーを特定するよう案内している。また、キーの権限と対象パッケージを必要最小限に制限し、ソースコードやビルドログへ記録しないこと、紛失や漏洩が判明したキーを直ちに削除することも求めている。

キーの有効期限を知らせる通知が、現在も監視されているアカウントに届くかどうかも確認しておきたい。NuGet.orgのWeb画面を利用した手動のパッケージ公開は、引き続き利用できる。

Microsoftは、APIキーの最大有効期間を将来さらに短縮する可能性にも言及している。長期的には、キーの定期交換だけでなく、永続的な公開用シークレットを保存しない方式への移行が選択肢となる。

■OIDCを利用するNuGet Trusted Publishing

NuGet Trusted Publishingは、CI/CDワークフローがOIDCを通じてNuGet.orgへ認証する仕組みで、2025年9月に提供が開始された。あらかじめ固定のAPIキーをCI/CD環境へ保存する代わりに、ワークフローの実行時に短期間だけ有効な認証情報を取得する。

ワークフローが実行されると、CI/CDプラットフォームが署名付きのOIDCトークンを発行する。NuGet.orgは、そのトークンを、パッケージ所有者が登録した信頼ポリシーと照合する。ポリシーには、リポジトリ、ワークフローファイル、必要に応じて実行環境などの情報が設定される。

検証に成功すると、NuGet.orgはその公開処理で使用する一時的なAPIキーを発行する。このキーは通常約1時間で失効し、OIDCトークンと一時キーはジョブごとに対応する。情報処理の構造としては、保存済みの共通シークレットを読み出すのではなく、実行中のワークロードのIDを確認して、その場で限定的な認証情報を渡す方式となる。

これにより、長期間有効な公開用APIキーをリポジトリやCI/CDサービスへ保存する必要がなくなり、固定キーの漏洩と長期的な再利用に伴うリスクを抑えられる。

■信頼ポリシーの権限範囲にも注意

Trusted Publishingの信頼ポリシーは、ユーザーまたは組織といったパッケージ所有者に関連付けられ、その所有者が管理するパッケージに適用される。複数のパッケージを同じアカウントや組織で管理している場合は、登録したワークフローにどの範囲の公開権限が与えられるかを確認しておく必要がある。

GitHub Actionsを利用する場合は、公開を実行するジョブだけにOIDCトークン発行用の権限を与え、ビルドやテストなど、公開を必要としないジョブには付与しない構成が望ましい。GitHub ActionsのEnvironmentに承認ルールを設定しているチームは、信頼ポリシーでもそのEnvironmentを指定することで、公開ワークフローへの統制を加えられる。

固定キーが不要になることだけで安全性を判断するのではなく、リポジトリ、ワークフロー、実行環境、パッケージ所有者の関係を確認し、公開権限を必要な処理へ限定することが重要となる。

■GitHub ActionsとGitLab CIには移行を推奨

Microsoftは、GitHub ActionsとGitLab CIからNuGet.orgへ公開している利用者に、Trusted Publishingへの移行を推奨している。

GitHub Actionsでは、NuGet.orgでパッケージ所有者、リポジトリ、ワークフローファイルなどを指定した信頼ポリシーを作成する。そのうえで、公開ジョブにOIDCトークンを要求する権限を付与し、「NuGet/login」アクションを使って一時キーを取得する。動作を確認した後は、従来のAPIキーをCI/CDサービスのシークレットから削除する。

公開に使用しないジョブまでOIDC関連の権限を持たせる必要はない。認証情報を取得できる範囲を公開ジョブに限定し、一時キーはパッケージを送信する直前に取得する構成が適している。

■Azure DevOps利用者は短期キーへの対応が必要

2026年8月17日時点で、MicrosoftがNuGet Trusted Publishingへの移行対象として明示しているのはGitHub ActionsとGitLab CIである。Azure DevOps Pipelinesを含むその他の公開環境では、30日以内に失効するAPIキーを安全に利用、更新できるようにしておく必要がある。

Microsoftは、対応するCI/CD環境を追加した際に情報を公開するとしているが、Azure DevOpsへの対応時期は示していない。このためAzure DevOpsからNuGet.orgへ自動公開しているチームは、既存キーが失効する11月1日までに短期キーへ移行し、継続的に更新できる運用を整える必要がある。

■パッケージ公開は短期的なワークロードIDへ

パッケージレジストリでは、長期間有効な静的シークレットの代わりに、CI/CDワークフローのIDを確認して短期間の認証情報を発行する方式が広がっている。

この方式では、権限のあるワークフローが実行された時点で認証情報を取得し、公開処理の終了後に短時間で失効させる。リポジトリやCI/CD環境へ長期キーのコピーを残し続けないため、認証情報の保管場所と有効期間を減らせる点が特徴だ。

NuGet.orgのAPIキー変更は、既存の自動公開パイプラインに直接影響する。開発者は、利用中のCI/CD環境、キーの作成日と期限、公開対象のパッケージ、キーに与えた権限を確認し、11月1日までに必要な移行を完了させる必要がある。

■注目ポイントQ&A

●2026年8月17日より前に作成したAPIキーはどうなりますか?

当初設定した有効期限にかかわらず、2026年11月1日に失効します。それまでに新しいAPIキーへ切り替えるか、利用環境が対応している場合はTrusted Publishingへ移行してください。

●8月17日以降に作成するAPIキーの有効期間は何日ですか?

最大30日です。従来の365日という選択肢は利用できません。APIキーを継続して使う場合は、短い有効期間に対応できる更新手順を整える必要があります。

●NuGet Trusted PublishingではAPIキーがまったく使われないのですか?

公開処理では、NuGet.orgがOIDCトークンの検証後に発行する一時的なAPIキーが使われます。利用者が固定のAPIキーをあらかじめ作成し、CI/CD環境へ長期間保存する必要がない点が従来方式との違いです。

●Azure DevOps PipelinesからTrusted Publishingを利用できますか?

2026年8月17日時点では、MicrosoftはGitHub ActionsとGitLab CIの利用者にTrusted Publishingへの移行を案内しています。Azure DevOps Pipelinesから公開している場合は、現時点では30日以内に失効するAPIキーを更新できる運用を準備する必要があります。

●APIキーを継続利用する場合、何を確認すべきですか?

NuGet.orgへ公開するワークフローと使用中のキーを棚卸しし、権限と対象パッケージを必要最小限にしてください。ソースコードやログへキーを記録せず、紛失や漏洩が判明した場合は直ちに削除することも重要です。

元記事: NuGet Kills 365-Day API Keys: GitHub Actions Can Go Keyless, Azure DevOps Cannot

※この記事はTech Timesから提供を受けた記事を日本向けに翻訳・編集したものです。

関連キーワード