AzureKeyVault@2: tarea de 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 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 Nodos 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 - 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 nueva conexión. Más información.


KeyVaultName - Almacén de claves
string. Obligatorio.

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


SecretsFilter - Filtro de 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 de secretos.


RunAsPreJob - Poner los secretos a disposición de 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 tareas. Para obtener más información, vea Opciones de control y propiedades de tareas comunes.

Variables de salida

Ninguno.

Comentarios

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 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 Nodos y funciona con agentes en Linux, macOS y Windows.

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

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

Prerrequisitos

La tarea tiene los siguientes requisitos previos:

Puede crear un almacén de claves:

Agregue secretos a un almacén de claves:

  • Mediante el cmdlet de PowerShell Set-AzureKeyVaultSecret. 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 los secretos:

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

    • Abra la hoja Configuración del almacén, elija Directivas de acceso y, a continuación, Agregar nuevo.
    • En la hoja Agregar directiva de acceso , elija Seleccionar 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 La opción Obtener y Enumerar esté activada (marcada).
    • 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 todos los miércoles. Los nuevos intervalos IP se hacen efectivos el lunes siguiente. Para obtener más información, consulte Agentes hospedados por Microsoft. Para buscar los intervalos IP necesarios para su 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 connectionString de tarea con el valor más reciente del secreto respectivo capturado de Azure Key Vault. A continuación, esta variable está disponible en las 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.

Requisitos

Requisito Descripción
Tipos de canalización YAML, compilación clásica, versión clásica
Se ejecuta en Agente, DeploymentGroup
Peticiones None
Capabilities Esta tarea no satisface ninguna demanda de tareas posteriores en el trabajo.
Restricciones de comandos Any
Variables que se pueden establecer Any
Versión del agente 2.182.1 o superior
Categoría de la tarea: Implementación