この記事では、Automation アカウントでマネージド ID を使用する際に発生する可能性がある問題の解決方法について説明します。 Automation アカウントでのマネージド ID の使用に関する一般的な情報については、「Azure Automation アカウント認証の概要を参照してください。
シナリオ: システム割り当てマネージド ID を持つ Runbook が 400 エラー メッセージで失敗する
問題点
システム割り当てマネージド ID を持つ Runbook が unable to acquire for tenant organizations with error ManagedIdentityCredential authentication failed. Managed System Identity not found! Status 400 (Bad Request) エラーで失敗する
原因
システム割り当てマネージド ID を作成した後、アクセス許可を割り当てていません。
解決方法
システム割り当てマネージド ID に適切なアクセス許可を割り当てられるようにします。 Azure Automation アカウントのシステム割り当てマネージド ID を使用します
シナリオ: Runbook のマネージド ID がAzureに対して認証できない
問題点
Runbook でマネージド ID を使用すると、"connect-azaccount : ManagedIdentityCredential authentication failed: Failed to get MSI token for account d94c0db6-5540-438c-9eb3-aa20e02e1226 and resource https://management.core.windows.net/. Status: 500 (Internal Server Error)" というエラーが表示されます。
原因
次のどちらかが原因として考えられます。
原因 1: まだ作成されていない Automation アカウントのシステム マネージド ID をあなたが使用し、
Code Connect-AzAccount -Identityは Azure または Hybrid Runbook Worker で Runbook を実行するために Azure に認証を試みます。原因 2: オートメーション アカウントには、システム管理 ID ではなくユーザー管理 ID が割り当てられており、
Code Connect-AzAccount -Identityは Azure VM システム管理 ID を使用して、Azure への認証と Azure 仮想マシンの Hybrid Runbook Worker での Runbook の実行を試みようとしています。
解決方法
Resolution 1: Automation アカウント システムマネージド ID を作成し、Azure リソースへのアクセス権を付与する必要があります。
解決策 2: 要件に応じて次の作業を行います。
- Automation アカウントのシステム マネージド ID を作成し、それを認証に使用します。
または - Automation アカウントのユーザー割り当てマネージド ID を削除します。
- Automation アカウントのシステム マネージド ID を作成し、それを認証に使用します。
シナリオ: ユーザー割り当てマネージド ID が見つからず、Automation アカウントに追加できない
問題点
ユーザー割り当てマネージド ID を Automation アカウントに追加したいと考えています。 しかし、[Automation] ブレードにアカウントが見つかりません。
原因
この問題は、ユーザー割り当てマネージド ID に、[Automation] ブレードでそれを表示するための次のアクセス許可がない場合に発生します。
Microsoft.ManagedIdentity/userAssignedIdentities/*/readMicrosoft.ManagedIdentity/userAssignedIdentities/*/assign/action
メモ
マネージド ID オペレーターとマネージド ID 共同作成者には、上記のアクセス許可が既定で付与されます。
解決方法
ユーザー割り当てマネージド ID を Automation アカウントに追加するための ID オペレーター ロールのアクセス許可があることを確認します。
シナリオ: Runbook が失敗し、"this.Client.SubscriptionId cannot be null. (this.Client.SubscriptionId を null にすることはできません。)" というエラー メッセージが表示される
問題点
マネージド ID Connect-AzAccount -Identity を使用する Runbook では、Azure オブジェクトの管理が試行され、正常に動作できず、次のエラーがログに記録されます - this.Client.SubscriptionId cannot be null.
get-azvm : 'this.Client.SubscriptionId' cannot be null. At line:5 char:1 + get-azvm + ~~~~~~~~ + CategoryInfo : CloseError: (:) [Get-AzVM], ValidationException + FullyQualifiedErrorId : Microsoft.Azure.Commands.Compute.GetAzureVMCommand
原因
これは、マネージド ID (または Runbook で使用される他のアカウント) にサブスクリプションへのアクセス許可が付与されていない場合に発生する可能性があります。
解決方法
マネージド ID (または Runbook で使用されているその他のアカウント) に、サブスクリプションの適切なロール メンバーシップを付与してください。 詳細情報
シナリオ: アカウントの MSI トークンを取得できません
問題点
Automation アカウントでユーザー割り当てマネージド ID を操作すると、Failed to get MSI token for account a123456b-1234-12a3-123a-aa123456aa0b のようなエラーが表示されます。
原因
Automation アカウントのシステム割り当てマネージド ID を有効にする前に、ユーザー割り当てマネージド ID を使用する。
解決方法
自分の Automation アカウント用のシステム割り当てマネージド ID を有効にします。 その後、ユーザー割り当てマネージド ID を使用します。
シナリオ: Automation アカウントでマネージド ID を使用しようとすると失敗する
問題点
Automation アカウントでマネージド ID を使用しようとすると、次のようなエラーが発生します。
Connect-AzureRMAccount : An error occurred while sending the request. At line:2 char:1 + Connect-AzureRMAccount -Identity +
CategoryInfo : CloseError: (:) [Connect-AzureRmAccount], HttpRequestException + FullyQualifiedErrorId : Microsoft.Azure.Commands.Profile.ConnectAzureRmAccountCommand
原因
この問題の最も一般的な原因は、ID を使用する前に有効にしていないことです。 これを確認するには、影響を受ける Automation アカウントで次の PowerShell Runbook を実行します。
$resource= "?resource=https://management.azure.com/"
$url = $env:IDENTITY_ENDPOINT + $resource
$Headers = New-Object "System.Collections.Generic.Dictionary[[String],[String]]"
$Headers.Add("X-IDENTITY-HEADER", $env:IDENTITY_HEADER)
$Headers.Add("Metadata", "True")
try
{
$Response = Invoke-RestMethod -Uri $url -Method 'GET' -Headers $Headers
}
catch
{
$StatusCode = $_.Exception.Response.StatusCode.value__
$stream = $_.Exception.Response.GetResponseStream()
$reader = New-Object System.IO.StreamReader($stream)
$responseBody = $reader.ReadToEnd()
Write-Output "Request Failed with Status: $StatusCode, Message: $responseBody"
}
問題が ID を使用する前に有効にしなかったことが原因である場合は、次のような結果が表示されます。
Request Failed with Status: 400, Message: {"Message":"No managed identity was found for Automation account xxxxxxxxxxxx"}
解決方法
マネージド ID サービスを使用するには、事前に Automation アカウントの ID を有効にする必要があります。 「Azure Automation アカウントのマネージド ID を有効」を参照してください>
次のステップ
この記事で問題を解決できない場合は、追加のサポートを得るために、次のいずれかのチャネルをお試しください。
- Azureフォーラムを通じてAzure専門家から回答を得ます。
- @AzureSupport に問い合わせる。 これは、Azure コミュニティを適切なリソース (回答、サポート、エキスパート) に接続するための公式のMicrosoft Azure アカウントです。
- 未解決の問題のサポート ケースを開く場合は、必要な診断データを収集してから開きます。 Microsoft Azure Automation のケースを開くときに収集するデータを参照してください。
- Azure サポート インシデントを送信します。 Azure サポート サイトに移動し、Get サポート を選択します。