Referencias de Azure Key Vault para código Java / Pipeline de código Yaml.
Necesito ayuda para entender cómo configurar correctamente los Secretos de Key Vault en mi canalización.
Estoy construyendo una aplicación web Java utilizando Maven y desplegándola en un contenedor web de servicio de aplicación Linux.
Toda mi canalización se ejecuta en un archivo ADO Yaml con mi primera tarea siendo la Tarea del Key Vault de Azure para extraer los secretos, seguida de la tarea de construcción de Maven y la tarea de publicación de artefactos.
En general, el contenedor web se despliega correctamente, pero lo que necesito hacer ahora es asegurar mis secretos en Key Vault y eliminarlos del código fuente de mi aplicación web. Ahí es donde estoy confundido sobre cómo hacer que todo funcione junto.
En mi tarea de Key Vault de Azure en el archivo Yaml, tengo el siguiente código:
steps:
- task: AzureKeyVault@2
inputs:
azureSubscription: 'mi_suscripción'
KeyVaultName: 'mi_KV'
SecretsFilter: '*'
RunAsPreJob: false
script: Write-Host $env:MI_VARIABLE_DE_ENTORNO_MAPEADA
env:
MI_VARIABLE_DE_ENTORNO_MAPEADA: $(my_secret)
Seguido por las tareas de Construcción de Maven y Publicación de Artefactos.
En el Portal de Azure, ya he creado un secreto (my_secret) que contiene el valor de mi cadena de conexión que estaba en mi código Java.
En mi código Java,
Tengo un archivo llamado Provider.java que contiene el siguiente código:
package com.example;
public interface Provider {
String DRIVER = "com.microsoft.sqlserver.jdbc.SQLServerDriver";
String ConnectionURL = "jdbc:sqlserver://11.2.4.11:8433;databaseName=TPNTFDB;user=tpntfpotsfinder;password=Potsfinder2!";
}
Ahora ni siquiera estoy seguro de haber mapeado correctamente mi variable de entorno para mis secretos.
Además, no estoy seguro de cómo puedo eliminar la URL de conexión codificada en mi código Java y reemplazarla por una referencia a Key Vault o una variable de entorno que permita a mi código resolver los secretos de Key Vault.
En otras palabras, después de guardar mi URL de conexión como un secreto en Key Vault y extraerlo usando una tarea de Key Vault en el archivo Yaml, ¿cómo puedo eliminar la URL de conexión codificada y reemplazarla por los Secretos de Key Vault?
davy.ai
Para configurar correctamente las Claves Secretas de Key Vault en tu pipeline, deberás seguir estos pasos:
env
en tu archivo YAML.Aquí tienes un ejemplo de cómo podría verse tu archivo YAML actualizado:
Observa la adición de la variable de entorno
CONNECTION_URL
en la secciónenv
, la cual está mapeada al secretomi_secreto
extraído de Azure Key Vault.En tu código Java, elimina la URL de conexión codificada y reemplázala por la variable de entorno:
Esto permitirá que tu código resuelva el valor del secreto desde la variable de entorno extraída de Azure Key Vault durante la ejecución del pipeline.