次の方法で共有


マネージド DevOps プールのセキュリティの設定を設定する

プールの作成時に[セキュリティ]タブを使用し、[ セキュリティ 設定]ペインを使用してプールの作成後に、マネージド DevOps プールの セキュリティ 設定を構成できます。

組織のアクセスを構成する

既定では、Managed DevOps プールは、組織内のすべてのプロジェクトに付与されたプールへのアクセス権を持つ単一の組織用に構成されます。 必要に応じて、組織内の特定のプロジェクトへのアクセスを制限したり、必要に応じて追加の組織へのアクセスを許可したりできます。

1 つの組織でプールを使用する

既定では、Managed DevOps プールは、プールの作成時に指定する単一の Azure DevOps 組織で使用するように構成されています。 プールが 1 つの組織用に構成されている場合、組織名が表示され、[プールの設定] に構成されます

既定では、[ すべてのプロジェクトにプールを追加 ] は [はい] に設定され、Managed DevOps プールへのアクセスは組織内のすべてのプロジェクトに付与されます。 [ いいえ ] を選択して、プールを使用できる組織内のプロジェクトを制限するプロジェクトの一覧を指定します。

1 つの組織のプロジェクトを構成するスクリーンショット。

複数の組織でプールを使用する

複数の組織でプールを使用して、複数の Azure DevOps 組織でプールを使用できるようにします。 各組織について、プールの使用を許可するプロジェクトを指定するか、空白のままにしてすべてのプロジェクトを許可します。 プールの最大エージェントで指定されたコンカレンシーの各部分を各組織に割り当てることで、各組織の並列処理を設定します。 すべての組織の並列処理の合計は、プールの最大コンカレンシーと等しい必要があります。 たとえば、 最大エージェント が 5 に設定されている場合、指定した組織の並列処理の合計は 5 である必要があります。 最大エージェントが 1 に設定されている場合、プールは 1 つの組織でのみ使用できます。

次の例では、プールは fabrikam-tailspin 組織の FabrikamResearch プロジェクトと FabrikamTest プロジェクト、および fabrikam-blue 組織内のすべてのプロジェクトで使用できるように構成されています。

複数の組織を構成するスクリーンショット。

The sum of parallelism for all organizations must equal the max concurrency.などのエラーが発生した場合は、プールの最大エージェント数が並列処理列の合計と一致していることを確認します。

プールへのパイプラインのオープン アクセスを構成する

パイプラインのオープン アクセスを構成するには、「 前提条件 - Azure DevOps のアクセス許可を確認する」で説明されているアクセス許可に加えて、次のアクセス許可が必要です。

既定では、すべてのパイプライン定義は、そのプールで初めて実行される前に、セルフホステッド エージェント プール (Managed DevOps プールなど) で実行することを明示的に承認する必要があります。

Azure DevOps には、エージェント プールで実行するパイプラインを承認するための次のモードが用意されています。

  • 特定のパイプラインを承認する - プールで実行する Azure DevOps プロジェクトの特定のパイプラインを個別に承認します。 この方法は既定です。
  • オープン アクセス - プロジェクト レベルでエージェント プールを構成し、そのプロジェクト内のすべてのパイプラインで使用できるようにします。

プールの作成時に Azure DevOps でオープン アクセス エージェント プール設定を構成するために、承認 (オープン アクセス) なしですべてのパイプラインをプールで実行できるようにするを有効にします。

[ 承認なしですべてのパイプラインをプールで実行することを許可する (オープン アクセス)] 設定は、プールが作成されたときにのみ、Managed DevOps プールで構成できます。 Managed DevOps プールが作成されたら、プールを使用するプロジェクトごとに、Azure DevOps 内の対応するエージェント プールに対するオープン アクセスを表示および構成できます。

指定されたプロジェクト内のすべてのパイプラインから Managed DevOps プールへのアクセスを構成するために、 承認 (オープン アクセス) なしで すべてのパイプラインをプールで実行できるようにするを有効にします。

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

  • [すべてのプロジェクトにプールを追加する][はい] に設定されている場合、Managed DevOps Pools は、すべてのプロジェクトのすべてのパイプラインに対してオープン アクセスを構成します。
  • [すべてのプロジェクトにプールを追加する][いいえ] に設定されている場合、Managed DevOps Pools では、一覧に記載されているプロジェクト内のすべてのパイプラインに対してオープン アクセスが構成されます。

複数の組織で [プールの使用] を有効にした場合は、組織ごとに個別にオープン アクセスを指定できます。

複数の組織のオープン アクセスを構成するスクリーンショット。

エージェント プールへのアクセスが承認されていないパイプラインを実行しようとすると、 This pipeline needs permission to access a resource before this run can continueのようなエラーが表示されます。 この問題を解決するには、前のセクションで説明したようにオープン アクセスを構成するか、 エージェント プールで実行するパイプラインを明示的に承認します。

対話型モードを構成する

テストで UI テスト用の対話型ログインが必要な場合は、 EnableInteractiveMode 設定を有効にして対話型ログインを有効にします。

対話型モードの構成のスクリーンショット。

プール管理のアクセス許可

マネージド DevOps プール作成プロセスの一環として、組織レベルのエージェント プールが Azure DevOps に作成されます。 プール管理のアクセス許可の設定では、新しく作成された Azure DevOps プールの管理者ロールを付与するユーザーを指定します。 Managed DevOps プールの作成後に Azure DevOps エージェント プールのアクセス許可を表示 および管理するには、「エージェント プールの作成と管理 - エージェント プールのセキュリティ」を参照してください。

プール管理アクセス許可の構成のスクリーンショット。

  • 作成者のみ - Managed DevOps プールを作成したユーザーが Azure DevOps エージェント プールの管理者として追加され、エージェント プールのセキュリティ設定で 継承[オフ ] に設定されます。 作成者のみが 既定の設定です。
  • プロジェクトからアクセス許可を継承 する - Managed DevOps プールを作成したユーザーは Azure DevOps エージェント プールの管理者として 追加され、 継承はエージェント プールのセキュリティ設定で [オン] に設定されます。
  • 特定のアカウント - Azure DevOps で作成されたエージェント プールの管理者として追加するアカウントを指定します。 既定では、Managed DevOps プールの作成者が一覧に追加されます。

プールの管理アクセス許可の設定は、プールの作成時に [セキュリティ] タブで構成され、プールの作成後に [セキュリティ] 設定には表示されません。 Managed DevOps プールの作成後に Azure DevOps エージェント プールのアクセス許可を表示 および管理するには、「エージェント プールの作成と管理 - エージェント プールのセキュリティ」を参照してください。

Key Vault の構成

マネージド DevOps プールは、プロビジョニング中に Azure Key Vault から証明書をフェッチする機能を提供します。つまり、パイプラインを実行する時点までに、証明書はマシン上に既に存在します。

この機能を使用するには、次の操作を行う必要があります。

api-version 2025-01-21時点では、この機能を使用する場合は、プールで 1 つの ID のみを使用できます。 複数の ID のサポートは近日中に追加される予定です。

Key Vault からシークレットをフェッチするために使用できる ID は 1 つだけです。

Managed DevOps Pools 証明書の設定はプール レベルで設定され、一部の設定は Windows または Linux に固有です。 ワークフローで Linux イメージと Windows イメージの両方が必要な場合は、Windows と Linux の両方で動作する共通の証明書設定のセットが見つからない場合は、それらを複数のプールに分割する必要があります。

次の設定では、Key Vault からフェッチされた証明書を構成します。

  • 証明書 (observedCertificates)

    Key Vault からフェッチし、プール内のすべてのマシンにインストールする証明書を指定します。

  • 証明書ストアの場所 (certificateStoreLocation)

    エージェントに証明書をインストールする場所を指定します。

    • Windows エージェント: LocalMachine または CurrentUserを指定します。
    • Linux エージェント: 証明書ストアの場所 は、Ubuntu ディストリビューションでのみサポートされます。 証明書を格納するディスク パスを指定します (例: /var/lib/waagent/Microsoft.Azure.KeyVault/app1)。 Ubuntu ディストリビューションの場合、信頼できるストアの場所 ( /usr/local/share/ca-certificatesなど) を指定すると、証明書がその証明書ストアにルートとして追加されます。 詳細については、「 信頼ストアにルート CA 証明書をインストールする」を参照してください。
  • 証明書ストア名 (certificateStoreName)

    • Windows エージェント: My (ローカル証明書ストア - 名前が指定されていない場合は既定) または Root (信頼されたルートの場所) のいずれかの証明書ストアの名前を指定します。
    • Linux エージェント: この設定は Linux エージェントでは使用されません。
  • エクスポート可能な秘密キー (keyExportable)

    証明書のキーがエクスポート可能かどうか。 既定値は falseです。

Key Vault の統合は 、[設定] > [セキュリティ] で構成されます。

Key Vault 証明書の構成のスクリーンショット。

Key Vault 統合設定は、プールの作成後にのみ構成できます。 Key Vault 統合設定はプールの作成時に構成できません。また、プールの作成時に [ セキュリティ ] タブには表示されません。

SecretManagementSettings の構成

プール上の SecretManagementSettings を使用して取得された証明書は、Key Vault 内で発行された最新バージョンと自動的に同期されます。 これらのシークレットは、最初のパイプラインを実行する時点までにマシン上に配置されます。つまり、時間を節約し、証明書をフェッチするためのタスクを削除できます。

重要

アクセス許可またはネットワークの問題が原因でシークレットを Key Vault からフェッチできない場合、エージェント仮想マシンのプロビジョニングは失敗します。

Windows の場合、証明書ストアの場所は、 LocalMachine または CurrentUserに設定できます。 この設定により、シークレットがマシン上のその場所に確実にインストールされます。 シークレットの取得のしくみの具体的な動作については、 Windows 用の Azure Key Vault 拡張機能を参照してください。

関連項目