Используя Powershell в конвейере Azure DevOps, я пытаюсь назначить принципалу хранилища ключей роль 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. Его значение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
?