Administración de credenciales en Azure Automation

Un recurso de credencial de Automation incluye un objeto que contiene credenciales de seguridad, como un nombre de usuario y una contraseña. Los runbooks y las configuraciones de DSC usan cmdlets que aceptan un objeto PSCredential para la autenticación. Como alternativa, pueden extraer el nombre de usuario y la contraseña del objeto PSCredential para proporcionarlos a alguna aplicación o servicio que requiera autenticación.

Nota:

Los recursos protegidos en Azure Automation incluyen credenciales, certificados, conexiones y variables cifradas. Estos recursos se cifran y se almacenan en Azure Automation con una clave única que se genera para cada cuenta de Automation. Azure Automation almacena la clave en la instancia de Key Vault administrada por el sistema. Antes de almacenar un recurso seguro, Azure Automation carga la clave desde Key Vault y después la usa para cifrar el recurso.

Nota:

Para obtener información sobre cómo ver o eliminar datos personales, consulte Solicitudes generales de interesados para el RGPD, Solicitudes de los interesados de Azure para el RGPDo Solicitudes de los interesados de Windows para el RGPD, en función de sus necesidades y áreas específicas. Para más información sobre RGPD, consulte Información sobre los procedimientos recomendados para el cumplimiento del RGPD y la sección RGPD del portal de confianza de servicios.

Cmdlets de PowerShell usados para acceder a credenciales

Los cmdlets de la tabla siguiente permiten crear y administrar credenciales de Automation con PowerShell. Se suministran como un componente de los módulos Az.

Cmdlet Descripción
Get-AzAutomationCredential Recupera un objeto CredentialInfo que contiene metadatos sobre la credencial. El cmdlet no recupera el objeto PSCredential mismo.
New-AzAutomationCredential Crea una nueva credencial de Automation.
Remove-AzAutomationCredential Quita una credencial de Automation.
Set-AzAutomationCredential Establece las propiedades para una credencial de Automatización existente.

Otros cmdlets usados para acceder a credenciales

Los cmdlets de la tabla siguiente se usan para acceder a las credenciales en los runbook y las configuraciones de DSC.

Cmdlet Descripción
Get-AutomationPSCredential Obtiene un objeto PSCredential para usarlo en un runbook o una configuración de DSC. La mayoría de las veces debe usar este cmdlet interno en lugar del cmdlet Get-AzAutomationCredential, ya que este último solo recupera la información de credenciales. Esta información no suele ser útil para pasar a otro cmdlet.
Get-Credential Obtiene una credencia con una solicitud de nombre de usuario y contraseña. Este cmdlet forma parte del módulo Microsoft.PowerShell.Security predeterminado. Consulte Módulos predeterminados.
New-AzureAutomationCredential Crea un recurso de credencial. Este cmdlet forma parte del módulo de Azure predeterminado. Consulte Módulos predeterminados.

Para recuperar objetos PSCredential en el código, debe importar el módulo Orchestrator.AssetManagement.Cmdlets. Para más información, consulte Administración de módulos en Azure Automation.

Import-Module Orchestrator.AssetManagement.Cmdlets -ErrorAction SilentlyContinue

Nota:

Debe evitar el uso de variables en el parámetro Name de Get-AutomationPSCredential. Su uso puede complicar la detección de dependencias entre runbooks o configuraciones de DSC y recursos de credenciales durante el tiempo de diseño.

Funciones de Python que acceden a las credenciales

La función de la tabla siguiente se usa para acceder a las credenciales de un runbook de Python 2 y 3. Actualmente, los runbooks de Python 3 están en versión preliminar.

Función Descripción
automationassets.get_automation_credential Recupera información acerca de un recurso de credencial.

Nota:

Para acceder a las funciones del recurso, importe el módulo automationassets en la parte superior del runbook de Python.

Creación de un nuevo recurso de credencial

Puede crear un recurso de credencial mediante Azure Portal o Windows PowerShell.

Creación de un nuevo recurso de credencial con Azure Portal

  1. En la cuenta de Automation, en el panel izquierdo, seleccione Credenciales en Recursos compartidos.

  2. En la página Credenciales, seleccione Agregar una credencial.

  3. En el panel Nueva credencial, escriba un nombre de credencial adecuado que siga los estándares de nomenclatura.

  4. Escriba el identificador de acceso en el campo Nombre de usuario.

  5. En ambos campos de contraseña, escriba la clave de acceso secreta.

    Creación de una credencial

  6. Si la casilla de autenticación multifactor está activada, desactívela.

  7. Haga clic en Crear para guardar el nuevo recurso de credencial.

Nota:

Azure Automation no admite cuentas de usuario que usen la autenticación multifactor.

Creación de un nuevo recurso de credencial con Windows PowerShell

En el ejemplo siguiente se muestra cómo crear un recurso de credencial de Automation. Primero se crea un objeto PSCredential con el nombre y la contraseña y, luego, se usa para crear el recurso de credencial. En su lugar, puede usar el cmdlet Get-Credential para solicitar al usuario que escriba un nombre y una contraseña.

$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

Obtención de un recurso de credencial

Un runbook o una configuración de DSC recupera un recurso de credencial con el cmdlet Get-AutomationPSCredential interno. Este cmdlet recupera un objeto PSCredential que puede usar con un cmdlet que requiere una credencial. También puede recuperar las propiedades del objeto de credencial para usarlas individualmente. El objeto tiene propiedades para el nombre de usuario y la contraseña segura.

Nota:

El cmdlet Get-AzAutomationCredential no recupera ningún objeto PSCredential que se pueda usar para la autenticación. Solo proporciona información acerca de la credencial. Si necesita usar una credencial en un runbook, debe recuperarla como un objeto PSCredential mediante Get-AutomationPSCredential.

Como alternativa, puede usar el método GetNetworkCredential para recuperar un objeto NetworkCredential que representa una versión no segura de la contraseña.

Ejemplo de un runbook textual

En el ejemplo siguiente se muestra cómo usar una credencial de PowerShell en un runbook. Se recupera la credencial y se asigna su nombre de usuario y contraseña a las variables.

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

También puede usar una credencial para autenticarse en Azure con Connect-AzAccount después de conectarse primero a una identidad administrada. En ese ejemplo se usa una identidad administrada asignada por el sistema.

# 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

Ejemplos de un runbook gráfico

Para agregar una actividad para el cmdlet Get-AutomationPSCredential interno a un runbook gráfico, haga clic con el botón derecho en la credencial en el panel Biblioteca del editor gráfico y, después, seleccione Agregar al lienzo.

Adición de cmdlet de credencial a lienzo

La imagen siguiente muestra un ejemplo de cómo usar una credencial en un runbook gráfico. En este caso, la credencial proporciona la autenticación de un runbook en los recursos de Azure, como se describe en Uso de Microsoft Entra ID en Azure Automation para autenticarse en Azure. La primera actividad recupera la credencial que tiene acceso a la suscripción de Azure. A continuación, la actividad de conexión de la cuenta usa esta credencial para proporcionar autenticación para cualquier actividad que venga después. Aquí se usa un vínculo de canalización, debido a que Get-AutomationPSCredential espera un solo objeto.

Ejemplo de flujo de trabajo de credencial con vínculo de canalización

Uso de credenciales en una configuración de DSC

Aunque las configuraciones de DSC en Azure Automation pueden funcionar con recursos de credenciales mediante Get-AutomationPSCredential, también los pueden pasar a través de parámetros. Para obtener más información, consulte Compilación de configuraciones en DSC de Azure Automation.

Pasos siguientes