GitHub Advanced Security for Azure DevOpsのSecurity overview更新点と管理者の対応ポイント

GitHub Advanced Security for Azure DevOps の Security overview は、Azure Repos 全体のセキュリティリスク、スキャンの有効化状況、個別アラートを組織単位で確認するための管理画面です。今回の公式情報で特に重要なのは、リポジトリごとに見に行く運用から、Risk・Coverage・Alerts の3つのタブで横断的に確認し、CSV出力やフィルターURL共有を使って修復を進める運用へ寄せられている点です。管理者はまず、Azure DevOps の Organization settings > Security overview を開き、重大度の高いアラート、スキャン未設定のリポジトリ、90日以上スキャンが止まっている可能性のある領域を確認するのが実務上の第一歩です。(Microsoft Learn)

なお、Microsoft Learn の表示上は英語版の最終更新が 2026年5月26日、日本語版が 2026年5月27日、MicrosoftDocs リポジトリ側では 2026年6月3日にビルド修正が入っています。この記事では、2026年6月4日時点で確認できる公式情報を基準に、管理者・開発者が確認すべき変更点、影響範囲、設定、移行、展開時の注意点を整理します。(Microsoft Learn)

目次

Microsoft Azureのセキュリティ更新で押さえるべきポイント

GitHub Advanced Security for Azure DevOps は、Azure DevOps の Azure Repos に対して、シークレットスキャン、依存関係スキャン、コードスキャン、Security overview などのセキュリティ機能を提供します。GitHub.com 上のリポジトリ向け GitHub Advanced Security とは対象が異なり、今回整理する対象は Azure Repos で管理しているコードです。(Microsoft Learn)

Security overview は、組織全体の状態を次の3つの観点で確認する画面です。

タブ主な役割管理者が見るべきポイント
RiskAdvanced Security が有効なリポジトリのアラート数と重大度を確認するCritical / High の未対応アラート、急増したプロジェクト、放置された Dismissed
Coverage組織内リポジトリの Advanced Security 機能の有効化状況を見る未有効のリポジトリ、ツール別の未カバー領域、スキャン停止の疑い
Alertsリポジトリ横断で個別アラートを検索・フィルターする優先度順の修復、チームへの共有、CSV出力、キャンペーン化

重要なのは、Security overview が「検出結果を見るだけの画面」ではなく、修復対象を絞り、担当チームに渡し、進捗を追うための管理起点になっていることです。

主な変更点:Alertsタブとセキュリティキャンペーンで横断対応しやすくなった

今回の中心となる変更は、Security overview に Alerts タブが追加・整理され、組織内の各リポジトリに分散していた個別アラートを一元的に検索・フィルターできるようになった点です。従来のようにリポジトリ単位で Advanced Security タブを開いて確認するだけでなく、組織全体から「重大度が高い」「特定プロジェクト」「特定ツール」「最近追加された」などの条件で絞り込めます。(Microsoft Learn)

Alerts タブでは、以下のようなフィルターが使えます。

フィルター使いどころ
Toolcode scanning、dependency scanning、secret scanning などで絞り込む
Severitycritical、high、medium、low など重大度で優先順位を付ける
Stateopen、dismissed、fixed など対応状況で確認する
ProjectAzure DevOps プロジェクト単位で担当範囲を分ける
Repository特定リポジトリだけを確認する
Time-boundいつ導入されたアラートかで絞り込む

さらに、選択したツールに応じて詳細フィルターも変わります。たとえばシークレットでは有効性やシークレット種別、依存関係ではパッケージやエコシステム、コードではツールやルールで絞り込めます。これにより、「全社の Critical を見る」だけでなく、「npm パッケージ由来の高重大度アラート」「特定ルールに該当する CodeQL アラート」「有効なシークレットだけ」といった実務的な切り分けが可能になります。(Microsoft Learn)

セキュリティキャンペーンは“修復作業の単位”として使う

Security campaigns は、フィルター済みのアラートビューをチームに共有し、修復作業を進めるための仕組みです。フィルター条件は URL パラメーターとして保持されるため、たとえば「今スプリントで対応する A プロジェクトの Critical アラート一覧」を URL として共有できます。(Microsoft Learn)

実務では、次のように使うと効果的です。

活用シーンフィルター例進め方
スプリント内で重大アラートを潰すProject = 対象プロジェクト、Severity = Critical / High、State = Openスプリント計画時に対象URLを共有し、各チームの作業に組み込む
シークレット漏えいを優先対応するTool = secret scanning、State = Openまず資格情報を無効化し、再発行と保管場所の見直しまで行う
特定リポジトリ群を集中的に改善するRepository = 対象リポジトリ、Severity = High以上リポジトリオーナーにURLを渡し、期限を決めて対応する
CodeQLルール別に横断対応するTool = code scanning、Rule = 対象ルール共通ライブラリや実装パターンの修正方針を作る

ポイントは、Alerts タブを「一覧表」として眺めるだけで終わらせないことです。フィルターを修復単位に変換し、担当者・期限・完了条件をセットにすることで、セキュリティ対応が進みやすくなります。

Riskタブで確認すべき影響範囲

Risk タブは、Advanced Security が有効なプロジェクト・リポジトリに対するアラート分布を確認する画面です。報告されるアラート数は、各リポジトリの 既定のブランチで検出されたアラートが対象です。無効化または削除されたリポジトリは結果から除外されます。(Microsoft Learn)

管理者が見るべきポイントは、単純な合計数ではありません。次の順番で確認すると、対応の優先順位を誤りにくくなります。

確認項目見る理由判断基準
Open の Critical / High現在の実リスクが高い本番系・外部公開系リポジトリから優先
New の増加最近の変更で新たなリスクが入った可能性がある直近スプリントやリリースブランチと照合
Dismissed の理由誤検知処理が妥当か確認するコメントなし、理由が曖昧なものは再確認
Fixed の推移改善が進んでいるか確認するチーム単位で改善傾向を見る
プロジェクト別偏り特定チームにリスクが集中していないか確認するCI/CD設定や依存関係管理の差を疑う

Risk タブでは、Open、New、Dismissed、Fixed の列で並べ替えられます。また、検索バーやプロジェクト、ツール、期間フィルターを使って絞り込めます。期間は既定で過去7日間の結果が表示され、フィルター条件は URL パラメーターとして共有できます。(Microsoft Learn)

失敗しやすいポイント:Riskの数値だけで全体安全性を判断しない

Risk タブに表示されるのは、Advanced Security が有効なリポジトリに関する情報です。つまり、Advanced Security が未有効のリポジトリが多い組織では、Risk タブのアラート数が少なく見えても、実際にはスキャン対象外のコードが残っている可能性があります。

そのため、Risk タブを見た後は必ず Coverage タブも確認します。Risk は“検出されたリスク”、Coverage は“検出できる状態にあるか”を見る画面と分けて考えると、運用ミスを防ぎやすくなります。

Coverageタブで確認すべき設定と展開状況

Coverage タブでは、有効化状況に関係なく組織内のリポジトリが表示されます。Advanced Security が有効なリポジトリでは、依存関係スキャン、コードスキャン、シークレットスキャンなど、ツール別の状態も確認できます。無効化・削除済みリポジトリは自動的に除外されます。(Microsoft Learn)

Coverage で特に注意したいのは、有効化表示と継続的なスキャン実行は同じではないという点です。公式情報では、SARIF 結果ファイルが Advanced Security に正常送信されると、依存関係スキャン、コードスキャン、シークレットスキャンのアラートが有効になります。ただし、有効化状態はスキャンの新しさを考慮しません。また、組織またはプロジェクトレベルで Enable all を選択した後、最近の有効化イベントの反映に最大24時間の遅延が発生する可能性があります。(Microsoft Learn)

90日以上スキャンが止まっている可能性に注意する

2026年の更新では、Coverage ペインで 90日を超えて結果を出していないツールが古いスキャンとして識別されるようになっています。これは、パイプライン設定の変更、ジョブの停止、対象ブランチの変更などで、意図せずスキャンが止まっている状態を見つけるために重要です。(Microsoft Learn)

管理者は、Coverage タブで次の観点を確認してください。

確認項目実務上の意味対応
未有効のリポジトリそもそも検出対象外重要度に応じて Advanced Security を有効化
特定ツールだけ未カバー依存関係・コード・シークレットのいずれかが見えていない必要なスキャン設定やパイプラインを追加
90日超の古いスキャンCI/CD変更や停止で検出が止まった可能性パイプライン履歴、ブランチ、エージェント状態を確認
新規リポジトリだけ未有効自動有効化設定が漏れている可能性新規リポジトリ・新規プロジェクトの自動有効化を確認
組織全体の反映遅延直後に状態が合わないことがある有効化後すぐに判断せず、最大24時間の遅延を考慮

Coverage は、セキュリティ担当だけでなく、Azure DevOps 管理者やプラットフォームチームが定期的に見るべき画面です。特にリポジトリ作成が多い組織では、毎月ではなく週次で確認するほうが運用に合います。

Alertsタブで修復を優先順位付けする

Alerts タブでは、組織全体の個別アラートを一元的に確認できます。ここで大切なのは、すべてのアラートを同じ重みで扱わないことです。

現実的には、次の順番で対応すると効果が出やすくなります。

優先度対象理由
最優先有効なシークレット、Critical / High の新規アラート悪用可能性や影響が高い
高外部公開サービス、本番デプロイ対象、共通ライブラリ影響範囲が広い
中既知脆弱性を含む直接依存関係修正方針を取りやすい
中〜低推移的依存関係、誤検知の可能性が高いコードアラート調査と影響確認が必要
別管理Risk accepted / False positive で閉じたもの定期レビューで妥当性を確認

Alerts タブからは、最大で最初の1,000件までのアラートを CSV にエクスポートできます。エクスポートは現在適用しているフィルターを反映するため、たとえば「Critical の未対応だけ」「特定プロジェクトだけ」といった形で、会議資料やチケット化の元データとして使えます。(Microsoft Learn)

ただし、CSVに出しただけでは改善は進みません。エクスポート後は、次のように処理を決めておくと運用が安定します。

CSV出力後の処理具体例
チケット化Azure Boards、Backlog、Jira などに担当者付きで登録
重複整理同じ原因のアラートを1つの修正タスクにまとめる
期限設定Critical は次回リリース前、High は次スプリント内など
例外管理Risk accepted は理由・承認者・再確認日を残す
再確認修正後に再スキャンし、Fixed になったことを確認

管理者が確認すべき権限設定

Security overview は組織設定を表示できるメンバーが確認できますが、アラート閲覧、アラートの却下、Advanced Security 設定管理にはそれぞれ権限が関係します。公式情報では、アラート概要を見るにはリポジトリの Contributor 権限、アラートを dismiss するには Project administrator 権限、Advanced Security の権限管理には Project Collection Administrators グループまたは Advanced Security: Manage settings の許可が必要とされています。(Microsoft Learn)

特に注意すべきなのは、Advanced Security: Manage settings です。この権限を持つユーザーは Advanced Security 機能を有効化でき、課金が発生する可能性があります。権限を広く付与しすぎると、意図しないリポジトリ有効化やコスト増につながるため、最小権限で設計するべきです。(Microsoft Learn)

役割推奨権限理由
開発者Read alerts自分のリポジトリのアラートを確認・修正するため
テックリードRead alerts、必要に応じて Manage and dismiss alerts誤検知判断や修復方針の決定に関わるため
セキュリティ担当Read alerts、Manage and dismiss alerts横断的なトリアージや例外管理を行うため
Azure DevOps 管理者Manage settings有効化・無効化・課金影響を管理するため
一時参加者・外部委託原則最小限リポジトリ横断のアラート可視化を避けるため

また、2026年のリリースでは、Security overview が Advanced Security: Read alerts 権限を Risk と Coverage の両方で強制する変更も示されています。権限がないリポジトリは Security overview の結果に表示されないため、管理者は「表示されない=存在しない」と誤解しないように注意が必要です。(Microsoft Learn)

有効化・展開時に確認すべき設定

GitHub Advanced Security for Azure DevOps は、組織、プロジェクト、リポジトリの各レベルで有効化できます。組織・プロジェクト単位の Enable all は既存リポジトリを対象にするため、今後作られるリポジトリやプロジェクトに自動適用したい場合は、別途「新しいリポジトリ」または「新しいプロジェクト」への自動有効化設定を選択する必要があります。(Microsoft Learn)

展開時の確認ポイントは次の通りです。

項目確認内容注意点
有効化単位組織、プロジェクト、リポジトリのどこで有効化するか一括有効化は課金影響も大きい
新規作成時の自動有効化新規リポジトリ・新規プロジェクトに適用するかEnable all とは別設定
Secret Protection / Code Security必要な製品・機能だけを有効化するかスタンドアロン構成では製品単位の課金を確認
依存関係スキャン既定セットアップかパイプライン追加かAdvanced Security 有効化だけでは依存関係スキャンは自動実行されない
コードスキャン既定セットアップか高度なセットアップかカスタムビルドや複数ブランチは高度なセットアップを検討
シークレットスキャンプッシュ保護と履歴スキャンの動作を確認有効化後のプッシュと既存履歴で挙動が異なる
セルフホステッドエージェントURL許可リスト、.NET、CodeQLバンドルネットワーク制限がある環境では事前確認が必須

Secret Protectionの確認ポイント

Secret Protection を有効にすると、シークレットスキャンとプッシュ保護が有効になります。シークレットスキャンは既存履歴を含めて検出し、プッシュ保護は有効化後のプッシュを評価します。漏えいしたシークレットが検出された場合は、コードから消すだけでは不十分です。資格情報を無効化し、新しい資格情報を発行し、安全な保管先に移す必要があります。Azure Key Vault などのシークレット管理ソリューションの利用も選択肢になります。(Microsoft Learn)

よくある失敗は、検出されたキーを削除してコミットし直しただけで完了扱いにすることです。一度リポジトリに入ったシークレットは、履歴や外部コピーに残っている可能性があります。無効化・再発行・利用先更新・履歴確認までを対応手順に含めてください。

Dependency scanningの確認ポイント

依存関係スキャンは、直接依存と推移的依存の脆弱性を検出します。ただし、Advanced Security または Code Security を有効にしただけでは依存関係スキャンは自動実行されません。AdvancedSecurity-Dependency-Scanning@1 タスクを含むパイプラインを実行するか、依存関係スキャンの既定セットアップを有効にする必要があります。(Microsoft Learn)

依存関係スキャンのアラート対応では、直接依存ならバージョン更新、推移的依存ならルート依存関係の更新または限定的な override を検討します。むやみに全体 override を入れると、実行時不具合を招く可能性があるため、依存関係ツリーを確認して対象を絞ることが重要です。(Microsoft Learn)

Code scanningの確認ポイント

コードスキャンは CodeQL を使ってコード上の脆弱性やコーディングエラーを検出します。構成方法には、パイプライン設定が不要な既定セットアップと、CodeQL タスクを Azure Pipelines に追加する高度なセットアップがあります。既定セットアップは導入が速く、標準的なリポジトリに向いています。一方、複数ブランチを対象にしたい、特定のエージェントプールを使いたい、コンパイル言語でカスタムビルド手順が必要、といった場合は高度なセットアップが適しています。(Microsoft Learn)

CodeQL の既定セットアップは組織設定からエージェントプールやスキャンスケジュールを管理できます。セルフホステッドエージェントを使う場合は、CodeQL バンドルや必要なツール、ネットワーク到達性を事前に確認してください。(Microsoft Learn)

課金と移行で注意すべき点

GitHub Advanced Security for Azure DevOps の利用にはライセンスが必要で、Advanced Security が有効なリポジトリに過去90日以内の push に含まれるアクティブコミッターが課金対象の基準になります。課金は Azure DevOps 組織に関連付いた Azure サブスクリプションに対して月次で行われ、日次の利用量に基づいて計上されます。アクティブコミッターは、同じ Azure サブスクリプションに紐づく組織間で重複排除されます。(Microsoft Learn)

特に大規模組織では、組織単位で一括有効化する前に、次の順番で確認してください。

確認順内容
1対象リポジトリの重要度を分類する
2過去90日以内のアクティブコミッター数の見積もりを見る
3Secret Protection と Code Security のどちらが必要か整理する
4まず重要リポジトリでパイロット導入する
5Coverage と Alerts で運用負荷を確認する
6組織・プロジェクト単位の自動有効化を検討する

既存顧客向けには、現在の Advanced Security 体験に中断はないとされています。Secret Protection と Code Security のスタンドアロン製品へ移行したい場合は、Azure Portal 経由で Azure DevOps サポートにチケットを作成し、問題種別として「Billing migration from bundled to standalone products」を選ぶ必要があります。この移行はサブスクリプション単位で行われ、提供した Azure サブスクリプションに紐づくすべての Azure DevOps 組織が対象になり、不可逆とされています。(Microsoft Learn)

そのため、移行を検討する場合は、単に「安くなりそうか」だけで判断せず、次の点を事前に整理してください。

  • 対象 Azure サブスクリプションに紐づく Azure DevOps 組織の一覧
  • 各組織で有効化済みのリポジトリ数
  • Secret Protection と Code Security の利用対象
  • 請求部門・プロジェクト部門への費用配賦ルール
  • 移行後に戻せないことへの承認フロー

Pull Request運用との接続も見直す

Security overview は組織全体の可視化に役立ちますが、開発現場でリスクを減らすには Pull Request 時点での制御も重要です。Advanced Security では、依存関係スキャン、コードスキャン、シークレットスキャンの結果を評価し、脆弱性が検出された場合に Pull Request のマージを防ぐステータスチェックを使えます。公式情報では、すべての重大・高重大度アラートをブロックする AdvancedSecurity/AllHighAndCritical と、新規の重大・高重大度アラートをブロックする AdvancedSecurity/NewHighAndCritical が示されています。(Microsoft Learn)

現実的には、既存アラートが多い組織でいきなり AllHighAndCritical を必須化すると、開発が止まりやすくなります。まずは NewHighAndCritical を使い、「新しい重大リスクを増やさない」方針から始めると導入しやすくなります。

状況推奨する始め方
既存アラートが多いNewHighAndCritical で新規混入を防ぐ
重要リポジトリだけ厳格にしたい本番系ブランチに AllHighAndCritical を適用
開発速度を優先したいまずアラート通知と Security campaign で運用
規制・監査要件がある例外承認、Dismiss理由、監査ログをセットで管理

監査ログとCSV出力でガバナンスを強化する

2026年のリリースでは、Advanced Security の有効化設定が変更されたときに Azure DevOps の監査ログにイベントが記録される更新も示されています。監査ログには、誰が、いつ、どの設定を変更したかが含まれ、対象には Advanced Security、Code Security / Secret Protection、CodeQL 既定セットアップ、依存関係スキャン既定セットアップ、シークレットプッシュ保護などが含まれます。(Microsoft Learn)

管理者は、次のような運用ルールを作っておくとよいでしょう。

管理対象推奨ルール
Advanced Security の有効化・無効化変更前に申請またはチケットを残す
Dismissed アラート理由、承認者、再確認日を必須にする
CSVエクスポート個人情報や機密情報の取り扱いルールに従う
Security campaign URL閲覧権限のあるメンバーに限定して共有
監査ログ月次またはリリース前に変更履歴を確認

特に、Security overview の CSV はセキュリティ上の弱点やリポジトリ名を含む可能性があります。社外共有や広範なメール添付は避け、アクセス制御された場所に保管するのが安全です。

管理者・開発者向けの実務チェックリスト

最後に、今回の公式情報を踏まえて、すぐ確認すべき項目をチェックリストにまとめます。

対象者確認すべきこと完了の目安
Azure DevOps 管理者Organization settings > Security overview を開けるかRisk / Coverage / Alerts が確認できる
セキュリティ管理者Critical / High の Open アラートを抽出するSecurity campaign URL を担当チームに共有済み
プロジェクト管理者Coverage で未有効・古いスキャンを確認する重要リポジトリの未カバーがない
開発リードPR時のステータスチェック方針を決めるNewHighAndCritical などの適用方針がある
開発者自分の担当アラートの修正方法を確認する修正後に再スキャンし Fixed を確認
情シス・管理部門課金対象のアクティブコミッターを確認する有効化範囲と費用配賦が説明できる
監査担当有効化変更と Dismissed の履歴を確認する例外理由と承認履歴が残っている

Security overview は、Azure Repos のセキュリティ状態を“見える化”するだけでなく、チーム横断で修復を進めるための起点です。まずは Risk で重大度の高いアラートを把握し、Coverage でスキャン対象外や停止状態を潰し、Alerts で担当チームごとの修復キャンペーンを作成してください。大規模展開の前には、権限、課金、既定セットアップ、PRステータスチェック、移行方針を確認し、重要リポジトリから段階的に展開するのが安全です。

この記事を書いた人

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

コメント

コメントする

目次