Azure REST APIのDDoS protection plan変更点:tags削除の影響と確認ポイント

Azure REST APIを使ってAzure NetworkのDDoS protection planを管理している場合、今回まず確認すべき点はシンプルです。2026年5月5日にマージされた仕様更新では、Networkの2025-07-01 stable specにあるvirtualNetwork.jsonから、DDoS protection planのtags定義が一部削除されました。これはDDoS保護プランのタグ機能そのものが廃止されたという意味ではなく、主にREST API仕様・生成SDK・スキーマ検証に影響する修正です。(GitHub)

特に対応が必要なのは、Azure REST API仕様からSDKを生成しているチーム、OpenAPI/Swaggerを使ってリクエストやレスポンスを検証しているチーム、DDoS protection planのモデルに対してtagsの位置を厳密に扱っているチームです。通常のAzure Portal操作や、既存のタグ運用だけを見ている場合は影響が小さい可能性がありますが、CIや型定義の差分で失敗するケースは確認しておくべきです。

目次

Azure REST API documentation updateで何が変わったのか

今回の変更は、Azure REST API specsリポジトリのPR「[Network] Remove unsupported tags field from DDoS protection plan properties」で行われました。対象ファイルはNetworkのstable/2025-07-01/virtualNetwork.jsonで、差分としては7行の削除です。削除されたのは、DDoS protection planモデル内に直接定義されていた次のようなtagsフィールドです。(GitHub)

"tags": {
  "type": "object",
  "description": "Resource tags.",
  "additionalProperties": {
    "type": "string"
  }
}

この変更を一言で言えば、DDoS protection planのREST APIスキーマにあった、サポートされない、または重複していたtags定義を削除した修正です。

重要なのは、変更対象がDDoS防御機能そのものではなく、REST API仕様ファイル内のモデル定義だという点です。DDoS保護プランの有効・無効、仮想ネットワークとの関連付け、DDoS検知や防御ロジックが変わる更新ではありません。

「tagsが削除された」だけでタグ機能廃止と判断しない

この更新で最も誤解しやすいのは、「DDoS protection planでタグが使えなくなった」と受け取ってしまうことです。

実際には、削除されたのはDdosProtectionPlan定義のローカルなproperties一覧にあったtags定義です。一方で、同じ仕様内のDdosProtectionPlanは共通リソース表現であるTrackedResourceWithOptionalLocationを参照しており、その共通リソース表現側にはid、name、type、location、tagsが含まれています。(GitHub)

つまり、実務上は次のように考えると分かりやすいです。

観点今回の変更で確認すべきこと
DDoS protection planのタグ運用すぐに「廃止」と判断しない。トップレベルのtagsとして扱われるか確認する
REST API仕様DdosProtectionPlanモデルに直接書かれていたtags定義が削除された
生成SDKモデルの型やプロパティ生成結果が変わる可能性がある
スキーマ検証古いOpenAPI定義に依存していると差分検出やバリデーションで失敗する可能性がある
IaC・運用スクリプトproperties.tagsのような誤った位置でタグを扱っていないか確認する

現時点のMicrosoft Learn上のDDoS Protection Plans REST APIでは、Update Tags操作があり、PATCHリクエストの本文でトップレベルにtagsを送る例が掲載されています。また、Create Or Updateのリクエスト本文にもtagsがリソースタグとして示されています。(Microsoft Learn)

そのため、今回の変更は「タグを一切使わないようにする」対応ではなく、タグをどのモデル、どの階層、どの生成コードで扱っているかを確認する対応だと捉えるのが適切です。

影響を受けやすいケース

今回のAzure REST API documentation updateは、すべてのAzure利用者に同じ大きさの影響がある変更ではありません。影響が出やすいのは、Azure REST APIの仕様ファイルを開発プロセスに組み込んでいるケースです。

利用形態影響度確認ポイント
Azure PortalでDDoS保護プランを管理している低通常は直接影響しにくい。タグ表示や更新が通常通りできるか確認する程度
REST APIを直接呼び出している中リクエスト本文でtagsをトップレベルに置いているか確認する
OpenAPI/Swaggerからクライアントを生成している高再生成後にモデル差分、コンパイルエラー、シリアライズ結果を確認する
Go SDKなど生成SDKに依存している高PRではGo SDKの破壊的変更ラベルが付いているため、型変更を重点確認する
独自のJSONスキーマ検証をCIに組み込んでいる高古いvirtualNetwork.json前提の検証ルールを更新する
タグ管理を監査・棚卸ししている中properties.tagsではなく、リソース直下のtagsを参照しているか確認する

PR上では、APIViewがGoとJavaのAPIレベル変更を検出しており、Go SDKについてはBreakingChange-Go-Sdkラベルも付いています。SDKを直接使っている場合、REST APIの挙動が大きく変わっていなくても、生成された型やメソッドの差分でビルドが失敗する可能性があります。(GitHub)

実務で確認すべき変更点

APIリクエストでtagsの位置を確認する

DDoS protection planのタグは、リソースのトップレベルに置くのが基本です。次のようにproperties配下へ入れているコードがある場合は、誤った実装として見直す必要があります。

{
  "location": "japaneast",
  "properties": {
    "tags": {
      "env": "prod",
      "owner": "network-team"
    }
  }
}

確認すべき形は、次のようなトップレベルのtagsです。

{
  "location": "japaneast",
  "tags": {
    "env": "prod",
    "owner": "network-team"
  },
  "properties": {}
}

ただし、実際に送る本文は利用しているAPIバージョン、SDK、操作種別によって変わることがあります。Create Or Update、Update Tags、Get、Listでそれぞれ期待するレスポンス形が一致するかを確認してください。

生成SDKのモデル差分を確認する

OpenAPI仕様からSDKを生成している場合、今回のような数行のスキーマ修正でも影響が出ます。

特に確認すべきなのは、次のような差分です。

確認対象見るべきポイント
DdosProtectionPlanモデルTagsまたはtags相当のプロパティがどこに生成されるか
DdosProtectionPlanPropertiesFormatモデルタグが誤ってproperties側に生成されていないか
シリアライズ結果JSON出力時にtagsがリソース直下に出るか
デシリアライズ結果GET/Listのレスポンスでタグを読み取れるか
コンパイル結果削除されたプロパティ参照でビルドが落ちないか

GoやJavaのように型の差分が明確に出る言語では、モデルのプロパティ削除や移動がコンパイルエラーとして表面化しやすくなります。逆にJavaScriptやPythonでは実行時まで気づきにくい場合があるため、APIレスポンスを使ったテストを追加しておくと安全です。

古いスキーマを前提にしたバリデーションを更新する

CIでAzure REST API仕様を取り込み、リクエストやレスポンスを検証している場合は、stable/2025-07-01/virtualNetwork.jsonの更新を反映する必要があります。

確認すべきパターンは次の通りです。

DdosProtectionPlan.tags
DdosProtectionPlanPropertiesFormat.tags
properties.tags
ddosProtectionPlan.properties.tags

特にDdosProtectionPlanPropertiesFormat.tagsやproperties.tagsを前提にしたルールがある場合は注意が必要です。今回の変更を「タグが不要になった」と解釈して検証から完全に外すのではなく、リソース直下のタグとして扱うか、利用中のAPI仕様に合わせて検証対象を整理することが重要です。

移行・設定確認の進め方

今回の変更に対しては、慌てて全システムを修正するより、利用状況を切り分けて確認する方が安全です。

手順作業内容判断基準
1利用中のAPIバージョンを確認する2025-07-01のNetwork specを取り込んでいるか
2DDoS protection planの操作箇所を洗い出すCreate、Update、Update Tags、Get、Listを対象にする
3tagsの参照位置を確認するリソース直下か、誤ってproperties配下か
4SDKを再生成または更新する型差分とコンパイルエラーを確認する
5タグ更新の実APIテストを行うPATCHまたはPUT後にGET/Listでタグを確認する
6CIのスキーマ検証を更新する古いvirtualNetwork.json前提のルールを削除・修正する
7運用ドキュメントを直す「DDoS保護プランはタグ不可」と誤記しない

開発チームでは、まずコード検索でDDoS protection planとタグの参照箇所を確認すると効率的です。

grep -R "DdosProtectionPlan" .
grep -R "ddosProtectionPlans" .
grep -R "properties.tags" .
grep -R "DdosProtectionPlanProperties" .

生成SDKを使っている場合は、旧版と新版のモデル差分をレビューします。レビューでは「プロパティが消えたか」だけでなく、「同じ意味のプロパティが共通リソース側に残っているか」まで確認してください。

APIレスポンスで見るべきポイント

DDoS protection planのGETまたはListレスポンスを確認するときは、次のような構造を意識します。

{
  "id": "/subscriptions/xxxx/resourceGroups/rg-network/providers/Microsoft.Network/ddosProtectionPlans/plan-prod",
  "name": "plan-prod",
  "type": "Microsoft.Network/ddosProtectionPlans",
  "location": "japaneast",
  "tags": {
    "env": "prod",
    "owner": "network-team"
  },
  "properties": {
    "provisioningState": "Succeeded",
    "resourceGuid": "..."
  },
  "etag": "..."
}

見るべきポイントは、tagsがpropertiesの中ではなく、locationやpropertiesと同じ階層にあることです。

タグ監査やコスト配賦、リソース所有者管理を行っている場合、取得処理で次のような参照をしていないか確認してください。

// 避けたい例
const tags = plan.properties.tags;

// 確認したい例
const tags = plan.tags;

この違いは小さく見えますが、監査ツールでは大きな問題になります。plan.properties.tagsを見に行く実装では、タグが存在するリソースでも「タグなし」と誤判定する可能性があります。

よくある失敗パターン

「tags削除」を見てタグ運用を止めてしまう

今回削除されたのは、仕様上の特定位置にあったtags定義です。DDoS protection planのタグ操作全体を止める判断は早計です。Microsoft Learn上でもDDoS protection planのUpdate Tags操作は案内されています。(Microsoft Learn)

対応としては、タグが使えるかどうかではなく、どのAPIバージョン、どの操作、どのJSON階層でタグを扱うかを確認します。

SDKの破壊的変更を軽視する

REST APIの実体が大きく変わらない場合でも、生成SDKでは型の差分が破壊的変更として扱われることがあります。今回のPRでもGo SDKに破壊的変更ラベルが付いているため、GoでAzure Network SDKを利用しているチームは特に注意が必要です。(GitHub)

確認せずにSDKだけ更新すると、ビルドエラーやJSON変換の差分がリリース直前に見つかる可能性があります。

2025-05-01の公開ドキュメントだけで判断する

今回のPRはNetworkの2025-07-01 stable specに対する変更です。一方、Microsoft Learn上で確認できるDDoS Protection Plansのページは、記事執筆時点では2025-05-01のビューが中心です。既存ドキュメントでタグが見えるから問題なし、またはPRで削除されたからタグ不可、と片方だけで判断しない方が安全です。(Microsoft Learn)

APIバージョンをまたいで比較する場合は、使用しているSDK、REST APIのapi-version、CIで参照しているOpenAPIファイルをそろえて確認してください。

具体的な対応方針

今回のAzure REST API仕様更新に対して、実務では次の方針で進めるのがおすすめです。

状況対応
DDoS protection planをREST APIで直接操作しているリクエスト本文とレスポンス処理でtagsがトップレベル扱いか確認する
OpenAPIからSDKを生成しているvirtualNetwork.json更新後に再生成し、モデル差分をレビューする
Go SDKを利用している破壊的変更の可能性を前提に、コンパイルと単体テストを先に実行する
タグ監査ツールを運用しているproperties.tags参照がないか検索し、tags直下参照に統一する
ドキュメントを整備している「タグ削除」ではなく「サポートされないtags定義の削除」と表現する
影響が不明な場合GET/List/Update Tagsの最小テストを行い、実レスポンスで確認する

特に社内ドキュメントでは、「DDoS protection plan propertiesからtagsが削除」とだけ書くと誤解を招きます。読み手がREST APIのJSONペイロードにおけるpropertiesと、OpenAPIスキーマ上のpropertiesを混同しやすいためです。

おすすめの表現は次のようなものです。

Network 2025-07-01のREST API仕様で、DdosProtectionPlanモデルに直接定義されていた未サポートのtagsフィールドが削除された。タグ運用を廃止する変更ではないため、リソース直下のtagsおよびUpdate Tags操作の扱いを確認する。

まず実行すべきチェックリスト

最後に、今回の更新を受けてすぐ確認すべき項目を整理します。

チェック項目完了の目安
利用中のapi-versionを確認したNetwork 2025-07-01 specを使うかどうか分かっている
DDoS protection plan関連コードを検索したCreate、Update、Get、List、Update Tagsの処理が洗い出せている
properties.tags参照がないか確認したタグはリソース直下のtagsとして扱っている
SDK更新時のモデル差分を確認した生成コードの型変更をレビュー済み
CIのスキーマ検証を更新した古いtags定義に依存した検証が残っていない
タグ更新テストを実施した更新後のGET/Listでタグが取得できる
社内ドキュメントの表現を修正した「タグ廃止」と誤解されない説明になっている

今回の変更は、DDoS protection planの運用を大きく変えるものではありません。影響の中心は、Azure REST API仕様を使った型生成、スキーマ検証、タグ参照位置の扱いです。まずは自社のコードとCIでDdosProtectionPlanおよびtagsを検索し、タグがリソース直下で扱われているか、生成SDKの差分でビルドやテストが失敗しないかを確認しましょう。

この記事を書いた人

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

コメント

コメントする

目次