次の方法で共有


マネージド DevOps プール ネットワークを構成する

重要

マネージド DevOps プールは現在プレビュー段階です。 ベータ版、プレビュー版、または一般提供としてまだリリースされていない Azure の機能に適用される法律条項については、「Microsoft Azure プレビューの追加使用条件」を参照してください。

独自の仮想ネットワークへのエージェントの追加

次のようなシナリオでは、Managed DevOps プールから独自の仮想ネットワークにエージェントを追加できます。

  • CI/CD エージェントは、Express Route などのサービスを介して会社のネットワークでのみ使用できるリソースにアクセスする必要があります
  • CI/CD エージェントは、プライベート エンドポイントに分離されているリソースにアクセスする必要があります
  • 会社固有のファイアウォール規則を使用して独自の VNet を導入することで、CI/CD インフラストラクチャをネットワークで分離する必要がある
  • すぐに使用できる Managed DevOps プールネットワーク関連の機能では実現できないその他の固有のユース ケース

次の手順を使用して、プールのエージェントを仮想ネットワークに追加できます。

  1. 仮想ネットワークとサブネットを作成または持ち込む
  2. サブネットを Microsoft.DevOpsInfrastructure/pools に委任する
  3. サブネットを Managed DevOps プールに関連付ける

前の手順では、プールによる排他的アクセスのためにサブネットを委任します。サブネットは他のプールやリソースでは使用できません。 複数のプールを同じ仮想ネットワークに接続するために、複数のサブネットを使用できます。各サブネットは委任され、独自のプールに関連付けられます。

仮想ネットワークとサブネットを作成または持ち込む

サブネットには、関連付けるプールの最大プール サイズに対応できる十分なアドレス空間が必要です (サブネットに 5 つの IP アドレス Azure 予約を含めます)。 Express Route を使用している場合は、書き込みを許可するようにリソース グループの管理ロックを一時的に削除または変更する必要があります。

重要

Managed DevOps プールと仮想ネットワークは同じリージョンに存在する必要があります。プールの作成またはネットワーク構成の更新を試みると、次のようなエラーが表示されます。 Virtual network MDPVN is in region eastus, but pool mdpnonprodsub is in region australiaeast. These must be in the same region.

DevOpsInfrastructure プリンシパルが仮想ネットワーク上で次のアクセス権を持っていることを確認します。

  • Reader および Network Contributor
  • または、カスタム ロールに次のアクセス許可を追加します。
    • Microsoft.Network/virtualNetworks/*/read
    • Microsoft.Network/virtualNetworks/subnets/join/action
    • Microsoft.Network/virtualNetworks/subnets/serviceAssociationLinks/validate/action
    • Microsoft.Network/virtualNetworks/subnets/serviceAssociationLinks/write
    • Microsoft.Network/virtualNetworks/subnets/serviceAssociationLinks/delete

サービス関連付けリンク アクセスのカスタム ロールを作成します。 ロールの例は、次の例に示すように、[アクセス制御] タブのリソース グループまたはサブスクリプション レベルで作成できます。

カスタム ロールのアクセス許可のスクリーンショット。

DevOpsInfrastructure プリンシパル アクセスを確認するには

  1. 仮想ネットワークのアクセス制御 (IAM) を選択し、[アクセスの確認] を選択します

    サブネット委任の VNet アクセス許可のスクリーンショット。

  2. DevOpsInfrastructure を検索して選択します。

    AzureDevOpsInfrastructure プリンシパルの選択のスクリーンショット。

  3. 閲覧者アクセスを確認 します 。 アクセス Microsoft.Network/virtualNetworks/subnets/serviceAssociationLinks/validate/action Microsoft.Network/virtualNetworks/subnets/serviceAssociationLinks/write権が割り当てられていることをMicrosoft.Network/virtualNetworks/subnets/join/action確認します。 カスタム ロールがここに表示されます。

    VNet のアクセス許可のスクリーンショット。

  4. DevOpsInfrastructure にこれらのアクセス許可がない場合は、仮想ネットワークのアクセス制御 (IAM) を選択して追加し、[このリソースへのアクセスを許可する] を選択して追加します。

サブネットを Microsoft.DevOpsInfrastructure/pools に委任する

サブネットは、使用するサブネットに Microsoft.DevOpsInfrastructure/pools 委任する必要があります。 ポータルでサブネットのプロパティを開き、[サブネット委任] セクションで選択 Microsoft.DevOpsInfrastructure/pools し、[保存] を選択 します

サブネット委任の構成のスクリーンショット。

これにより、プールの排他アクセス用のサブネットが委任され、そのサブネットを他のプールまたはリソースで使用することはできません。 複数のプールを同じ仮想ネットワークに接続するには、複数のサブネットを使用し、それぞれが委任され、独自のプールに関連付けられている必要があります。 サブネットの委任の詳細については、 こちらをご覧ください

サブネットが委任 Microsoft.DevOpsInfrastructure/poolsされると、そのサブネットを使用するようにプールを更新できます。

サブネットを Managed DevOps プールに関連付ける

  1. 新しいプールを作成する場合は、[ネットワーク] タブに移動します。既存のプールを更新するには、[設定ネットワーク]>移動し、[既存の仮想ネットワークに挿入されたエージェント]、[構成] の順に選択します。

    構成オプションのスクリーンショット。

  2. 委任したサブスクリプション、仮想ネットワークサブネットを選択し、[OK] を選択しますMicrosoft.DevOpsInfrastructure/pools

    サブネットをプールに関連付けるスクリーンショット。

ネットワーク更新が完了すると、プール内に新しく作成されたリソースで委任されたサブネットが使用されます。

送信接続の制限

送信接続を制限するシステムがネットワーク (NSG、ファイアウォールなど) に配置されている場合は、次のドメインにアクセスできることを確認する必要があります。そうしないと、Managed DevOps プールが機能しなくなります。 特に明記されていない限り、これらはすべて HTTPS です。

  • サービスが依存する高度にセキュリティで保護されたエンドポイント:
    • *.prod.manageddevops.microsoft.com - マネージド DevOps プール エンドポイント
    • rmprodbuilds.azureedge.net - ワーカー バイナリ
    • vstsagentpackage.azureedge.net - Azure DevOps エージェントの CDN の場所
    • *.queue.core.windows.net - Managed DevOps Pools サービスと通信するための Worker キュー
    • server.pipe.aria.microsoft.com - 一般的なクライアント側テレメトリ ソリューション (特にエージェント プール検証拡張機能によって使用されます)
    • azure.archive.ubuntu.com - Linux マシンのプロビジョニング - HTTPS ではなく HTTP です
    • www.microsoft.com - Linux マシンのプロビジョニング
  • サービスが依存する、安全性が低く、よりオープンなエンドポイント:
    • サービスに必要:
      • packages.microsoft.com - Linux マシンのプロビジョニング
      • ppa.launchpad.net - Ubuntu マシンのプロビジョニング
      • dl.fedoraproject.org - 特定の Linux ディストリビューションのプロビジョニング
    • Azure DevOps エージェントに必要:
      • dev.azure.com
      • *.services.visualstudio.com
      • *.vsblob.visualstudio.com
      • *.vssps.visualstudio.com
      • *.visualstudio.com これらのエントリは、必要な最小ドメインです。 問題がある場合は、必要なドメインの完全な一覧については、Azure DevOps の許可リストを参照してください

コンテナー内で実行するように Azure DevOps パイプラインを構成する場合は、コンテナー イメージのソース (Docker または ACR) も許可リストする必要があります。

関連項目