Ошибка учетных данных Azure в службе автоматизации Azure

Я пытаюсь создать задание службы автоматизации Azure для создания стандартного набора тегов / значений в подписке.

Для работы с тегами требуется AzureResourceManager, который недоступен в автоматизации из коробки (проголосуйте за это элемент обратной связи!), поэтому я подписался на эти шаги для загрузки модуля ARM.

Когда я тестирую свой модуль Runbook, я получаю следующий результат:

-------------------------
PSComputerName        : localhost
PSSourceJobInstanceId : a8b85213-ee0f-40ea-842f-d33f2e87c910
Id                    : xxxxx-56ad-42c2-97f4-e364456fc4a6
Name                  : xxxxx
Environment           : AzureCloud
Account               : my-service-principal-app-id
Properties            : {Default, Tenants, SupportedModes}
-------------------------
New-AzureTag : Your Azure credentials have not been set up or have expired, please run Add-AzureAccount to set up your 
Azure credentials.
At Add-SubscriptionTags:41 char:41
+ 
    + CategoryInfo          : CloseError: (:) [New-AzureTag], ArgumentException
    + FullyQualifiedErrorId : Microsoft.Azure.Commands.Tags.Tag.NewAzureTagCommand

Вот мой модуль Runbook:

workflow Add-SubscriptionTags
{
    param
    (
        # Subscription
        [Parameter(Mandatory=$true)]
        [ValidateNotNullOrEmpty()]
        [string]
        $SubscriptionName
    )

    # Get the PowerShell credential and prints its properties 
    $cred = Get-AutomationPSCredential -Name 'AzureMaint'

    # Connect to Azure
    Add-AzureAccount -Credential $cred -ServicePrincipal -Tenant 'xxx-49ab-8a9c-4abce32afc1e' | Write-Verbose

    # Set subscription
    $subscription = Select-AzureSubscription -SubscriptionName $SubscriptionName -PassThru
    write-output '-------------------------'
    write-output $subscription
    write-output '-------------------------'

    # Add tags (Requires AzureResourceManager module)
    New-AzureTag -Name 'Managed' -Value $true
    New-AzureTag -Name 'Managed' -Value $false
}

AzureMaint PSCredential содержит идентификатор и ключ участника-службы, а субъекту-службе предоставлена ​​роль участника в указанной подписке. Я могу сделать Add-AzureAccount в ISE с этими учетными данными и добавить теги. Поскольку он успешно печатает информацию о подписке, я предполагаю, что это означает, что Add-AzureAccount был успешным, так почему я получаю сообщение об ошибке?


Обновлять:

Я создал новую учетную запись автоматизации без модуля ARM, и у меня все еще та же проблема, хотя сообщение об ошибке немного отличается:

Your Azure credentials have not been set up or have expired, please run Add-AzureAccount 
to set up your Azure credentials. (Your Azure credentials have not been set up or
have expired, please run Add-AzureAccount to set up your Azure credentials. (Unable 
to retrieve service key for ServicePrincipal account xxx-4a00-becf-952fda93edc5.
Please run the Add-AzureAccount cmdlet to supply the credentials for this service principal.))

Итак, теперь мне интересно, не нравится ли мне использование принципала-службы?


person BenV    schedule 04.06.2015    source источник
comment
Модуль Azure не поддерживает принципала службы для проверки подлинности, только модуль ARM. У вас должна быть такая же проблема с модулем Azure в PowerShell ISE за пределами службы автоматизации Azure.   -  person Joe    schedule 13.06.2015


Ответы (2)


Чтобы обновить здесь, мы обнаружили, что проверка подлинности субъекта-службы в настоящее время не работает в службе автоматизации Azure. Поскольку вы пытаетесь использовать участника-службы, это является причиной проблем, с которыми вы сталкиваетесь.

На данный момент необходимо использовать принципала пользователя, чтобы обойти эту проблему.

Для получения дополнительной информации см. Следующее:

Аутентификация в ресурсах Azure Менеджер с субъектом-службой в службе автоматизации Azure

https://github.com/Azure/azure-powershell/issues/655

person Joe    schedule 30.07.2015
comment
Да, этот связанный вопрос тоже мой. Я вроде как отказался от этого; Я, наверное, должен его удалить. - person BenV; 30.07.2015
comment
Я бы сохранил это, я знаю людей, просматривающих эту ветку. Вот почему я просто ответил на это. - person Joe; 30.07.2015

Использование командлетов ARM в службе автоматизации Azure пока официально не поддерживается. Тем не менее, разные люди добивались успеха в этом. У вас одинаковые версии модулей ARM и Azure PowerShell? Могут случиться странные вещи, если они загружены рядом, но имеют разные версии.

person Joe    schedule 05.06.2015
comment
Я использую ARM 0.9.1 и любой модуль Azure, загруженный по умолчанию в новую учетную запись службы автоматизации Azure (на портале указано, что это версия 19, чего это стоит). - person BenV; 06.06.2015
comment
Обновленный вопрос - проблема, похоже, не связана с ARM. - person BenV; 13.06.2015
comment
На новом портале Azure (portal.azure.com) есть ошибка, из-за которой версия модулей отображается некорректно (19, в вашем случае). Вы можете увидеть версию модуля на старом портале Azure (manage.windowsazure.com) или самостоятельно загрузить определенную версию модуля Azure, чтобы заменить глобальную. - person Joe; 13.06.2015