Azure DevOps パイプラインで Powershell を使用して、キー コンテナーのプリンシパルにロールStorage Account Key Operator Service Role
をストレージ アカウントに割り当てようとしています。
コマンドライン
コマンド ラインは、サービス プリンシパルを使用して Azure に接続した後に実行されます。
$credentials = New-Object -TypeName System.Management.Automation.PSCredential($servicePrincipalApplicationId, $clientSecret)
Connect-AzAccount -ServicePrincipal -Credential $credentials -Tenant $tenantId
実行するコマンドラインは次のとおりです。
New-AzRoleAssignment -ApplicationId $keyVaultServicePrincipalId -ResourceGroupName $resourceGroupName -ResourceName $storageAccountName -ResourceType "Microsoft.Storage/storageAccounts" -RoleDefinitionName "Storage Account Key Operator Service Role"
どこ:
$keyVaultServicePrincipalId
Key Vaultの事前登録済みプリンシパル IDです。その値はcfa8b339-82a2-471a-a3c9-0fc0be7a4093
です。$resourceGroupName
ストレージが配置されているリソース グループの名前です。その値はaccountsmanager-test-global-rg
です。$storageAccountName
私のストレージアカウントの名前です。その値はaccountsmanagertest
です。
サービスプリンシパル
コマンドが実行されるサービス プリンシパルのアクセス許可は次のとおりです。
コマンドは、サブスクリプションで所有者ロールを持つサービス プリンシパルとして実行されます。
そのサブスクリプションで作成されたリソース グループも、そのサービス プリンシパルによって所有されます。
質問
コマンドを実行すると、次のエラーが表示されます。
New-AzRoleAssignment: The provided information does not map to an AD object id.
The provided information does not map to an AD object id.
コマンドの実行時にエラーが発生するのはなぜNew-AzRoleAssignment
ですか?