Compartir a través de


AzureKeyVault@2: tarea Azure Key Vault v2

Use esta tarea para descargar secretos, como claves de autenticación, claves de cuenta de almacenamiento, claves de cifrado de datos, . Archivos PFX y contraseñas de una instancia de de Azure Key Vault . La tarea se puede usar para capturar los valores más recientes de todos o un subconjunto de secretos del almacén y establecerlos como variables que se pueden usar en tareas posteriores de una canalización. La tarea se basa en node y funciona con agentes en Linux, macOS y Windows.

Sintaxis

# Azure Key Vault v2
# Download Azure Key Vault secrets.
- task: AzureKeyVault@2
  inputs:
    azureSubscription: # string. Alias: ConnectedServiceName. Required. Azure subscription. 
    KeyVaultName: # string. Required. Key vault. 
    SecretsFilter: '*' # string. Required. Secrets filter. Default: *.
    #RunAsPreJob: false # boolean. Make secrets available to whole job. Default: false.

Entradas

azureSubscription - de suscripción de Azure
Alias de entrada: ConnectedServiceName. string. Obligatorio.

Seleccione la conexión de servicio para la suscripción de Azure que contiene la instancia de Azure Key Vault o cree una conexión. Más información.


KeyVaultName - key vault
string. Obligatorio.

Nombre de Azure Key Vault que contiene los secretos que se van a descargar.


SecretsFilter - de filtro secretos
string. Obligatorio. Valor predeterminado: *.

Descarga nombres secretos según el valor especificado. El valor puede ser el valor predeterminado para descargar todos los secretos del almacén de claves seleccionado o una lista separada por comas de nombres secretos.


RunAsPreJob - Hacer que los secretos estén disponibles para todo el trabajo
boolean. Valor predeterminado: false.

Ejecuta la tarea antes de que comience la ejecución del trabajo. Expone secretos a todas las tareas del trabajo, no solo las tareas que siguen a esta.


Opciones de control de tareas

Todas las tareas tienen opciones de control además de sus entradas de tarea. Para obtener más información, consulte Opciones de control y propiedades de tareas comunes.

Variables de salida

Ninguno.

Observaciones

Novedades de la versión 2.0: se ha agregado compatibilidad con %3B, %5D en secretos.

Use esta tarea para descargar secretos, como claves de autenticación, claves de cuenta de almacenamiento, claves de cifrado de datos, . Archivos PFX y contraseñas de una instancia de de Azure Key Vault . La tarea se puede usar para capturar los valores más recientes de todos o un subconjunto de secretos del almacén y establecerlos como variables que se pueden usar en tareas posteriores de una canalización. La tarea se basa en node y funciona con agentes en Linux, macOS y Windows.

Obtengo un error de forbidden en las canalizaciones en el momento de obtener credenciales de Azure Key Vault

Esto ocurre si faltan los permisos necesarios en el almacén de claves de Azure. Para resolver el problema, agregar una directiva de acceso con los permisos correctos.

Prerrequisitos

La tarea tiene los siguientes requisitos previos:

  • Una suscripción de Azure vinculada a Azure Pipelines o Team Foundation Server mediante la conexión de servicio de Azure Resource Manager.
  • Un azure Key Vault que contiene los secretos.

Puede crear un almacén de claves:

  • En el de Azure Portal
  • Mediante azure PowerShell
  • Mediante el uso del de la CLI de Azure de

Agregue secretos a un almacén de claves:

  • Mediante el cmdlet de PowerShell Set-AzKeyVaultSecret. Si el secreto no existe, este cmdlet lo crea. Si el secreto ya existe, este cmdlet crea una nueva versión de ese secreto.

  • Mediante la CLI de Azure. Para agregar un secreto a un almacén de claves, por ejemplo, un secreto denominado SQLPassword con el valor PlaceholderPassword, escriba:

    az keyvault secret set --vault-name 'ContosoKeyVault' --name 'SQLPassword' --value 'PlaceholderPassword'
    

Cuando quiera acceder a secretos:

  • Asegúrese de que la conexión de servicio de Azure tenga al menos Obtener y Permisos de list en el almacén. Puede establecer estos permisos en Azure Portal:

    • Abra la hoja Configuración de para el almacén, elija Directivas de accesoy, a continuación, Agregar nuevo.
    • En la hoja Agregar directiva de acceso, elija Seleccionar de entidad de seguridad y seleccione la entidad de servicio de la cuenta de cliente.
    • En la hoja Agregar directiva de acceso , elija permisos secretos y asegúrese de que Obtener y Lista estén activadas (activadas).
    • Elija Aceptar para guardar los cambios.

Nota

Si usa un agente hospedado por Microsoft, debe agregar el intervalo IP del agente hospedado por Microsoft al firewall. Obtenga la lista semanal de intervalos IP del archivo JSON semanal, que se publica cada miércoles. Los nuevos intervalos IP se vuelven efectivos el lunes siguiente. Para obtener más información, consulte agentes hospedados por Microsoft. Para buscar los intervalos IP necesarios para la organización de Azure DevOps, aprenda a identificar los posibles intervalos IP para los agentes hospedados por Microsoft.

Nota

Los valores se recuperan como cadenas. Por ejemplo, si hay un secreto denominado connectionString, se crea una variable de tarea connectionString con el valor más reciente del secreto correspondiente capturado de Azure Key Vault. A continuación, esta variable está disponible en tareas posteriores.

Si el valor capturado del almacén es un certificado (por ejemplo, un archivo PFX), la variable de tarea contendrá el contenido del PFX en formato de cadena. Puede usar el siguiente código de PowerShell para recuperar el archivo PFX de la variable de tarea:

$kvSecretBytes = [System.Convert]::FromBase64String("$(PfxSecret)")
$certCollection = New-Object System.Security.Cryptography.X509Certificates.X509Certificate2Collection
$certCollection.Import($kvSecretBytes,$null,[System.Security.Cryptography.X509Certificates.X509KeyStorageFlags]::Exportable)

Si el archivo de certificado se almacenará localmente en la máquina, se recomienda cifrarlo con una contraseña:

 #Get the file created
$password = 'your password'
$protectedCertificateBytes = $certCollection.Export([System.Security.Cryptography.X509Certificates.X509ContentType]::Pkcs12, $password)
$pfxPath = [Environment]::GetFolderPath("Desktop") + "\MyCert.pfx"
[System.IO.File]::WriteAllBytes($pfxPath, $protectedCertificateBytes)

Para más información, consulte Introducción a los certificados de Azure Key Vault.

Ejemplos

Requisitos

Requisito Descripción
Tipos de canalización YAML, compilación clásica, versión clásica
Se ejecuta en Agente, DeploymentGroup
demandas Ninguno
funcionalidades de Esta tarea no satisface ninguna demanda de tareas posteriores en el trabajo.
restricciones de comandos Cualquier
variables settable Cualquier
Versión del agente 2.182.1 o superior
Categoría de tarea Desplegar