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
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
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 yLista 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
inicio rápido de : Uso de secretos de Azure Key Vault (clásico o YAML)
Tutorial: Uso de secretos de Azure Key Vault en la canalización de YAML
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 |