New RelicのAPI Keys画面に、ずっと欲しかった3つの機能がついに追加されました!User keyの最終利用日時(Last used)、キーの無効化と再有効化(Deactivate / Activate)、Ingest keyへのチーム所有者(Owning team)です。退職者や異動者が残していったキーの棚卸しを実際にやってみたので、画面の操作とNerdGraphでのやり方をご紹介します。
API Keyの棚卸しで困っていたこと
New Relicを長く使っていると、検証用に発行したUser keyや、チームごとに作ったLicense keyがいつの間にかたまっていきます。棚卸しをしようと一覧を開いても、「このキーはまだどこかで使われているのか」「消したら本番のデータ送信が止まるのではないか」が画面からは分からず、結局そのまま放置してしまう、というのはよくある話ではないでしょうか。
とくに困るのが、人の出入りに伴うキーの扱いです。退職者の発行したUser keyはCIやスクリプトに埋め込まれたままではないか。部署異動した人のキーはいつ止めてよいのか。作った本人が異動してしまったLicense keyは、いま誰が面倒を見ているのか。自分の周りでも、「キーの持ち主を探して各チームに聞いて回ったら一週間かかった」「不要だと思って消したキーが実はバッチで使われていた」という相談を何度も聞いてきました。キーの管理は、セキュリティの話であると同時に、本番を止めないための運用の話でもあります。
この「API Keyの一覧を見ても何も判断できない」状態は、New Relicを使っているお客様から本当によく相談をいただくFAQでした。「最後に使った日は分からないの?」「消さずに止めるだけってできないの?」と聞かれるたびに、自分も歯がゆい思いをしていました。それがついに、3つまとめて実装されました。まさにこの困りごとに直接効く、待望のアップデートです。ひとつずつ見ていきます!
ついに来た!今回追加された3つの機能
Last used(最終利用日時)は、そのUser keyが最後に使われた日時を一覧に表示する機能です。これまでは「使われているかどうか」を推測するしかありませんでしたが、しばらく使われていないキーをひと目で見つけられるようになりました。地味に見えて、棚卸しをしたことがある人ならいちばん喜ぶ機能だと思います!
Deactivate / Activate(無効化・再有効化)は、キーを削除せずに一時的に止める機能です。無効化したキーは認証が通らなくなり、必要なときはいつでも再有効化できます。インシデントのとき、漏れた疑いのあるキーを即座に止められます。削除前の「止めても誰も困らないか」という確認にも使えます。
Owning team(チーム所有者)は、Ingest key(License key)に担当チームを割り当てる機能です。キーそのものに持ち主の情報が付くので、ローテーションや無効化の前に「誰に声をかければよいか」が一覧から分かります。
対象になるキーの種類は機能ごとに違います。
| 機能 | User key | License key(Ingest key) | Browser key |
|---|---|---|---|
| Last used(最終利用日時) | ○ | × | × |
| Deactivate / Activate(無効化・再有効化) | ○ | ○ | ○ |
| Owning team(チーム所有者) | × | ○ | × |
Deactivate / Activateはどのキーにも使えますが、アカウント作成時に作られるデフォルトのキーだけは無効化できません。
3つともUIだけでなくNerdGraph(New RelicのGraphQL API)からも扱えるので、定期的な棚卸しの自動化もできます。こちらは後半でご紹介します。
こんな場面で効きます
3つの機能が実際にどう効くのか、自分が「早く来てほしい!」といちばん待っていた2つの場面でお話しします。年度の切り替わりや組織変更のたびに頭を悩ませてきた、あの場面です。
退職した人が残していったキー
User keyは発行したユーザーに紐づいていて、他の人に引き継ぐことはできません。New Relicからそのユーザーを削除すればUser keyも無効になりますが、実際には「削除する前に、そのキーがCIやバッチで使われていないか確かめたい」という場面のほうが多いのではないでしょうか。ここでLast usedの出番です。退職日のあとも使われ続けているキーがあれば、どこかに埋め込まれている証拠なので、持ち主が不在でも手がかりが残ります。確かめたうえでDeactivateすれば、知らないところで動いている処理が止まったときに、すぐ気づいて差し替えられます。
一方で、その人が作ったLicense keyはユーザーを削除しても残り続けます。これまでは「誰が作ったか分からないキー」が増える一方でしたが、Owning teamを付けておけば、作った本人がいなくなってもキーの持ち主はチームとして残ります。
部署異動した人のキー
異動の場合はユーザーが残るので、キーは有効なままです。元の部署の人は「もう使っていないはず」と思い、異動先の人はキーの存在すら知らない、という宙ぶらりんの状態になりがちです。Last usedで直近の利用がないことを確かめ、Deactivateでいったん止めて、異動先からも元の部署からも何も言われなければ削除する、という流れで安全に片づけられます。異動先で引き続き必要なら、Activateで戻すだけです。
これまでは「本人に聞く」以外に手がありませんでした。画面で確かめて、止めて、戻せる手段がそろったのは、今回のアップデートのうれしいところです!
前提と権限
API Keys画面は、New Relicにログインして[Administration]から[API Keys]を開くか、https://one.newrelic.com/api-keysに直接アクセスすると表示されます。EUリージョンのアカウントはone.eu.newrelic.com、JPリージョンのアカウントはone.jp.newrelic.comに読み替えてください。本記事の画面は2026年10月時点のUSリージョンのものです。
操作ごとに必要な権限は次のとおりです。
- Last usedとOwning teamを見る … Key read access
- Owning teamを付ける・外す … Key edit access
- 自分のUser keyを無効化・再有効化する … 追加の権限は不要
- 他のユーザーのUser keyを無効化・再有効化する … Manage all user API keys
自分のキーを止めるだけなら特別な権限は要りません。組織全体の棚卸しをする場合は、管理者にManage all user API keysを含むロールをもらっておくとスムーズです。
設定方法
ここからは実際の画面で、棚卸しに使う操作を順番に見ていきます。
1. [Administration]から[API Keys]を開く
画面右下のユーザーメニューに[Administration]があります。直接https://one.newrelic.com/api-keysを開いても同じ画面に着きます。
2. [Last used]列で、最後に使われた日を確認する
一覧の[Last used]列に、そのUser keyが最後に使われた日時が出ます。使われていないキーは、ここが古い日付のままか空欄になっています。
3. キーの行の三点リーダーから[Deactivate key]を選んで確定する
キーの行の右端にある[...]を押すと[Deactivate key]が出ます。確認のダイアログで確定すると、そのキーは即座に認証が通らなくなります。
4. [Status]を[Deactivated]で絞り込み、[Activate key]で戻す
無効化したキーは一覧から見えなくなるので、[Status]フィルターで[Deactivated]を選んで表示します。行の[...]から[Activate key]を選べば元どおりです。
5. Ingest keyの行の[Team]列で[Edit]を押し、チームを選んで[Save]
License keyの行にカーソルを合わせると、[Team]列に[Edit]が現れます。チームを選んで[Save]を押すだけで、持ち主の情報がキーに付きます。
Owning teamは1つのキーに複数のチームを付けられます。付けたあとは[Team]フィルターでチームごとのキーを一覧できるので、「〇〇チームが持っているキーを全部見たい」というときにも使えます。
実際に棚卸しをやってみた
自分のアカウントで、たまっていたUser keyを対象に棚卸しをしてみました。やったことはシンプルで、「Last usedで候補を絞る → Deactivateで止める → しばらく待つ → 問題がなければ削除する」の4段階です。
まず[Last used]列を見て、直近1か月以上使われていないキーに目星を付けました。以前なら「たぶん使っていないはず」で止まっていたところが、日付で裏付けが取れるのは安心感が違います。次に、候補のキーをいきなり削除せず、[Deactivate key]で止めました。止めたキーを使っている処理があれば認証エラーで気づけるので、「消してから本番が止まった」という最悪のパターンを避けられます。
数日待って、誰からも「動かなくなった」という声が上がらなければ削除します。もし声が上がったら、[Activate key]で元に戻すだけなので、再発行や設定の書き換えは要りません。削除の前に無効化を挟むひと手間で、棚卸しのハードルがかなり下がったと感じました。
License keyについては、Last usedがまだ表示されない代わりに、Owning teamを付けておきました。これで次に棚卸しをするときに、持ち主探しから始めなくて済みます。
License key(Ingest key)を無効化すると、そのキーで送信しているデータの取り込みが再有効化するまで止まります。エージェントやFlex、ログ転送などで使われている可能性があるので、Owning teamのチームに声をかけてから止めるのがおすすめです。
NerdGraphでもできる
同じことはNerdGraphからもできます。GraphiQL(https://api.newrelic.com/graphiql)で試せるので、まずは最終利用日時の取得からどうぞ。keyUsageにキーのIDを渡すと、lastUsedAtが返ってきます。配列で複数のIDを渡せるので、一覧で取ったIDをまとめて投げられます。
query {
actor {
apiAccess {
keyUsage(keyIds: "USER_KEY_ID") {
keyId
lastUsedAt
}
}
}
}
無効化とチームの割り当ては、更新のミューテーションapiAccessUpdateKeysで行います。enabledで有効と無効を切り替え、owningTeamIdsにチームのIDを渡します。ここで渡すのはキーの文字列ではなくキーのIDです。
mutation {
apiAccessUpdateKeys(
keys: {
ingest: {
keyId: KEY_ID,
enabled: true,
owningTeamIds: [TEAM_ID]
}
}
) {
updatedKeys {
id
name
enabled
}
errors {
message
}
}
}
公式ドキュメントでは、enabled: trueがキーを無効化し、enabled: falseが有効のまま保つ、と説明されています。フィールド名から受ける印象と逆なので、本番のキーに対して実行する前に、検証用のキーで挙動を確かめてから使ってください。
注意点
試していて気をつけたほうがよいと感じた点をまとめておきます。
- Last usedはUser keyのみ対応です。License keyとBrowser keyの行には表示されません
- Owning teamはLicense key(Ingest key)のみ対応です。User keyとBrowser keyには付けられません
- アカウント作成時に作られるデフォルトのキーは無効化できません。ローテーションが必要な場合はサポートに連絡してください
- 他のユーザーのUser keyを止めるにはManage all user API keys権限が必要です
- NerdGraphの
enabledは、上に書いたとおり、検証用のキーで挙動を確かめてから使ってください
最後に
いかがでしたでしょうか。
Last usedで「使われていないキー」を根拠をもって見つけ、Deactivateで削除の前に安全に止め、Owning teamで持ち主探しをなくす、という流れがUIだけで完結するようになりました。退職や異動のたびに「このキー、どうしよう」と手が止まっていた方にとっては、長らくお待たせしました、と言いたくなる待望のアップデートです。「消したら本番が止まるかも」という不安なくキーをローテーションできるので、棚卸しがぐっと楽になります。
操作そのものは数分で終わりますので、年度末や組織変更のタイミングに合わせて、ぜひお試しください!
参考
New Relic株式会社のQiita Organizationでは、
新機能を含む活用方法を公開していますので、ぜひフォローをお願いします。



