Azure Resource Manager サービス接続のトラブルシューティングTroubleshoot Azure Resource Manager service connections

Azure Pipelines | Azure DevOps Server 2020 | Azure DevOps Server 2019 | TFS 2018 - TFS 2015Azure Pipelines | Azure DevOps Server 2020 | Azure DevOps Server 2019 | TFS 2018 - TFS 2015

注意

Microsoft Team Foundation Server (TFS) 2018 以前のバージョンでは、ビルドとリリースの "パイプライン" は "定義"、"実行" は "ビルド"、"サービス接続" は "サービス エンドポイント"、"ステージ" は "環境"、"ジョブ" は "フェーズ" と呼ばれます。In Microsoft Team Foundation Server (TFS) 2018 and previous versions, build and release pipelines are called definitions, runs are called builds, service connections are called service endpoints, stages are called environments, and jobs are called phases.

このトピックでは、Azure DevOps CI/CD プロセスの Azure Resource Manager ARM サービス接続 を使用して Microsoft Azure への接続を作成するときに発生する可能性のある問題を解決する方法について説明します。This topic will help you resolve issues you may encounter when creating a connection to Microsoft Azure using an Azure Resource Manager ARM service connection for your Azure DevOps CI/CD processes.

Resource Manager サービス接続を作成するとどうなりますか。What happens when you create a Resource Manager service connection?

  1. Azure DevOps の [プロジェクトの設定] ページで、[サービス接続] ページを開きます。In Azure DevOps, open the Service connections page from the project settings page. TFS で、上部のメニューバーにある [設定] アイコンから [ サービス ] ページを開きます。In TFS, open the Services page from the "settings" icon in the top menu bar.

  2. [+ 新しいサービス接続] を選択し、必要なサービス接続の種類を選択します。Choose + New service connection and select the type of service connection you need.

  3. [ Azure Resource Manager サービス接続の追加 ] ダイアログで、接続名を指定し、サブスクリプションのドロップダウンリストからサブスクリプションを選択します。In the Add Azure Resource Manager service connection dialog, provide a connection name, and select a subscription from drop-down list of your subscriptions.

[Azure Resource Manager サービス接続の追加] ダイアログThe Add Azure Resource Manager service connection dialog

[ OK] を選択すると、システムは次のようになります。When you select OK, the system:

  1. の Azure Active Directory (Azure AD) テナントに、選択したサブスクリプションに接続します。Connects to the Azure Active Directory (Azure AD) tenant for to the selected subscription.
  2. ユーザーに代わって Azure AD でアプリケーションを作成します。Creates an application in Azure AD on behalf of the user.
  3. アプリケーションが正常に作成されると、によって、選択したサブスクリプションにアプリケーションが共同作成者として割り当てられます。After the application has been successfully created, assigns the application as a contributor to the selected subscription.
  4. このアプリケーションの詳細を使用して、Azure Resource Manager サービス接続を作成します。Creates an Azure Resource Manager service connection using this application's details.

接続の作成中に発生する可能性のあるエラーのトラブルシューティング方法How to troubleshoot errors that may occur while creating a connection?

システムがサービス接続を作成しようとすると、次のようなエラーが発生する可能性があります。Errors that may occur when the system attempts to create the service connection include:

操作を完了するための十分な特権がありませんInsufficient privileges to complete the operation

これは通常、システムがユーザーに代わって Azure AD でアプリケーションを作成しようとしたときに発生します。This typically occurs when the system attempts to create an application in Azure AD on your behalf.

これは、次の原因によって発生する可能性のあるアクセス許可の問題です。This is a permission issue that may be due to the following causes:

ユーザーは、ディレクトリ内の guest アクセス許可のみを持っています。The user has only guest permission in the directory

この問題を解決するには、ユーザーに最低限のアクセス許可のみを付与することをお勧めします。そのためには、ゲストユーザーのアクセス許可を次のように増やします。The best approach to resolve this issue, while granting only the minimum additional permissions to the user, is to increase the Guest user permissions as follows.

  1. 管理者アカウントを使用して Azure portal にサインインします。Sign in to the Azure portal using an administrator account. アカウントは、 所有者グローバル管理者、または ユーザーアカウント管理者である必要があります。The account should be an owner, global administrator, or user account administrator.

  2. 左側のナビゲーションバーで [ Azure Active Directory ] を選択します。Select Azure Active Directory in the left navigation bar.

  3. ユーザーサブスクリプションに対応する適切なディレクトリを編集していることを確認します。Ensure you are editing the appropriate directory corresponding to the user subscription. それ以外の場合は、[ ディレクトリの切り替え ] を選択し、必要に応じて適切な資格情報を使用してログインします。If not, select Switch directory and log in using the appropriate credentials if required.

  4. [ 管理 ] セクションで、[ ユーザー] を選択します。In the MANAGE section select Users.

  5. [ユーザー設定] を選択します。Select User settings.

  6. [ 外部ユーザー ] セクションで、[ 外部コラボレーション設定の管理] を選択します。In the External users section, select Manage external collaboration settings.

  7. [ 外部コラボレーションの設定 ] ブレードが開きます。The External collaboration settings blade opens.

  8. Guest ユーザーのアクセス許可の変更は、"いいえ" に制限され ています。 Change Guest user permissions are limited to No.

または、ユーザーに追加のアクセス許可 (管理者レベル) を与える準備ができている場合は、ユーザーを グローバル管理者 ロールのメンバーにすることができます。Alternatively, if you are prepared to give the user additional permissions (administrator-level), you can make the user a member of the Global administrator role. これを行うには、次の手順に従います。To do so follow the steps below:

警告

グローバル管理者ロールに割り当てられているユーザーは、Azure AD 組織内のすべての管理設定の読み取りと変更を行うことができます。Users who are assigned to the Global administrator role can read and modify every administrative setting in your Azure AD organization. ベスト プラクティスとして、組織内でこのロールを割り当てる人は 5 人未満にすることをお勧めします。As a best practice, we recommend that you assign this role to fewer than five people in your organization.

  1. 管理者アカウントを使用して Azure portal にサインインします。Sign in to the Azure portal using an administrator account. アカウントは、 所有者グローバル管理者、または ユーザーアカウント管理者である必要があります。The account should be an owner, global administrator, or user account administrator.

  2. 左側のナビゲーションバーで [ Azure Active Directory ] を選択します。Select Azure Active Directory in the left navigation bar.

  3. ユーザーサブスクリプションに対応する適切なディレクトリを編集していることを確認します。Ensure you are editing the appropriate directory corresponding to the user subscription. それ以外の場合は、[ ディレクトリの切り替え ] を選択し、必要に応じて適切な資格情報を使用してログインします。If not, select Switch directory and log in using the appropriate credentials if required.

  4. [ 管理 ] セクションで、[ ユーザー] を選択します。In the MANAGE section select Users.

  5. 検索ボックスを使用して一覧をフィルター処理し、管理するユーザーを選択します。Use the search box to filter the list and then select the user you want to manage.

  6. [ 管理 ] セクションで [ ディレクトリロール ] を選択し、ロールを [ グローバル管理者] に変更します。In the MANAGE section select Directory role and change the role to Global administrator.

  7. 変更を保存します。Save the change.

通常、変更をグローバルに適用するには、15 ~ 20 分かかります。It typically takes 15 to 20 minutes to apply the changes globally. この期間が経過すると、ユーザーはサービス接続の作成を再試行できます。After this period has elapsed, the user can retry creating the service connection.

ユーザーは、ディレクトリにアプリケーションを追加する権限がありませんThe user is not authorized to add applications in the directory

ディレクトリに統合アプリケーションを追加するためのアクセス許可が必要です。You must have permissions to add integrated applications in the directory. ディレクトリ管理者は、この設定を変更するアクセス許可を持っています。The directory administrator has permissions to change this setting.

  1. 左側のナビゲーションバーで [ Azure Active Directory ] を選択します。Select Azure Active Directory in the left navigation bar.

  2. ユーザーサブスクリプションに対応する適切なディレクトリを編集していることを確認します。Ensure you are editing the appropriate directory corresponding to the user subscription. それ以外の場合は、[ ディレクトリの切り替え ] を選択し、必要に応じて適切な資格情報を使用してログインします。If not, select Switch directory and log in using the appropriate credentials if required.

  3. [ 管理 ] セクションで、[ ユーザー] を選択します。In the MANAGE section select Users.

  4. [ユーザー設定] を選択します。Select User settings.

  5. [ アプリの登録 ] セクションで、[ ユーザーがアプリケーションを登録できる ようにする ] を [はい] に設定します。In the App registrations section, change Users can register applications to Yes.

ユーザーが既に必要なアクセス許可を持っている状態で、サービスプリンシパルを手動で作成 Azure Active DirectoryCreate the service principal manually with the user already having required permissions in Azure Active Directory

また、Azure Active Directory で必要なアクセス許可を既に持っている既存のユーザーを使用して、サービスプリンシパルを作成することもできます。You can also create the service principal with an existing user who already has the required permissions in Azure Active Directory. 詳細については、「 既存のサービスプリンシパルを使用して Azure Resource Manager サービス接続を作成する」を参照してください。For more information, see Create an Azure Resource Manager service connection with an existing service principal.

アクセストークンを取得できなかったか、有効な更新トークンが見つかりませんでしたFailed to obtain an access token or a valid refresh token was not found

これらのエラーは、通常、セッションが期限切れになったときに発生します。These errors typically occur when your session has expired.

これらの問題を解決するには:To resolve these issues:

  1. Azure Pipelines または TFS からサインアウトします。Sign out of Azure Pipelines or TFS.
  2. InPrivate または incognito ブラウザーウィンドウを開き、に移動し https://visualstudio.microsoft.com/team-services/ ます。Open an InPrivate or incognito browser window and navigate to https://visualstudio.microsoft.com/team-services/.
  3. サインアウトを求めるメッセージが表示された場合は、それを実行します。If you are prompted to sign out, do so.
  4. 適切な資格情報を使用してサインインします。Sign in using the appropriate credentials.
  5. 使用する組織を一覧から選択します。Choose the organization you want to use from the list.
  6. サービス接続を追加するプロジェクトを選択します。Select the project you want to add the service connection to.
  7. [ 設定 ] ページを開いて、必要なサービス接続を作成します。Create the service connection you need by opening the Settings page. 次に、[サービス] [ > 新しいサービス接続 > Azure Resource Manager] の順に選択します。Then, select Services > New service connection > Azure Resource Manager.

共同作成者ロールを割り当てることができませんでしたFailed to assign Contributor role

このエラーは、通常、システムが 共同作成者 ロールを割り当てようとしたときに、選択した Azure サブスクリプションに対する 書き込み アクセス許可がない場合に発生します。This error typically occurs when you do not have Write permission for the selected Azure subscription when the system attempts to assign the Contributor role.

この問題を解決するには、 適切なロールを割り当てるようにサブスクリプション管理者に依頼してください。To resolve this issue, ask the subscription administrator to assign you the appropriate role.

サブスクリプションの一覧に一部のサブスクリプションがありませんSome subscriptions are missing from the list of subscriptions

この問題を解決するには、サポートされているアカウントの種類と、アプリケーションを使用できるユーザーを変更する必要があります。To fix this issue you will need to modify the supported account types and who can use your application. そのためには、次の手順に従います。To do so, follow the steps below:

  1. Azure portal にサインインします。Sign in to the Azure portal.

  2. 複数のテナントにアクセスできる場合は、上部のメニューにある [ ディレクトリ + サブスクリプション ] フィルターを使用して、アプリケーションを登録するテナントを選択します。If you have access to multiple tenants, use the Directory + subscription filter in the top menu to select the tenant in which you want to register an application.

  3. Azure Active Directory を検索して選択します。Search for and select Azure Active Directory.

  4. [管理][アプリの登録] を選択します。Under Manage, select App registrations.

  5. 登録済みアプリケーションの一覧からアプリケーションを選択します。Select you application from the list of registered applications.

  6. [ 要点] で、[ サポートされているアカウントの種類] を選択します。Under Essentials, select Supported account types.

  7. [ サポートされているアカウントの種類] で、 このアプリケーションを使用するか、この API にアクセスできるユーザーは任意の組織ディレクトリ内のアカウント を選択します。Under Supported account types, Who can use this application or access this API? select Accounts in any organizational directory.

  8. [保存] を選択します。Select Save.

サービス接続の作成時にサブスクリプションが一覧に表示されないSubscription isn't listed when creating a service connection

さまざまな Azure サブスクリプションのドロップダウンメニュー (課金、サービス接続など) で、最大50の Azure サブスクリプションが一覧表示されます。A maximum of 50 Azure subscriptions are listed in the various Azure subscription drop-down menus (billing, service connection, etc.). サービス接続を設定していて、50を超える Azure サブスクリプションがある場合は、一部のサブスクリプションが表示されません。If you're setting up a service connection and you have more than 50 Azure subscriptions, some of your subscriptions won't be listed. このシナリオでは、次の手順を実行します。In this scenario, complete these steps:

  1. Azure のサブスクリプションのために、Azure AD インスタンスに新しいネイティブ Azure AD ユーザーを作成します。Create a new, native Azure AD user in the Azure AD instance for the Azure subcription.

  2. Azure DevOps の課金またはサービス接続を設定するための適切なアクセス許可が Azure のサブスクリプションに付与されるように Azure AD ユーザーを設定します。Set up the Azure AD user so that it has the proper permissions in the Azure subcription to set up Azure DevOps billing or a service connection. 詳細については、「 Azure DevOps の課金を設定できるユーザーを追加する」を参照してください。For more information, see Add a user who can set up billing for Azure DevOps.

  3. 利害関係 者のアクセスレベルを使用して Azure DevOps org に Azure AD ユーザーを追加し、プロジェクトコレクション管理者 グループに追加します (課金の場合)。または、チームプロジェクトでサービス接続を作成するための十分なアクセス許可がユーザーにあることを確認します。Add the Azure AD user to the Azure DevOps org with the access level of Stakeholder and add them to the Project Collection Administrators group (for billing), or ensure that the user has sufficient permissions in the Team Project to create service connections.

  4. このユーザーとして Azure DevOps にログインし、課金サービス接続を設定します。Log in to Azure DevOps as this user and set up a billing service connection. 一覧には、Azure のサブスクリプションが1つだけ表示されます。You'll only see one Azure subcription in the list.

自動的に作成されたサービスプリンシパルのクライアントシークレットの有効期限が切れましたAutomatically created service principal client secret has expired

自動的に作成されるサービスプリンシパルで発生する可能性のある問題は、サービスプリンシパルのトークンの有効期限が切れ、更新する必要があることです。An issue that often arises with service principals that are automatically created is that the service principal's token expires and needs to be renewed. トークンの更新に関する問題が発生した場合は、 他のトラブルシューティングの解決策を確認してください。If you run into issues with refreshing the token, check out our other troubleshooting resolutions.

自動的に作成されたサービスプリンシパルのトークンを更新するには、次のようにします。To renew the token for an automatically created service principal:

  1. 自動メソッドを使用して作成された Azure Resource Manager サービス接続にアクセスします。Go to the Azure Resource Manager service connection that was created by using the Automatic method.

  2. 右上隅にある [ 編集] をクリックします。In the upper-right corner, click Edit.

  3. [サービス接続] ページで [ 確認 ] をクリックします。Click Verify on the service connection page.

  4. [保存] をクリックします。Click Save. これで、サービスプリンシパルのクライアントシークレットが2年間更新されました。The client secret for that service principal has now been renewed for two years.

サービスプリンシパルのクライアント ID を使用して JWT を取得できませんでしたFailed to obtain the JWT by using the service principal client ID

この問題は、有効期限が切れたシークレットを持つサービス接続を検証しようとした場合に発生します。This issue occurs when you try to verify a service connection that has an expired secret.

この問題を解決するには、次の手順を実行します。To resolve this issue:

  1. 更新する Azure Resource Manager サービス接続にアクセスします。Go to the Azure Resource Manager service connection you want to update.

  2. サービス接続を変更します。Make a change to the service connection. 最も簡単で推奨される変更は、説明を追加することです。The easiest and recommended change is to add a description.

  3. サービス接続を保存します。Save the service connection.

    注意

    [保存] を選択します。Select Save. この手順では検証しないでください。Don't try to verify at this step.

  4. サービス接続を終了し、[サービス接続] ページを更新します。Exit the service connection, and then refresh the service connections page.

  5. サービス接続をもう一度編集します。Edit the service connection again.

  6. [確認] をクリックします。Click Verify.

  7. サービス接続を保存します。Save the service connection.

PowerShell スクリプトと Azure Cloud Shell を使用して手動でサービス接続を作成することはできませんCan't create a service connection manually by using PowerShell scripts and Azure Cloud Shell

Azure Resource Manager サービス接続を手動で作成する方法については、「 Azure Resource Manager サービス接続で使用する Azure サービスプリンシパルを作成する」を参照してください。To learn how to manually create an Azure Resource Manager service connection, see Create an Azure service principal to use with an Azure Resource Manager service connection.

前のタスクの出力から Azure サブスクリプションが直接取得されないAzure subscription not taken directly from previous task output

リリースパイプラインに対して Azure サブスクリプションを動的に設定し、サブスクリプションが前のタスクの出力変数である場合、この問題が発生する可能性があります。When you set an Azure subscription dynamically for the release pipeline and the subscription is an output variable from a preceding task, you might encounter this issue.

この問題を解決するには、[パイプライン変数] セクション内で値が定義されていることを確認します。これは、サブスクリプション名またはサービス接続で使用できます。To resolve the issue, ensure that the values are defined within the pipeline variables section, which can be used in the subscription name or the service connection.

どのような認証メカニズムがサポートされていますか。What authentication mechanisms are supported? マネージド Id のしくみHow do Managed Identities work?

Azure Resource Manager サービス接続は、サービスプリンシパル認証 (SPA) またはマネージ Id 認証を使用して Microsoft Azure サブスクリプションに接続できます。Azure Resource Manager service connection can connect to a Microsoft Azure subscription using Service Principal Authentication (SPA) or Managed Identity Authentication. Azure リソースのマネージド ID は、Azure Active Directory で自動的に管理される ID を Azure サービスに提供します。Managed identities for Azure resources provides Azure services with an automatically managed identity in Azure Active Directory. この id を使用すると、コードまたはサービス接続で資格情報を保持することなく、Azure AD 認証をサポートする任意のサービスに対して認証を行うことができます。You can use this identity to authenticate to any service that supports Azure AD authentication, without persisting credentials in code or in the service connection. 仮想マシンの管理対象 id の詳細については、「 ロールの割り当て 」を参照してください。See Assigning roles to learn about managed identities for virtual machines.

注意

マネージド id は、Microsoft がホストするエージェントではサポートされていません。Managed identities are not supported in Microsoft Hosted Agents. Azure VM に 自己ホスト型エージェントを設定 し、仮想マシンの管理対象 id を構成する必要があります。You will have to set-up a self hosted agent on an Azure VM and configure managed identity for the virtual machine.

ヘルプとサポートHelp and support