次の方法で共有


Azure RM サービス プリンシパルのサービス接続のトラブルシューティング (手動)

Azure RM サービス プリンシパルの作成 (手動)

会社のポリシーとセキュリティ プロトコルごとに、一部の Azure DevOps 管理者は Azure サブスクリプションを管理するアクセス許可を持っていません。 サービス プリンシパル名 (SPN) を作成するために、これらの管理者は手動の Azure RM サービス プリンシパル オプションを使用できます。

SPN を作成するには、Azure サブスクリプションと Microsoft Entra ID のアクセス許可を持つユーザーは、次の手順に従います。

  1. Azure portal にサインインします。

  2. Microsoft Entra ID > アプリの登録を選択します。

  3. 一覧でアプリケーションを選択し、新しいクライアント シークレット クライアント シークレット > 選択

  4. アプリケーション シークレットの説明と期間 (パスワードベースの認証) を指定し、 [追加] を選択します。

詳細については、「 新しいアプリケーション シークレットを作成する」を参照してください。

サブスクリプションに対して、この SPN 共同作成者ロールまたは同様の RBAC アクセス許可を指定します。 サブスクリプション レベルで閲覧者ロールを指定することもできます。 ただし、これらのロールが更新またはデプロイするリソースとリソース グループに対する共同作成者アクセス権を付与してください。

サブスクリプションの詳細を取得し、手動の Azure RM サービス プリンシパル オプションを使用して Azure RM サービス接続を作成するには、「 既存のサービス プリンシパルを使用して Azure Resource Manager サービス接続を作成するを参照してください。

サブスクリプションの詳細には、次の情報が含まれます。

  • サブスクリプション ID
  • サブスクリプション名
  • サービス プリンシパル ID (クライアント ID)
  • サービス プリンシパル キー (手順 3 で作成したシークレットの値)
  • テナント ID (ディレクトリ ID)

この情報を取得するには、Azure PowerShell ウィンドウでこの PowerShell スクリプト をダウンロードして実行します。 メッセージが表示されたら、サブスクリプション名、パスワード、ロール (省略可能)、クラウドの種類 (Azure Cloud (既定)、Azure Stack、Azure Government Cloud など) を入力します。

手動の Azure RM サービス接続を確認するときのエラー

現象

手動の Azure RM サービス接続を作成するための詳細を指定した後、 [Verify ] ボタンを選択すると、検証が失敗します。 次のエラー メッセージを受け取ることがあります。

Failed to query service connection API: ''https://management.azure.com/subscriptions/xxxxxx08-xxxx-xxxx-xxxx-eadxxxxxxxxx?api-version=2016-06-01 '. Status Code: 'Forbidden', Response from server: '{"error":{"code":"AuthorizationFailed","message":"The client 'xxxxxxaf-xxxx-xxxx-xxxx-6bexxxxxxxxx' with object id 'xxxxxxaf-xxxx-xxxx-xxxx-6bexxxxxxxxx' does not have authorization to perform action 'Microsoft.Resources/subscriptions/read' over scope '/subscriptions/xxxxxx08-xxxx-48ec-xxxx-eadxxxxxxxxx' or the scope is invalid. If access was recently granted, please refresh your credentials."}}'

新しいサービス接続の作成を示すスクリーンショット。

デバッグ手順

問題を再現しながら、 F12/Fiddler トレースをキャプチャします。

トレース内の POST 呼び出しに対する次の応答が表示されます。

{"result":[],"statusCode":403,"errorMessage":"Failed to query service connection API: 'https://management.azure.com/subscriptions/xxxxxx08-xxxx-xxxx-xxxx-eadxxxxxxxxx?api-version=2016-06-01 '. Status Code: 'Forbidden', Response from server: '{"error":{"code":"AuthorizationFailed","message":"The client 'xxxxxxaf-xxxx-xxxx-xxxx-6bexxxxxxxxx' with object id 'xxxxxxaf-xxxx-xxxx-xxxx-6bexxxxxxxxx' does not have authorization to perform action 'Microsoft.Resources/subscriptions/read' over scope '/subscriptions/xxxxxx08-xxxx-xxxx-xxxx-eadxxxxxxxxx' or the scope is invalid. If access was recently granted, please refresh your credentials."}}'"}

解決方法

新しく作成された SPN (アプリ) にサブスクリプションに対する共同作成者アクセス許可があることを確認します。

Azure Resource Manager サービスの接続に関する問題のトラブルシューティング