YAML カスタマイズで Azure Key Vault のシークレットを使用して、プライベート リポジトリを複製したり、アクセス トークンを必要とする任意のタスクを作成したりできます。 たとえば、チームカスタマイズ ファイルでは、キー コンテナーに格納されている個人用アクセス トークン (PAT) を使用してプライベート リポジトリにアクセスできます。
カスタマイズ ファイルで Key Vault シークレットを使用する
PAT などのシークレットをカスタマイズ ファイルに使用するには、PAT をキー コンテナー シークレットとして格納します。
チームとユーザーのカスタマイズの両方で、キー ボールトからシークレットを取得することがサポートされています。 チームのカスタマイズ (イメージ定義ファイルとも呼ばれます) は、 image
パラメーターを使用して開発ボックスの基本イメージを定義し、開発ボックスの作成時に実行されるタスクを一覧表示します。 ユーザーのカスタマイズには、開発ボックスの作成時に実行されるタスクが一覧表示されます。 次の例は、両方の種類のカスタマイズでキー ボールト シークレットを使用する方法を示しています。
チームまたはユーザーのカスタマイズで使用するキー コンテナー シークレットを構成するには、デベロッパー センター プロジェクトのマネージド ID にキー コンテナーの Key Vault シークレット ユーザー ロールがあることを確認します。
ユーザーのカスタマイズで使用するキー ボールトのシークレットを構成するために、さらに次の操作を行う必要があります。
- デベロッパー センター プロジェクトのマネージド ID に、キー コンテナーの Key Vault 閲覧者ロールと Key Vault シークレット ユーザー ロールがあることを確認します。
- 使用するキー コンテナー シークレットの 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 のネットワーク設定を構成する」を参照してください。