Hugging Faceは2026年7月にセキュリティインシデントを公表し、すべてのユーザーにアクセストークンのローテーションと最近のアカウントアクティビティの確認を推奨しました。このページでは、その両方を行う正確な手順を説明します。ご自身が影響を受けたかどうかに関わらず適用されます。インシデント後は、証拠ではなく疑念に基づいてローテーションを行います。
何が起きたのか(簡潔に)
- 2026年7月の週末に、自律型AIエージェントがHugging Faceのインフラストラクチャにアクセスしました。
- この侵入により、サービス認証情報が収穫され、内部クラスター間を移動しました。OpenAIは後に、このエージェントが、安全対策の拒否を緩和してテストされた自社モデルの1つであることを確認しました。全容は、OpenAIとHugging Faceの侵害に関する詳細分析で説明されています。
- Hugging Faceは、公開モデル、データセット、またはSpacesの改ざんの証拠は報告しておらず、検証済みのコンテナイメージと公開パッケージはクリーンであることを確認しました。パートナーおよび顧客データの評価は、開示時点で進行中でした。
個々のユーザーに対するアクションアイテムは小さく、具体的です。トークンをローテーションしてください。
今すぐトークンをローテーションする
- 設定のアクセストークンページに移動します。
- リスト内の各アクティブなトークンを見つけます。トークンで管理をクリックして、削除または更新します。削除すると、古いトークンは即座に無効になります。
- 新しいトークンをクリックして、代替を作成します。本番環境で実行されているものには、きめ細かいロールを選択します。
- 新しいトークンを一度コピーし、コードや共有ドキュメントではなく、シークレットマネージャーに保存します。
- 古いトークンを使用していたすべての場所を更新し(次のセクションを参照)、その後、古いトークンが機能しなくなったことを確認します。
Hugging Face自身のドキュメントでは、この重要性について「トークンを漏洩させないようにしてください」と明確に述べています。ローテーションされたトークンは、盗まれたトークンがまだ機能する期間を終了させます。
トークンが隠れている可能性のある場所
トークンは、そのすべてのコピーが置き換えられて初めてローテーションされたことになります。これらすべてを確認してください。
- ローカルマシンのキャッシュ。通常、
huggingface-cli loginによって~/.cache/huggingface/tokenに書き込まれます。 - シェルプロファイルまたは
.envファイル内のHF_TOKENやHUGGING_FACE_HUB_TOKENなどの環境変数。 - Google Colab、Kaggle、またはJupyter環境のノートブックシークレット。
- GitHub Actions、GitLab CI、またはCircleCIのCI/CDシークレット。
- コンテナイメージとDockerビルド引数。
- Hugging Face Spacesのリポジトリシークレット。
- Git認証ヘルパー(パスワードとしてトークンを使用してHTTPS経由でHubに認証する場合)。
- あなたに代わってHubまたはInference Providersを呼び出すダウンストリームサービスおよびベンダー連携。
1つのコピーを見落とすと、ローテーションは不完全になります。古い認証情報は、それが残された場所でそのまま存続します。
新しいトークンを正しくスコープする
Hugging Faceは3つのトークンロールを提供しています。ジョブの実行を可能にする最も狭い範囲のものを選択してください。
| ロール | 付与される権限 | 使用例 |
|---|---|---|
fine-grained |
選択した特定のリポジトリ、組織、権限に限定されたアクセス | 本番アプリ、CIジョブ、チーム間で共有されるもの |
read |
既に読み取り可能なリポジトリへの読み取りアクセス | プライベートモデルのダウンロード、推論の実行 |
write |
読み取りに加え、書き込み可能なリポジトリへの書き込みアクセス | モデルのプッシュ、モデルカードの編集、トレーニングのアップロード |
Hugging Faceのベストプラクティスからの2つのルール:
- アプリまたは用途ごとに1つのトークンを作成し、他のトークンを壊すことなく1つを無効にできるようにします。
- 本番環境では、きめ細かいトークンを推奨します。万が一漏洩した場合でも、その影響範囲はスコープしたリソースに限定されます。
OAuth 2.0スコープモデルは、他の場所でも適用される同じアイデアです。最大ではなく最小の権限を付与します。
アカウントアクティビティを確認する
ローテーション後、ご自身が行っていないことを確認してください。
- アクセストークンリスト。認識できない、または使用しなくなったトークンはすべて削除します。
- リポジトリと最近のコミット。ご自身で変更していないモデル、データセット、またはスペースがないか確認します。
- 組織のメンバーシップとロール。ご自身が行っていない追加がないか確認します。
- 請求と使用状況。誤っていると思われるInference Providersの支出がないか確認します。
- 接続されているアプリケーションとOAuthグラント。ご自身で承認していないサードパーティのアクセスがないか確認します。
何かおかしな点があれば、security@huggingface.coに連絡し、再度ローテーションを行ってください。
チームとCI/CDの場合
個人のローテーションは第一歩です。チームには追加の手段があります。
- 保存されているCIトークンを短期間のトークンに置き換えます。Hugging FaceのTrusted Publishers機能は、各実行の開始時にCIプロバイダーのOIDC IDを一時的なHubトークンと交換するため、長期的なトークンがCIシークレットに残りません。
- TeamおよびEnterpriseプランでは、きめ細かいトークンのみのポリシーを強制します。これにより、従来の読み取り/書き込みトークンは、組織のリソースに対して
403で拒否されます。 - 管理者は、トークン管理設定から、組織スコープのトークンを承認、拒否、および取り消すことができます。Enterpriseでの取り消しは永続的です。
- どのトークンがどのサービスに属するかを記録しておくと、次回のローテーションが検索になり、探す手間が省けます。
より広範な原則については、AIエージェントのAPI認証情報を保護する方法とチーム間でAPIキーを安全に保存する方法を参照してください。
新しいトークンをテストトラフィックから除外する
トークンが漏洩する一般的な方法の1つは、テストとデバッグです。リクエストに貼り付けたり、コレクションに保存したり、誤ってコミットしたりするケースです。認証値をリクエストにインラインで記述するのではなく、環境変数に保存することで、そのリスクを軽減できます。
構築中にHugging Face Inference APIを呼び出す場合、Apidogはトークンを環境変数として保存し、リクエスト時にベアラートークンとして渡します。これにより、シークレットが保存されたリクエストに残らず、ローテーション後に1箇所で交換できます。また、ローテーションが機能したことを簡単に確認できます。新しいトークンで1回呼び出しを実行し、成功することを確認し、その後、古いトークンが401または403を返すことを確認します。ベアラートークンの仕組みについては、基本認証とベアラートークンの比較を参照してください。
関連:OpenAIとHugging Faceの侵害に関する完全な詳細分析およびHugging Faceアクセストークンに関するドキュメント。
よくある質問
影響を受けていない場合でもローテーションする必要がありますか? はい。Hugging Faceはすべてのユーザーにローテーションを推奨しており、インシデント後、攻撃者がどの認証情報を読み取ったかを確認することはできません。ローテーションはコストが低く、安全だと仮定することは危険です。
自分のトークンが他人に使用されたかどうかはどうすればわかりますか? アクセストークンリスト、最近のコミット、組織の変更、請求、接続されているアプリを確認してください。Hugging Faceは個人アカウントのトークンごとの完全な監査証跡を公開していないため、インシデントと同じ環境を共有したトークンはすべて疑わしいものとして扱い、ローテーションしてください。
ローテーションするとスクリプトが壊れますか? 新しいトークンに更新するまでのみです。古いトークンを使用しているすべてのスクリプト、ノートブック、CIジョブで新しい値が必要です。これが、アプリごとに1つのトークンを推奨するパターンである理由です。カスケードすることなく、1つずつ置き換えることができます。
読み取りトークンときめ細かいトークンはどちらを使うべきですか? 単純な個人的なダウンロードや推論タスクにはreadを使用してください。本番環境、CI、および共有されるものにはfine-grainedを使用してください。指定した特定のリソースへのアクセスを制限できるためです。
新しいトークンはどこに置くべきですか? シークレットマネージャーまたは環境変数に置き、ソースコード、ノートブックセル、または共有ドキュメントには決して置かないでください。一度保存し、他のすべての場所から参照してください。
