次の方法で共有


カスタマイズを使用して Azure リソースに接続するか、プライベート リポジトリを複製する

YAML カスタマイズで Azure Key Vault のシークレットを使用して、プライベート リポジトリを複製したり、アクセス トークンを必要とする任意のタスクを作成したりできます。 たとえば、チームカスタマイズ ファイルでは、キー コンテナーに格納されている個人用アクセス トークン (PAT) を使用してプライベート リポジトリにアクセスできます。

カスタマイズ ファイルで Key Vault シークレットを使用する

PAT などのシークレットをカスタマイズ ファイルに使用するには、PAT をキー コンテナー シークレットとして格納します。

チームとユーザーのカスタマイズの両方で、キー ボールトからシークレットを取得することがサポートされています。 チームのカスタマイズ (イメージ定義ファイルとも呼ばれます) は、 image パラメーターを使用して開発ボックスの基本イメージを定義し、開発ボックスの作成時に実行されるタスクを一覧表示します。 ユーザーのカスタマイズには、開発ボックスの作成時に実行されるタスクが一覧表示されます。 次の例は、両方の種類のカスタマイズでキー ボールト シークレットを使用する方法を示しています。

チームまたはユーザーのカスタマイズで使用するキー コンテナー シークレットを構成するには、デベロッパー センター プロジェクトのマネージド ID にキー コンテナーの Key Vault シークレット ユーザー ロールがあることを確認します。

ユーザーのカスタマイズで使用するキー ボールトのシークレットを構成するために、さらに次の操作を行う必要があります。

  1. デベロッパー センター プロジェクトのマネージド ID に、キー コンテナーの Key Vault 閲覧者ロールと Key Vault シークレット ユーザー ロールがあることを確認します。
  2. 使用するキー コンテナー シークレットの Key Vault シークレット ユーザー ロールを、開発ボックスのカスタマイズ時にシークレットの使用権を必要とする個々のユーザーまたはユーザー グループに付与します。 ロールを付与されたユーザーまたはグループには、デベロッパー センターのマネージド ID、管理者のユーザー アカウント、および開発ボックスのカスタマイズ時にシークレットを必要とするユーザーまたはグループが含まれている必要があります。

組み込みの PowerShell タスクでは、Key Vault シークレットをインラインで使用できます。

$schema: "1.0" 
image: microsoftwindowsdesktop_windows-ent-cpc_win11-24H2-ent-cpc 
tasks:  
- name: git-clone
    description: Clone this repository into C:\Workspaces 
    parameters: 
    command: MyCommand –MyParam '{{KEY_VAULT_SECRET_URI}}' 

この例では、イメージ定義ファイルを示します。 KEY_VAULT_SECRET_URIは、キー コンテナー内のシークレットの URI です。

YAML のカスタマイズの中でシークレットを参照するには、以下のようにします (例として git-clone タスクの場合を示します):

$schema: "1.0"
tasks:
  - name: git-clone
    description: Clone this repository into C:\Workspaces
    parameters:
      repositoryUrl: https://myazdo.visualstudio.com/MyProject/_git/myrepo
      directory: C:\Workspaces
      pat: '{{KEY_VAULT_SECRET_URI}}'

この例では、ユーザーカスタマイズ ファイルを示します。 imageは指定されません。

ユーザーのカスタマイズにより、キー コンテナーから PAT を明示的に指定することなく、プライベート リポジトリを複製する Azure DevOps トークンを取得できます。 サービスは、実行時に Azure トークンと Azure DevOps トークンを自動的に交換します。

$schema: "1.0" 
tasks: 
  - name: git-clone 
    description: Clone this repository into C:\Workspaces 
    parameters: 
      repositoryUrl: https://myazdo.visualstudio.com/MyProject/_git/myrepo 
      directory: C:\Workspaces 
      pat: '{{ado://YOUR_ORG_NAME}}' 

Dev Box VS Code 拡張機能と Dev Box CLI では、カスタマイズを行う際の内部ループ テスト ワークフローでのシークレットのハイドレートはサポートされていません。

キー コンテナーのアクセスを構成する

デベロッパー センターは、キー コンテナーにアクセスする必要があります。 デベロッパー センターではサービス タグがサポートされていないため、キー コンテナーがプライベートの場合は、信頼された Microsoft サービスがファイアウォールをバイパスできるようにします。

信頼された Microsoft サービスが Azure Key Vault の設定でファイアウォールをバイパスできるようにするオプションを示すスクリーンショット。

信頼された Microsoft サービスにファイアウォールをバイパスさせる方法については、「 Azure Key Vault のネットワーク設定を構成する」を参照してください。