Политики доступа к Key Vault основаны на идентификаторах объектов AAD.При вызове Set-AzureRmKeyVaultAccessPolicy и указании ServicePrincipal или чего-либо, кроме ObjectId, командлету необходимо преобразовать ServicePrincipal в идентификатор объекта AAD, выполнив прямой запрос к AAD.Это делается перед вызовом Key Vault с обновленной политикой.
Чтобы предотвратить необходимость запроса AAD, заранее найдите идентификатор объекта субъекта службы.Затем передайте идентификатор объекта в параметр «ObjectId».Вам также следует передать параметр «BypassObjectIdValidation», чтобы указать, что командлет не должен пытаться проверить значение параметра ObjectID с помощью AAD,
Чтобы найти идентификатор объекта участника службы, выполните следующую командупри входе в систему как пользователь с правами на запрос в AAD.
Get-AzureRmADServicePrincipal -ServicePrincipalName 262044b1-e2ce-469f-a196-69ab7ada62d3
Используйте возвращенное поле «Id:» в вашей команде Set-AzureRmKeyVaultAccessPolicy, например:
Set-AzureRmKeyVaultAccessPolicy -VaultName VNAME -ResourceGroupName RGROUP -AzureRmContext $context -PermissionsToSecrets backup,get,list -ObjectID 00000000-0000-0000-0000-000000000000 -BypassObjectIdValidation
Где 00000000-0000-0000-0000-000000000000 следует заменить фактическим идентификатором объекта участника службы.