マネージド DevOps プール ネットワークを構成する
重要
マネージド DevOps プールは現在プレビュー段階です。 ベータ版、プレビュー版、または一般提供としてまだリリースされていない Azure の機能に適用される法律条項については、「Microsoft Azure プレビューの追加使用条件」を参照してください。
独自の仮想ネットワークへのエージェントの追加
次のようなシナリオでは、Managed DevOps プールから独自の仮想ネットワークにエージェントを追加できます。
- CI/CD エージェントは、Express Route などのサービスを介して会社のネットワークでのみ使用できるリソースにアクセスする必要があります
- CI/CD エージェントは、プライベート エンドポイントに分離されているリソースにアクセスする必要があります
- 会社固有のファイアウォール規則を使用して独自の VNet を導入することで、CI/CD インフラストラクチャをネットワークで分離する必要がある
- すぐに使用できる Managed DevOps プールネットワーク関連の機能では実現できないその他の固有のユース ケース
次の手順を使用して、プールのエージェントを仮想ネットワークに追加できます。
- 仮想ネットワークとサブネットを作成または持ち込む
- サブネットを Microsoft.DevOpsInfrastructure/pools に委任する
- サブネットを 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 プリンシパル アクセスを確認するには
仮想ネットワークのアクセス制御 (IAM) を選択し、[アクセスの確認] を選択します。
DevOpsInfrastructure を検索して選択します。
閲覧者アクセスを確認 します 。 アクセス
Microsoft.Network/virtualNetworks/subnets/serviceAssociationLinks/validate/action
Microsoft.Network/virtualNetworks/subnets/serviceAssociationLinks/write
権が割り当てられていることをMicrosoft.Network/virtualNetworks/subnets/join/action
確認します。 カスタム ロールがここに表示されます。DevOpsInfrastructure にこれらのアクセス許可がない場合は、仮想ネットワークのアクセス制御 (IAM) を選択して追加し、[このリソースへのアクセスを許可する] を選択して追加します。
サブネットを Microsoft.DevOpsInfrastructure/pools に委任する
サブネットは、使用するサブネットに Microsoft.DevOpsInfrastructure/pools
委任する必要があります。
ポータルでサブネットのプロパティを開き、[サブネット委任] セクションで選択 Microsoft.DevOpsInfrastructure/pools
し、[保存] を選択 します。
これにより、プールの排他アクセス用のサブネットが委任され、そのサブネットを他のプールまたはリソースで使用することはできません。 複数のプールを同じ仮想ネットワークに接続するには、複数のサブネットを使用し、それぞれが委任され、独自のプールに関連付けられている必要があります。 サブネットの委任の詳細については、 こちらをご覧ください。
サブネットが委任 Microsoft.DevOpsInfrastructure/pools
されると、そのサブネットを使用するようにプールを更新できます。
サブネットを Managed DevOps プールに関連付ける
新しいプールを作成する場合は、[ネットワーク] タブに移動します。既存のプールを更新するには、[設定ネットワーク]>に移動し、[既存の仮想ネットワークに挿入されたエージェント]、[構成] の順に選択します。
委任したサブスクリプション、仮想ネットワーク、サブネットを選択し、[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) も許可リストする必要があります。