Поделиться через


Управление учетными данными в службе автоматизации Azure

В ресурсе-контейнере учетных данных службы автоматизации хранится объект, содержащий учетные данные безопасности, например имя пользователя и пароль. Модули Runbook и конфигурации DSC используют командлеты, которые принимают объект PSCredential для проверки подлинности. Кроме того, они могут извлекать имя пользователя и пароль объекта PSCredential, чтобы предоставить их приложению или службе, для доступа к которым требуется проверка подлинности.

Примечание.

К защищенным ресурсам в службе автоматизации Azure относятся учетные данные, сертификаты, подключения и зашифрованные переменные. Эти ресурсы шифруются и хранятся в службе автоматизации Azure с помощью уникального ключа, который создается для каждой учетной записи службы автоматизации. Служба автоматизации Azure хранит ключ в управляемом системой хранилище ключей Key Vault. Перед сохранением защищенного ресурса служба автоматизации Azure загружает ключ из Key Vault, а затем использует его для шифрования ресурса.

Примечание.

См. сведения о просмотре и удалении персональных данных в руководстве по созданию запросов субъектов данных Azure в соответствии с GDPR. Дополнительные сведения о GDPR см. в разделе, посвященном GDPR, в Центре управления безопасностью Майкрософт и на портале Service Trust Portal.

Командлеты PowerShell, используемые для доступа к учетным данным

Командлеты, представленные в следующей таблице, используются для создания учетных данных службы автоматизации с помощью PowerShell и управления ими. Они поставляются в составе модулей Az.

Командлет Description
Get-AzAutomationCredential Извлекает объект CredentialInfo, содержащий метаданные учетных данных. Командлет не извлекает сам объект PSCredential.
New-AzAutomationCredential Создает новые учетные данные службы автоматизации.
Remove-AzAutomationCredential Удаляет учетные данные службы автоматизации.
Set-AzAutomationCredential Задает свойства для существующих учетных данных службы автоматизации.

Другие командлеты, используемые для доступа к учетным данным

Командлеты в следующей таблице используются для доступа к учетным данным в модулях Runbook и конфигурациях DSC.

Командлет Description
Get-AutomationPSCredential Получает объект PSCredential для использования в модуле Runbook или в конфигурации DSC. Чаще всего используется именно этот внутренний командлет, а не командлет Get-AzAutomationCredential, поскольку последний извлекает только сведения об учетных данных. Эта информация обычно не представляет ценности для передачи другому командлету.
Get-Credential Получает учетные данные с запросом имени пользователя и пароля. Этот командлет является частью модуля Microsoft.PowerShell.Security по умолчанию. См. раздел Стандартные модули.
New-AzureAutomationCredential Создает ресурс-контейнер учетных данных. Этот командлет является частью модуля Azure по умолчанию. См. раздел Стандартные модули.

Чтобы получить объекты PSCredential в коде, необходимо импортировать модуль Orchestrator.AssetManagement.Cmdlets. Дополнительные сведения см. в статье Администрирование модулей в службе автоматизации Azure.

Import-Module Orchestrator.AssetManagement.Cmdlets -ErrorAction SilentlyContinue

Примечание.

Не следует использовать переменные в параметре Name Get-AutomationPSCredential. Их использование может усложнить обнаружение зависимостей между модулями Runbook или конфигурациями DSC и ресурсами-контейнерами учетных данных во время разработки.

Функции Python, обращающиеся к учетным данным

Функция, приведенная в следующей таблице, используется для доступа к учетным данным в runbook Python 2 и 3. Модули runbook для Python 3 сейчас доступны в предварительной версии.

Function Description
automationassets.get_automation_credential Извлекает сведения о ресурсе учетных данных.

Примечание.

Импортируйте модуль automationassets в верхнюю часть модуля Runbook Python, чтобы получить доступ к функциям ресурса.

Создание ресурса-контейнера учетных данных

Ресурс-контейнер учетных данных можно создать с помощью портала Azure или Windows PowerShell.

Создание нового ресурса-контейнера учетных данных на портале Azure

  1. В учетной записи службы автоматизации в области слева выберите Учетные данные в разделе Общие ресурсы.

  2. На странице Учетные данные выберите Добавить учетные данные.

  3. В области "Новые учетные данные" введите соответствующее имя учетных данных, следуя стандартам именования.

  4. Введите идентификатор доступа в поле Имя пользователя.

  5. В полях пароля введите секретный ключ доступа.

    Create new credential

  6. Если поле многофакторной проверки подлинности проверка, не проверка его.

  7. Нажмите Создать, чтобы создать новый ресурс-контейнер учетных данных.

Примечание.

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

Создание нового ресурса-контейнера учетных данных с помощью Windows PowerShell

В примере ниже демонстрируется порядок создания новых учетных данных службы автоматизации Azure. Сначала создается объект PSCredential с именем и паролем, после чего он используется для создания ресурса-контейнера учетных данных. Вместо этого можно использовать командлет Get-Credential, чтобы предложить пользователю ввести имя и пароль.

$user = "MyDomain\MyUser"
$pw = ConvertTo-SecureString "PassWord!" -AsPlainText -Force
$cred = New-Object –TypeName System.Management.Automation.PSCredential –ArgumentList $user, $pw
New-AzureAutomationCredential -AutomationAccountName "MyAutomationAccount" -Name "MyCredential" -Value $cred

Получение ресурса-контейнера учетных данных

Модуль Runbook или Конфигурация DSC получают ресурс-контейнер учетных данных с помощью внутреннего командлета Get-AutomationPSCredential. Этот командлет получает объект PSCredential, который можно использовать с командлетом, для которого требуются учетные данные. Можно также получить свойства объекта учетных данных, чтобы использовать их по отдельности. Объект содержит свойства имени пользователя и защищенного пароля.

Примечание.

Командлет Get-AzAutomationCredential не извлекает объект PSCredential, который можно использовать для проверки подлинности. Он только предоставляет сведения об учетных данных. Если необходимо применить учетные данные в модуле Runbook, необходимо получить их как объект PSCredential, используя Get-AutomationPSCredential.

Кроме того, можно использовать метод GetNetworkCredential для получения объекта NetworkCredential, который представляет собой незащищенную версию пароля.

Пример текстового runbook

Команды в приведенном ниже примере демонстрируют использование учетных данных PowerShell в модуле Runbook. Он получает учетные данные и присваивает переменным имя пользователя и пароль.

$myCredential = Get-AutomationPSCredential -Name 'MyCredential'
$userName = $myCredential.UserName
$securePassword = $myCredential.Password
$password = $myCredential.GetNetworkCredential().Password

Вы также можете использовать учетные данные для проверки подлинности в Azure с помощью Подключение-AzAccount после первого подключения к управляемому удостоверению. В этом примере используется управляемое удостоверение, назначаемое системой.

# Ensures you do not inherit an AzContext in your runbook
Disable-AzContextAutosave -Scope Process

# Connect to Azure with system-assigned managed identity
$AzureContext = (Connect-AzAccount -Identity).context

# set and store context
$AzureContext = Set-AzContext -SubscriptionName $AzureContext.Subscription -DefaultProfile $AzureContext

# Get credential
$myCred = Get-AutomationPSCredential -Name "MyCredential"
$userName = $myCred.UserName
$securePassword = $myCred.Password
$password = $myCred.GetNetworkCredential().Password

$myPsCred = New-Object System.Management.Automation.PSCredential ($userName,$securePassword)

# Connect to Azure with credential
$AzureContext = (Connect-AzAccount -Credential $myPsCred -TenantId $AzureContext.Subscription.TenantId).context

# set and store context
$AzureContext = Set-AzContext -SubscriptionName $AzureContext.Subscription `
    -TenantId $AzureContext.Subscription.TenantId `
    -DefaultProfile $AzureContext

Пример графического модуля Runbook

Можно добавить действие для внутреннего командлета Get-AutomationPSCredential в графический модуль Runbook, щелкнув правой кнопкой мыши учетные данные в области "Библиотека" графического редактора и выбрав пункт Добавить на холст.

Add credential cmdlet to canvas

На следующем рисунке показан пример использования учетных данных в графическом Runbook. В этом случае учетные данные предоставляют проверку подлинности для модуля Runbook в ресурсах Azure, как описано в разделе "Использование идентификатора Microsoft Entra в служба автоматизации Azure для проверки подлинности в Azure". Первое действие получает учетные данные с доступом к подписке Azure. Затем действие подключения учетной записи использует эти учетные данные для проверки подлинности любых последующих действий. Здесь используется конвейерная связь, поскольку параметр Get-AutomationPSCredential ожидает один объект.

Credential workflow with pipeline link example

Использование учетных данных в конфигурации DSC

Несмотря на то, что конфигурации DSC в службе автоматизации Azure могут работать с ресурсами-контейнерами учетных данных с помощью Get-AutomationPSCredential, они также могут передавать ресурсы-контейнеры учетных данных посредством параметров. Дополнительные сведения см. в статье Компилирование конфигураций в Azure Automation DSC.

Следующие шаги