Service connections – Azure Pipelinesの変更点と確認すべき設定【Azure】

Service connections – Azure Pipelinesを使ってAzureへデプロイしている場合、まず確認すべきことは「接続をすぐ作り直すべきか」ではなく、どのサービス接続が、どの認証方式で、どのパイプラインから使える状態になっているかです。2026年5月時点の公式情報では、Service Connections管理画面の視認性向上、個別パイプライン承認の推奨、Workload Identity Federationへの移行、接続タイプごとの注意点が重要な確認ポイントになります。(Microsoft Learn)

Service connectionsは、Azure PipelinesからAzure、GitHub、Docker Registry、Kubernetes、Mavenなどの外部サービスへ接続するための認証済み接続です。つまり、設定ミスがあると「デプロイが失敗する」だけでなく、「本来使うべきでないパイプラインから本番環境へアクセスできる」といったセキュリティリスクにもつながります。(Microsoft Learn)

目次

Service connections – Azure Pipelinesとは

Service connections – Azure Pipelinesは、Azure Pipelinesのジョブ内で外部サービスやリモートサービスを利用するための接続設定です。たとえば、Azure App ServiceへデプロイするためのAzure Resource Manager接続、コンテナイメージを扱うDocker Registry接続、別のAzure DevOps組織のリポジトリを参照するAzure DevOps接続などが該当します。(Microsoft Learn)

実務では、次のような場面で使われます。

利用シーン代表的なサービス接続確認すべきポイント
AzureリソースへデプロイするAzure Resource ManagerWorkload Identity Federationを使えるか、スコープが広すぎないか
ACRへイメージをpush/pullするDocker Registry / Azure Container Registry認証方式、レジストリ単位の権限、パイプライン承認
別組織のAzure Reposを参照するAzure DevOpsPATではなくEntra Workload Identityを使えるか
AKSへデプロイするKubernetes / Azure Resource Managerprivate clusterの場合にエージェントが到達できるか
GitHubや外部Gitを使うGitHub / Other GitPATやOAuthの管理、リポジトリ権限

ポイントは、Service connectionを「便利な接続先リスト」として見るのではなく、CI/CDから外部リソースへ到達するための権限境界として管理することです。

今回押さえるべき変更点

公式リリースノートでは、Service Connections管理ページが改善され、接続タイプや認証方式などの詳細情報を確認できるようになり、それらの項目でフィルターできるようになったと説明されています。ただし、追加の詳細情報は新しく作成されたサービス接続で利用できるとされているため、既存の接続で情報が見えない場合でも、ただちに異常とは判断しないほうがよいでしょう。(Microsoft Learn)

この変更の実務上の意味は、棚卸しがしやすくなることです。以前は、サービス接続名だけでは「本番用なのか」「シークレット認証なのか」「Workload Identity Federationなのか」が分かりにくいケースがありました。今後は、管理画面上で認証方式や接続タイプを確認し、危険度の高い接続を優先して見直しやすくなります。

変更点の整理

確認項目何が変わる・何を確認するか実務上の影響
管理画面の表示接続タイプや認証方式の可視性が向上シークレット認証の接続や本番系接続を探しやすくなる
フィルター接続タイプ・認証方式で絞り込み可能棚卸し、監査、移行計画が立てやすくなる
新規接続の詳細追加詳細は新しく作成された接続が対象古い接続は別途手動確認が必要
パイプライン承認すべてのパイプラインへ一括許可は非推奨本番接続は個別承認を基本にする
認証方式Azure Resource ManagerではWorkload Identity Federationが推奨シークレットの期限切れ・ローテーション負荷を減らせる

影響を受ける対象者

今回の確認ポイントは、Azure Pipelinesを触る開発者だけでなく、Azure DevOps組織の管理者、セキュリティ担当、インフラ担当にも関係します。

対象者主な影響まず確認すること
Azure DevOps管理者サービス接続の作成権限、利用権限、共有範囲の見直しEndpoint Administrators / Endpoint Creatorsのメンバー
プロジェクト管理者各プロジェクト内のService connections管理本番用接続がOpen accessになっていないか
開発者YAMLやClassic Pipelineで参照する接続名の管理タスク内の接続名が正しいか
セキュリティ担当シークレット認証、PAT、過剰権限の検出認証方式、Usage history、監査ログ
インフラ担当Azure、AKS、ACR、Key Vaultなどへの接続スコープ、RBAC、ネットワーク到達性

特に本番環境へデプロイするサービス接続は、単なる開発設定ではなく、Azureリソースへの実行権限を持つ重要な資産です。開発チームだけで完結させず、Azure側のRBACやMicrosoft Entra IDの管理者とも一緒に確認するのが安全です。

管理者が最初に確認すべき設定

Service connectionsの管理は、Azure DevOpsプロジェクトの Project settings > Service connections から行います。公式ドキュメントでは、作成、表示、編集、利用、パイプライン承認の流れが整理されています。(Microsoft Learn)

接続一覧で認証方式と接続タイプを棚卸しする

まず、すべてのサービス接続を一覧化します。新しい管理画面で接続タイプや認証方式が見える場合は、それを使って次のように分類します。

分類優先度
本番Azureへ接続するAzure Resource Manager、ACR、AKS最優先
シークレットやPATを使うService principal secret、GitHub PAT、Basic認証
全パイプラインに開放されているOpen access、Grant access permission to all pipelines
複数プロジェクトで共有されているCross-project service connection
長期間使われていないUsage historyに最近の利用がない
非推奨に近い代替候補があるAzure Service Bus service connectionなど

ここで重要なのは、接続名だけで判断しないことです。prod-azure のような名前でも、実際には検証環境用のサブスクリプションを指していることがあります。逆に、test-connection という名前のまま本番デプロイに使われているケースもあります。

「すべてのパイプラインにアクセス許可」を見直す

Service connection作成時には、すべてのパイプラインにアクセスを許可するオプションがあります。しかし公式ドキュメントでは、このオプションは推奨されておらず、各パイプラインを個別に承認することが推奨されています。(Microsoft Learn)

本番環境、共有サブスクリプション、顧客データに触れる環境では、原則として「全パイプライン許可」は避けます。必要なパイプラインだけを承認し、利用理由を説明欄や運用台帳に残すと、後から監査しやすくなります。

ユーザー・グループのロールを確認する

Service connectionには、Reader、User、Creator、Administratorといったロールがあります。UserはClassicとYAMLのビルド・リリースパイプラインでサービス接続を利用でき、Administratorは利用に加えて他ユーザーやグループのロール管理もできます。(Microsoft Learn)

ロールできること付与の目安
Readerサービス接続を閲覧監査担当、運用確認担当
Userパイプラインで利用対象パイプラインを管理するチーム
Creatorプロジェクト内で作成DevOps管理者、限られたリード担当
Administrator利用と権限管理プロジェクト管理者、サービス接続管理者

よくある失敗は、開発チーム全員にAdministrator相当の権限を与えてしまうことです。これでは、意図しない接続先変更やパイプライン開放が起きても検知しにくくなります。通常は、作成・管理できる人と、利用だけできる人を分けるべきです。

パイプライン権限をRestricted accessにする

個別のService connectionでは、すべてのパイプラインが使えるOpen accessと、指定したパイプラインだけが使える制限付きアクセスを設定できます。公式ドキュメントでは、Open accessからRestrict accessへ切り替えたり、特定のパイプラインを追加したりできることが説明されています。(Microsoft Learn)

本番用Service connectionでは、次の基準で考えると判断しやすくなります。

接続の種類推奨設定
本番AzureサブスクリプションRestricted access
本番ACRRestricted access
検証環境の一時接続用途次第でRestricted access
全社共通の読み取り専用接続権限を絞ったうえでOpen accessを検討
秘密情報や顧客データに関係する接続Restricted access必須

開発者が確認すべきYAMLとタスク設定

開発者側で最も多いトラブルは、Service connection名の不一致です。YAMLパイプラインでは、タスクの入力値としてサービス接続名を指定します。公式ドキュメントでも、YAMLでは接続名を azureSubscription などの値として使うと説明されています。(Microsoft Learn)

例として、Azureへデプロイするタスクでは次のように指定します。

steps:
- task: AzureCLI@2
  inputs:
    azureSubscription: 'prod-arm-wif'
    scriptType: 'bash'
    scriptLocation: 'inlineScript'
    inlineScript: |
      az group list --output table

このとき、prod-arm-wif はAzure DevOpsのService connectionsに存在する接続名と一致している必要があります。接続名を変更すると、YAML側も修正しない限りパイプラインが失敗します。

サービス接続名の命名ルールを決める

Service connectionは後から増えやすいため、名前にルールを持たせると管理しやすくなります。

命名要素理由
環境prodstgdev本番・検証を見分ける
接続先armacrazdoaks接続タイプを見分ける
認証方式wifmisp移行対象を見つけやすくする
スコープrg-app01sub-main影響範囲を想像しやすくする

たとえば、prod-arm-wif-rg-app01 のようにしておくと、「本番」「Azure Resource Manager」「Workload Identity Federation」「特定リソースグループ向け」と分かります。長すぎる名前は扱いづらいため、チーム内で略語を統一することも大切です。

Workload Identity Federationへの移行判断

Azure Resource Manager service connectionでは、公式ドキュメントがWorkload Identity Federationの利用を推奨しています。シークレットや証明書を管理せずに認証できるため、期限切れやローテーション漏れによるデプロイ停止を減らせます。(Microsoft Learn)

新規作成ならWorkload Identity Federationを優先する

新しくAzure Resource Manager接続を作る場合は、まずWorkload Identity Federationを使えるか確認します。公式ドキュメントでは、サブスクリプションのOwnerロールがあること、Azure StackやAzure US Government環境ではないこと、利用するMarketplace拡張機能タスクがWorkload Identity Federationをサポートしていることなどが、自動作成を使う条件として挙げられています。(Microsoft Learn)

状況選びたい方式
新規にAzureへ接続するApp registration with Workload Identity Federation
アプリ登録を作る権限がない既存のユーザー割り当てマネージドID
既存のサービスプリンシパルを使う必要がある手動構成
Azure Stackや特殊な環境公式要件を確認して個別判断
古い拡張機能タスクを使うWIF対応状況を確認してから移行

既存接続は変換できる条件を確認する

既存のAzure Resource Manager service connectionは、条件を満たせばWorkload Identity Federationへ変換できます。ただし、変換ツールを使えるのは、Azure DevOpsが元々作成した接続で、かつ1つのプロジェクトだけで使われている接続です。手動作成した接続やクロスプロジェクトの接続は、変換ツールでは変換できないとされています。(Microsoft Learn)

また、変換後に元へ戻す場合は7日以内に戻す必要があると説明されています。移行時は、いきなり本番接続を変換するのではなく、検証環境で変換、パイプライン実行、ロール確認、ロールバック手順確認まで済ませてから本番に適用するのが安全です。(Microsoft Learn)

Azure DevOps接続はPATレス化を検討する

Azure DevOps service connectionは、Azure DevOpsリソースへPersonal Access Tokenなしで認証するための接続タイプです。公式ドキュメントでは、Microsoft Entra Workload Identityを使うことで、PATの作成、保存、ローテーションを不要にできると説明されています。(Microsoft Learn)

利用シーンとしては、別組織のAzure Reposをcheckoutする、Azure Artifactsフィードへアクセスする、Azure DevOps REST APIをインラインスクリプトから呼び出す、Visual Studio Marketplaceへ拡張機能を公開する、といったケースが挙げられています。(Microsoft Learn)

Azure DevOps接続で失敗しやすいポイント

失敗例原因対処
接続作成に失敗するサービスプリンシパルやマネージドIDが組織に追加されていないOrganization Settings > Usersで追加する
クロス組織アクセスできない対象組織側にもIDが追加されていない両方の組織でユーザー追加と権限付与を確認する
YAMLでcheckoutできないendpoint名やリポジトリ名が違うService connection名とrepository resource設定を確認する
権限が強すぎる共通IDに広い権限を与えているパイプライン・プロジェクト・組織単位で接続を分ける

PATは手軽ですが、期限管理や漏えい時の影響範囲が問題になりやすい認証方式です。別組織のリポジトリやArtifactsを継続的に使う場合は、Azure DevOps service connectionによるPATレス化を検討する価値があります。

接続タイプ別の移行・展開上の注意点

Service connectionsは種類によって注意点が異なります。単に「WIFにすれば安全」と考えるのではなく、接続先、タスク、ネットワーク、RBACを合わせて確認する必要があります。

接続タイプ注意点推奨アクション
Azure Resource ManagerWIFが推奨。古いシークレット方式は後方互換やエッジケース向け新規はWIF、既存は変換可否を確認
Azure Container RegistryService Principal、Managed Identity、Workload Identity Federationを選択可能ACRごとに必要最小権限を付与
Azure DevOpsEntra Workload IdentityでPATレス認証が可能クロス組織利用時は対象組織にもIDを追加
Azure Service Busより安全な方法としてPublish To Azure Service Bus v2タスクが案内されている既存のService Bus接続を棚卸し
Kubernetesprivateまたはネットワークから隠れたクラスターではKubernetes service connectionが機能しないARMベース接続と到達可能なエージェントを使う
Kubernetes KubeconfigAKS発行のユーザー証明書は2年有効と説明されている期限管理または別方式を検討
GitHub / Other GitPATやOAuthの権限が広くなりやすいリポジトリ単位・用途単位で接続を分ける

特にAKSでは、private clusterかどうかが重要です。公式ドキュメントでは、プライベートまたはネットワークから隠れたクラスターではKubernetes service connectionオプションが機能せず、Azure Resource Managerベースのサービス接続と、クラスターへ直接到達できるエージェントが必要とされています。(Microsoft Learn)

Approvals and checksで本番接続を守る

本番用Service connectionには、Approvals and checksを設定すると、パイプラインがリソースを使う前に承認や検査を挟めます。公式ドキュメントでは、チェックはYAMLではなくリソース管理者がWeb UIで管理し、環境、サービス接続、エージェントプール、変数グループ、セキュアファイルなどに設定できると説明されています。(Microsoft Learn)

本番接続で検討しやすいチェックは次のとおりです。

チェック向いている場面
Approval本番デプロイ前に責任者承認を必須にする
Branch controlrefs/heads/main など許可ブランチからの実行に限定する
Required template監査・セキュリティ処理を含む共通YAMLテンプレートを強制する
Business hours深夜や休日の自動デプロイを抑制する
Invoke REST API / Azure Function外部の変更管理・脆弱性検査・リリース判定と連携する
Exclusive lock同じ本番リソースへの同時デプロイを防ぐ

注意点として、公式ドキュメントではService connectionsは変数で指定できないと明記されています。承認やチェックを前提にする本番接続では、実行時に接続先を変数で差し替える設計にせず、どのステージがどのService connectionを使うかを明確にしておきましょう。(Microsoft Learn)

展開前のチェックリスト

本番環境へ影響するService connectionsを見直す場合は、次の順序で進めると安全です。

手順作業完了条件
1Service connections一覧を出す接続名、接続タイプ、認証方式、利用プロジェクトが分かる
2本番・検証・開発に分類する本番接続が明確に識別できる
3Open accessを確認する本番接続が不要に全パイプラインへ開放されていない
4Usage historyを見る使われているパイプラインと最終利用日が分かる
5認証方式を確認するシークレット、PAT、WIF、Managed Identityを分類できる
6WIF移行候補を決める変換可能なARM接続を抽出できる
7検証環境で変換・新規作成するパイプラインが成功し、権限不足がない
8Approvals and checksを設定する本番接続に承認・テンプレート・ブランチ制御を適用できる
9YAMLの接続名を確認する変更後の接続名とタスク入力が一致する
10ロールバック手順を用意する失敗時に旧接続または代替接続へ戻せる

このチェックリストは、月次のCI/CD監査にも使えます。特に「使われていないのに残っている接続」「作成者が退職・異動している接続」「名前から用途が分からない接続」は、早めに整理したほうがよい対象です。

よくあるトラブルと対処法

症状よくある原因対処
パイプライン実行時に権限承認を求められるService connectionが個別承認制になっている必要なパイプラインだけPermitする
急にAzureデプロイが失敗したシークレット期限切れ、RBAC変更、接続名変更認証方式、Azure側ロール、YAMLの接続名を確認
WIFへ変換できない手動作成接続、クロスプロジェクト接続新規WIF接続を作り、段階的に切り替える
AADSTS系エラーが出るフェデレーション資格情報、Issuer、Subject、テナント制約の不一致Microsoft Entra側のフェデレーション設定を確認
private AKSへ接続できないエージェントがクラスターへ到達できないクラスターへ到達可能なself-hosted agentやManaged DevOps poolを使う
管理画面で認証方式が見えない追加詳細が新規接続中心に反映される既存接続は編集画面やAzure側で手動確認する
Entra ID側を変更したのに反映されないAzure DevOps内部のトークンキャッシュしばらく待つかService connectionを更新する

Azure DevOpsは、Entra ID認証を使うService connectionで発行されたアクセストークンを内部的にキャッシュする場合があります。キャッシュは内部フローに限られ、ユーザーへトークンが露出するものではありませんが、Entra ID側の変更直後に古い状態が見える場合は、1時間ほど待つか、該当のService endpointを更新する対応が案内されています。(Microsoft Learn)

管理ルールとして決めておきたいこと

Service connectionsは一度作ると、後から増え続けます。安全に運用するには、個別対応ではなくルール化が必要です。

ルール推奨内容
命名規則環境、接続先、認証方式、スコープを含める
作成権限Creator以上を限られた管理者に限定する
本番接続Restricted accessを基本にする
認証方式新規Azure接続はWIFを第一候補にする
説明欄用途、所有チーム、Azure側の権限範囲を書く
棚卸し月次または四半期でUsage historyを確認する
廃止未使用接続は無効化・削除の判断をする
変更管理本番接続の認証方式変更は事前検証と承認を必須にする

独自に入れておきたい観点は、Service connectionを「誰が作ったか」ではなく「どの業務リスクを持つか」で分類することです。作成者が開発者でも、接続先が本番サブスクリプションであれば管理対象は本番権限です。逆に、管理者が作った接続でも、用途が不明なまま残っていればリスクになります。

まず何から対応すべきか

最初にやるべきことは、Project settings > Service connections で接続一覧を確認し、接続タイプ、認証方式、Open accessの有無、Usage history、本番環境への到達可否を棚卸しすることです。次に、本番Azure Resource Manager接続とACR接続から優先して、Workload Identity Federationへの移行可否、個別パイプライン承認、Approvals and checksの設定を見直します。

すべてを一度に変更する必要はありません。まずは本番接続を「見える化」し、全パイプライン開放を避け、WIFへ移行できる接続を検証環境から切り替える。この順序で進めると、デプロイ停止のリスクを抑えながらService connections – Azure Pipelinesのセキュリティと運用性を改善できます。

この記事を書いた人

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

コメント

コメントする

目次