Azure Cosmos DB Safe Key Rotationとは?キー更新前に確認すべき変更点と移行注意点

Azure Cosmos DBのキー ローテーションで最も怖いのは、「もう使っていないはず」と思って再生成したキーが、実はバッチ処理や古いアプリで使われていた、という事故です。2026年6月にPublic Previewとして案内された「Safe Key Rotation」は、Azure Cosmos DBのアカウントキーごとの最終使用日時を確認できるようにし、キー再生成やローカル認証の無効化をより安全に進めるための機能です。Azure UpdatesではID 562774の更新として「Public Preview: Safe key rotation for Azure Cosmos DB」がIn previewとして掲載されています。(マイクロソフト Azure)

結論から言うと、Azure Cosmos DBでアカウントキー認証を使っている環境では、Safe Key Rotationを「キーを回す直前の確認機能」として導入する価値があります。ただし、Public Previewのため本番運用の自動判定にそのまま組み込むのではなく、診断ログ、アプリ設定、Key VaultやCI/CDの参照先確認と組み合わせて使うのが現実的です。

目次

Azure Cosmos DBのSafe Key Rotationとは

Safe Key Rotationは、Azure Cosmos DBアカウントキーの利用状況を可視化し、キー ローテーション時の停止リスクを下げるための機能です。Microsoftの公式ブログでは、この機能により各アカウントキーが最後に使われた日時を確認でき、キー再生成やMicrosoft Entra IDへの移行前に判断しやすくなると説明されています。(Microsoft for Developers)

従来のキー ローテーションでは、管理者が「このキーはもう使われていないはず」と判断しても、実際には以下のような場所で使われ続けていることがありました。

見落としやすい利用元具体例起こり得る問題
古いアプリ設定App Service、Azure Functions、VM上の環境変数キー再生成後に接続エラーが発生する
定期実行ジョブ月次バッチ、年次処理、夜間集計ローテーション直後は問題なく見え、後日失敗する
共有された接続文字列チーム間でコピーされた設定、ローカル開発環境利用者を特定しにくい
CI/CDや運用スクリプトGitHub Actions、Azure DevOps、PowerShellデプロイやメンテナンス処理が失敗する
監視・分析ツール独自監視、データ抽出ツール本体アプリ以外の接続が切れる

Safe Key Rotationは、こうした「見えないキー利用」をゼロにする魔法の機能ではありません。役割は、キーごとの最終使用日時を見せることで、再生成してよいかを判断する材料を増やすことです。

何が変わるのか

今回のPublic Previewで重要なのは、キー管理の判断材料が増えた点です。公式ブログでは、Public Previewにより、各キーの最終使用タイムスタンプを確認できること、Azure portalのFeaturesブレードから有効化できること、キー再生成やローカル認証無効化の前にキーが使われていないことを確認しやすくなることが示されています。(Microsoft for Developers)

項目これまでの課題Safe Key Rotationでできること
キーの利用状況どのキーが最近使われたか分かりにくい各キーの最終使用日時を確認できる
キー再生成の判断利用者への聞き取りや推測に頼りがち実際の利用実績を見て判断しやすい
ローカル認証の無効化まだキー認証が残っているか不安が残るキーが使われていないことを確認してから進めやすい
移行計画Entra ID移行前の棚卸しが難しいキー利用が残るアプリを洗い出す手掛かりになる

特に大きいのは、「主観的な判断」から「観測データに基づく判断」へ寄せられることです。セキュリティ担当者にとってはキーの定期更新を進めやすくなり、開発者にとっては突然の認証エラーを避けやすくなります。

対象になる環境と影響範囲

Azure Cosmos DBのキー ローテーション手順の公式ドキュメントでは、対象としてNoSQL、MongoDB、Apache Cassandra、Apache Gremlin、Tableが示されています。(Microsoft Learn)

影響を受けやすいのは、次のような環境です。

環境確認すべき理由
アカウントキーまたは接続文字列でCosmos DBへ接続しているアプリキー再生成の影響を直接受ける
複数チームで同じCosmos DBアカウントを共有している環境どのチームがどのキーを使っているか不明になりやすい
定期バッチや運用スクリプトが多い環境普段のトラフィックだけでは利用有無を判断しにくい
Microsoft Entra ID認証へ移行中の環境ローカル認証を無効化する前の確認材料になる
セキュリティ監査でキー更新ルールを求められる環境ローテーションの根拠を残しやすい

一方で、すでにMicrosoft Entra ID認証へ完全移行しており、キー認証を無効化済みの環境では、直接的な利用頻度は低くなります。ただし、移行済みと思っている環境でも、古い運用スクリプトや検証用ツールに接続文字列が残っていることは珍しくありません。Safe Key Rotationは、その確認にも使えます。

Public Previewとして使う際の注意点

Safe Key Rotationは便利ですが、現時点ではPublic Previewです。Microsoft Learnのキー ローテーション記事では、Account Key Usage MetadataはPublic Previewであり、サービスレベルアグリーメントなしで提供され、本番ワークロードには推奨されないと説明されています。(Microsoft Learn)

そのため、実務では次のように扱うのが安全です。

注意点実務での対応
プレビュー機能である本番の自動ローテーション判定をこの情報だけに依存させない
有効化直後は十分な履歴がない可能性がある少なくとも定期ジョブの実行周期をまたいで観測する
最終使用日時だけでは利用元を特定できない診断ログやアプリ設定の棚卸しと併用する
「最近使われていない」ことは「今後も使われない」と同義ではない月次・四半期・年次処理を確認する
ポータル表示だけでは変更管理に残りにくい作業記録、チケット、承認履歴に判断根拠を残す

特に重要なのは、有効化した直後に「最終使用日時がないから未使用」と判断しないことです。Private Preview時点の説明では、利用データは有効化後から収集が始まるとされていました。(Microsoft for Developers) 月次バッチがある環境では、少なくともそのバッチが動くタイミングを待ってから判断する必要があります。

管理者が確認すべき設定

管理者は、Safe Key Rotationを有効化するだけでなく、キー認証をどの程度残すのか、Microsoft Entra IDへ移行するのかをセットで考える必要があります。

Azure portalで機能を有効化できるか確認する

Public Previewでは、Safe Key RotationをAzure portalのFeaturesブレードから有効化できるとされています。(Microsoft for Developers) まずは対象のAzure Cosmos DBアカウントで、機能が表示されるか確認します。

確認の流れは次のとおりです。

手順確認内容
Azure portalで対象のCosmos DBアカウントを開く本番・検証・開発のどのアカウントかを取り違えない
Settings配下のFeaturesを確認するSafe Key RotationまたはAccount Key Usage Metadataに相当する機能を探す
プレビュー機能として有効化する組織のプレビュー機能利用ルールに従う
Keys画面で最終使用日時を確認するPrimary、Secondaryなど各キーの利用状況を確認する
変更履歴に記録する有効化日、対象アカウント、作業者を残す

複数サブスクリプションや複数環境がある場合は、いきなり本番ではなく、開発・検証環境で表示や挙動を確認してから展開するのが無難です。

診断ログを有効にして利用元を追跡する

Safe Key Rotationで分かるのは、主に「そのキーが最後に使われた日時」です。どのアプリが使ったのかまで特定したい場合は、診断ログの併用が必要です。MicrosoftのPrivate Preview時点の説明では、診断ログを有効にすることで、User Agentや操作種類などの詳細なテレメトリを確認できるとされています。(Microsoft for Developers)

Azure Cosmos DBの診断設定では、Azure MonitorのLog Analyticsワークスペースへリソースログを送信できます。公式ドキュメントでも、診断設定を使ってAzure Cosmos DBのデータプレーン操作ログを収集できることが説明されています。(Microsoft Learn)

実務では、次のように役割を分けて見ると整理しやすくなります。

見る情報主な目的
Safe Key Rotationの最終使用日時キーが最近使われたかを判断する
診断ログどの種類の操作が発生しているかを確認する
User Agentや接続元情報利用元アプリの候補を絞る
アプリ設定・Key Vault・CI/CD変数実際にどのキーが設定されているかを確認する
デプロイ履歴キー切り替えがいつ反映されたかを確認する

「最終使用日時が更新され続けているが、どのアプリか分からない」という状態になったら、診断ログとアプリ設定の棚卸しを先に行うべきです。そこで原因を特定せずに再生成すると、停止リスクが残ります。

Azure Policyでローカル認証の方針を決める

キー認証を段階的に減らすなら、最終的にはローカル認証を無効化する方針も検討対象になります。Azure Cosmos DBには、ローカル認証を無効化してAzure Active Directory、現在のMicrosoft Entra IDによる認証を要求する組み込みポリシーが用意されています。(Microsoft Learn)

ただし、ポリシーをいきなりDenyで適用すると、新規作成や変更が止まり、現場のデプロイに影響することがあります。最初はAuditで現状を可視化し、キー認証が残るアカウントを把握してから、段階的にDenyやModifyを検討する方が安全です。

開発者が確認すべきアプリ側のポイント

開発者が見るべきポイントは、「コードがどの認証方式でCosmos DBに接続しているか」です。接続文字列を直接使っている場合、キー ローテーションの影響を受けます。Microsoft Entra ID認証やマネージドIDに移行できる場合は、長期的にはキー管理そのものを減らせます。

接続文字列の保管場所を洗い出す

最初に、Cosmos DBの接続情報がどこに置かれているかを確認します。

確認場所見るべき内容
Azure App Serviceの構成AccountEndpointAccountKeyを含む接続文字列がないか
Azure Functionsのアプリケーション設定CosmosDBConnectionなどの設定名でキーを参照していないか
Azure Key VaultCosmos DBキーや接続文字列のシークレットが残っていないか
Kubernetes Secret古い接続文字列をPodが参照していないか
GitHub Actions / Azure DevOpsCI/CD変数にCosmos DBキーが保存されていないか
ローカル開発設定appsettings.Development.json.envにキーが残っていないか
運用スクリプトPowerShell、Bash、Pythonなどで接続文字列を直書きしていないか

この棚卸しを行わずにSafe Key Rotationの表示だけを見ても、事故防止としては不十分です。特にローカル開発用の設定や古い運用スクリプトは、管理者の目に入りにくい場所に残ります。

Microsoft Entra ID認証への移行を検討する

Azure Cosmos DB for NoSQLでは、Microsoft Entra IDとRBACを使った接続が可能です。公式ドキュメントでは、キー ベース認証を無効化して、アプリケーションにMicrosoft Entra認証のみを使わせる手順が示されています。(Microsoft Learn)

ただし、ここで混同しやすいのが、Azureの管理権限とCosmos DBのデータアクセス権限です。Cosmos DB for NoSQLでは、データプレーンアクセスには専用のロール定義やロール割り当てが関係します。公式ドキュメントでも、データプレーンアクセスはアイテムの読み書きやクエリ実行などを対象とし、組み込みロールやカスタムロールを使って権限を付与すると説明されています。(Microsoft Learn)

つまり、開発者が「Azureポータルで共同作成者だからアプリも読めるはず」と考えるのは危険です。アプリの実行IDに、Cosmos DBのデータプレーン権限が適切なスコープで割り当てられているかを確認してください。

安全なキー ローテーションの進め方

Safe Key Rotationを使う場合でも、キー ローテーションの基本手順は変わりません。重要なのは、PrimaryとSecondaryを片方ずつ使い、アプリが新しいキーで安定して接続できることを確認してから古いキーを再生成することです。

Microsoft Learnでは、キー再生成に1分から複数時間かかる場合があり、ローテーション開始前にアプリがPrimaryまたはSecondaryのどちらかを一貫して使っていることを確認するよう説明されています。(Microsoft Learn)

Primary Keyを使っている場合

手順作業判断ポイント
1Safe Key RotationでPrimary Keyの最終使用日時を確認する現在使われているキーを把握する
2Secondary Keyを再生成する使っていない側を先に新しくする
3新しいSecondary Keyで接続テストする検証環境や一部インスタンスで確認する
4アプリ設定をPrimaryからSecondaryへ切り替えるKey Vaultや環境変数の反映漏れに注意する
5Safe Key RotationでPrimaryの利用が止まったことを確認する定期ジョブの実行周期も考慮する
6Primary Keyを再生成する旧Primaryを無効化する

公式ドキュメントでも、アプリがPrimary Keyを使っている場合は、Secondary Keyを再生成して検証し、アプリをSecondary Keyに切り替えてからPrimary Keyを再生成する流れが示されています。(Microsoft Learn)

Secondary Keyを使っている場合

手順作業判断ポイント
1Safe Key RotationでSecondary Keyの最終使用日時を確認する実際の利用状況を確認する
2Primary Keyを再生成する使っていない側を先に新しくする
3新しいPrimary Keyで接続テストする認証エラー、スロット差分、リージョン差分を見る
4アプリ設定をSecondaryからPrimaryへ切り替える全インスタンスへ反映されたか確認する
5Safe Key RotationでSecondaryの利用停止を確認するバッチや運用ツールも確認する
6Secondary Keyを再生成する旧Secondaryを無効化する

Secondary Keyを使っている場合は、Primary Keyを再生成して検証し、アプリをPrimary Keyに切り替えてからSecondary Keyを再生成する流れになります。(Microsoft Learn)

展開時に失敗しやすいポイント

Safe Key Rotationの導入で失敗しやすいのは、機能そのものよりも、運用設計の抜けです。特に次のパターンは注意してください。

失敗パターン原因対策
最終使用日時だけを見て即再生成する有効化前の利用履歴や低頻度ジョブを見落とす観測期間を決め、月次・年次ジョブを確認する
アプリは切り替えたが運用スクリプトが古いまま本番アプリ以外の棚卸し不足CI/CD、手動運用、監視ツールまで確認する
Key Vaultだけ更新してアプリが再読み込みしていないアプリ側の設定反映タイミングを誤解再起動、設定更新、シークレット参照の仕様を確認する
PrimaryとSecondaryを同時期に再生成するロールバック先がなくなる必ず片方ずつ切り替える
Entra ID移行後に権限不足で失敗するデータプレーンRBACの設定漏れ実行ID、ロール、スコープを事前に検証する
本番で初めて手順を試すプレビュー機能や反映時間を確認していない検証環境で作業ログを作ってから本番適用する

特にKey Vaultを使っている環境では、「Key Vaultの値を更新したから完了」と考えがちです。実際には、アプリがシークレットを起動時だけ読み込む構成なら、再起動や再デプロイが必要になる場合があります。キー ローテーションは、Cosmos DB側の作業ではなく、アプリ設定の反映確認まで含めて完了です。

導入前チェックリスト

Safe Key Rotationを有効化する前に、次の項目を確認しておくと、導入後の判断がぶれにくくなります。

チェック項目完了の目安
対象のCosmos DBアカウントを一覧化した開発、検証、本番を分けて管理できている
どのアプリがどのアカウントに接続しているか整理したアプリ名、環境、担当チームが分かる
PrimaryとSecondaryのどちらを使っているか確認した接続文字列やKey Vaultの値で確認済み
定期ジョブの実行周期を確認した月次・四半期・年次処理も含めて把握済み
診断ログの送信先を決めたLog Analyticsなどで確認できる
ローテーション時のロールバック手順を決めた切り戻し先のキーと反映方法が明確
変更管理の承認フローを決めた作業日時、承認者、影響範囲を記録できる
Entra ID移行の方針を決めたキー認証を残すのか段階的に廃止するのか明確

このチェックリストを満たしてからSafe Key Rotationを使うと、単なる画面確認ではなく、運用改善として活用できます。

まず何をすべきか

Azure Cosmos DBでアカウントキー認証を使っているなら、最初にやるべきことはキーの再生成ではありません。まず、対象アカウントを洗い出し、Safe Key Rotationを検証環境で有効化し、キーの最終使用日時がどのように表示されるかを確認してください。

そのうえで、本番環境では次の順序で進めるのが現実的です。

優先度やること目的
Cosmos DBアカウントと接続アプリを棚卸しする影響範囲を明確にする
Safe Key Rotationを有効化して観測を開始するキー利用状況を把握する
診断ログを有効化する利用元特定の手掛かりを増やす
Primary/Secondaryの切り替え手順を検証する本番作業の失敗を防ぐ
低頻度ジョブの実行タイミングを確認する「使われていない」誤判定を防ぐ
Microsoft Entra ID認証への移行可否を検討する長期的にキー管理を減らす
Azure Policyでローカル認証の監査を始める組織全体のセキュリティ標準に近づける

Safe Key Rotationは、Azure Cosmos DBのキー ローテーションを安全にするための重要な一歩です。ただし、最終使用日時だけで判断せず、診断ログ、アプリ設定、運用ジョブ、Microsoft Entra IDへの移行計画まで含めて確認することが大切です。まずは検証環境で機能を有効化し、自社のキー利用がどれだけ見えるかを確認するところから始めてください。

この記事を書いた人

実務の現場で詰まりがちなポイントを地図にするITブログ「IT trip」を運営。Windows/Office(Teams・Excel)からSQL、サーバ運用、ガジェットまで、再現性のある手順と“なぜそうなるか”を丁寧に解説します。読んだらすぐ試せること、そして迷った人の次の一歩が見えることを大切にしています。

コメント

コメントする

目次