Azure Resource Manager Workload Identity サービス接続を手動で設定
Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019
Note
新しい Azure サービス接続の作成エクスペリエンスをロールアウトしています。 組織で受け取る方法はさまざまな要因によって異なり、以前のユーザー エクスペリエンスが引き続き表示される場合があります。
Azure Resource Manager Workload Identity サービス接続のトラブルシューティングを行う場合、Azure DevOps で利用可能な自動ツールを使用する代わりに、接続を手動で構成することが必要になる場合があります。
手動構成を開始する前に、自動化されたアプローチを試すことをお勧めします。
認証には、マネージド ID を使用するか、アプリの登録を使用するかの 2 つのオプションがあります。 マネージド ID オプションの利点は、サービス プリンシパルを作成するアクセス許可がない場合、または Azure DevOps ユーザーとは異なる Microsoft Entra テナントを使用している場合でも、マネージド ID オプションを使用できます。
ワークロード ID サービス接続を設定する
Azure Pipelines のマネージド ID 認証を手動で設定するには、次の手順を実行して Azure portal でマネージド ID を作成し、Azure DevOps でサービス接続を確立し、フェデレーション資格情報を追加して、必要な権限を付与します。 これを行うには、この順番で次の手順を実行します。
- Azure Portal でマネージド ID を作成します。
- Azure DevOps のサービス接続を作成して下書きとして保存します。
- Azure Portal で、マネージド ID にフェデレーション資格情報を追加します。
- Azure Portal で、マネージド ID に権限を付与します。
- Azure DevOps にサービス接続を保存します。
このプロセスには REST API を使用することもできます。
マネージド ID 認証の前提条件
- ユーザー割り当てマネージド ID を作成するには、お使いの Azure アカウントにマネージド ID 共同作成者以上のロールの割り当てが必要です。
- マネージド ID を使用してパイプライン内の Azure リソースにアクセスするには、マネージド ID にリソースへのアクセスを割り当てます。
Azure Portal で、マネージド ID を作成します。
Azure portal にサインインします。
検索ボックスに、「マネージド ID」と入力します。
[作成] を選択します
ユーザー割り当てマネージド ID の作成 ペインで、次の項目の値を入力または選択します。
- サブスクリプション: ユーザー割り当てマネージド ID を作成するサブスクリプションを選択します。
- リソース グループ: ユーザー割り当てマネージド ID を作成するリソース グループを選択するか、 新規作成を選択して新しいリソース グループを作成します。
- リージョン: ユーザー割り当てのマネージド ID をデプロイするリージョンを選択します (米国東部 など)。
- 名前: ユーザー割り当てのマネージド ID の名前を入力します (UADEVOPS など)。
[レビューして作成] を選択し、新しいマネージド ID を作成します。 デプロイが完了したら、[リソースに移動] を選択します。
後で使用するために、マネージド ID のサブスクリプション、サブスクリプション ID、クライアント ID の値をコピーします。
Azure Portal でマネージド ID を使用して、[設定]>[プロパティ] の順に選択します。
後で使用する [テナント ID] の値をコピーします。
Azure DevOps でマネージド ID 認証用のサービス接続を作成する
Azure DevOps でプロジェクトを開き、>[パイプライン]>[サービス接続] に移動します。
[新しいサービス接続] を選択します。
[Azure Resource Manager] を選択します。
ID の種類として [アプリの登録またはマネージド ID (手動)]、資格情報として [ワークロード ID フェデレーション] を選択します。
[サービス接続名] の場合は、
uamanagedidentity
などの値を入力します。 この値は、フェデレーション資格情報サブジェクト識別子で使用します。[次へ] を選択します。
[ステップ 2: アプリの登録の詳細] での指定:
[ステップ 2: アプリ登録の詳細] には、次のパラメーターが含まれています。 次のパラメータを入力または選択できます。
パラメーター 説明 発行者 必須。 DevOps により発行者 URL が自動的に作成されます。 サブジェクト識別子 必須。 DevOps によってサブジェクト識別子が自動的に作成されます。 Environment 必須。 接続先のクラウド環境を選択します。 Azure Stack を選択した場合は、 https://management.local.azurestack.external
のような環境 URL を入力します。[スコープ レベル] を選択します。 [サブスクリプション]、[管理グループ]、または [Machine Learning ワークスペース] を選択します。 管理グループは、複数のサブスクリプションのアクセス、ポリシー、コンプライアンスを管理するのに役立つコンテナーです。 Machine Learning ワークスペースは機械学習アーティファクトを作成するための場所です。
[サブスクリプション] スコープに次のパラメーターを入力します。
パラメーター 説明 サブスクリプション ID 必須。 Azure サブスクリプション ID を入力します。 サブスクリプション名 必須。 Azure サブスクリプション名を入力します。 [管理グループ] スコープに次のパラメーターを入力します。
パラメーター 説明 管理グループ ID 必須。 Azure 管理グループ ID を入力します。 管理グループ名 必須。 Azure 管理グループ名を入力します。 [Machine Learning ワークスペース] スコープに次のパラメーターを入力します。
パラメーター 説明 サブスクリプション ID 必須。 Azure サブスクリプション ID を入力します。 サブスクリプション名 必須。 Azure サブスクリプション名を入力します。 リソース グループ 必須。 ワークスペースを含むリソース グループを選択します。 ML ワークスペース名 必須。 既存の Azure Machine Learning ワークスペースの名前を入力します。 ML ワークスペースの場所 必須。 既存の Azure Machine Learning ワークスペースの場所を入力します。
[認証] セクションで次のパラメーターを入力または選択します。
パラメーター 説明 アプリケーション (クライアント) ID 必須。 マネージド ID の クライアント ID を入力します。 ディレクトリ (テナント) ID 必須。 マネージド ID のテナント ID を入力します。 [セキュリティ] セクションで、[すべてのパイプラインへのアクセス許可を与える] を選択してすべてのパイプラインがこのサービス接続を使用できるようにします。 このオプションを選択しない場合は、このサービス接続を使用する各パイプラインへのアクセス権を手動で付与する必要があります。
Azure DevOps で、[発行者] と [サブジェクト識別子] に対して生成された値をコピーします。
[下書きとして保存] を選択し、下書きの資格情報を保存します。 Azure Portal でマネージド ID にフェデレーション資格情報が紐づけられるまで、設定を完了できません。
Azure Portal で、フェデレーション資格情報を追加する
新しいブラウザ ウィンドウで、Azure Portal でマネージド ID を使用して、[設定]>[フェデレーション資格情報] の順に選択します。
[Add Credentials] (資格情報の追加) を選択します。
[Other issuer] (その他の発行者) シナリオを選択します。
Azure DevOps プロジェクトからコピーした 発行者とサブジェクト識別子の値を、Azure portal のフェデレーション資格情報に貼り付けます。
フェデレーション資格情報の名前を入力します。
[追加] を選択します。
Azure Portal で、マネージド ID に権限を付与する
Azure Portal で、権限を付与する Azure リソースに移動します (リソース グループなど)。
[アクセス制御 (IAM)] を選択します。
[ロールの割り当ての追加] を選択します。 必要なロールをマネージド ID に割り当てます (例: 共同作成者)。
[確認と作成] を選択します。
Azure DevOps サービス接続を保存する
Azure DevOps で、ドラフト サービス接続に戻ります。
[セットアップの終了] を選択します。
[Verify and save] を選択します。 この手順が正常に完了すると、マネージド ID が完全に構成されます。