GitLab CI/CD
Bitwarden proporciona una forma de inyectar secretos en tus pipelines de GitLab CI/CD utilizando el ILC del Administrador de secretos de Bitwarden. Esto le permite almacenar y usar de manera segura secretos en sus flujos de trabajo de CI/CD. Para empezar:
En este paso, vamos a guardar un token de acceso como una variable de GitLab CI/CD. Este token se utilizará para autenticarse con la API del Administrador de secretos de Bitwarden y recuperar secretos.
En GitLab, navega a la página de Ajustes > CI/CD de tu proyecto.
Seleccione Expandir en la sección de Variables.
Seleccione Agregar variable.
Verifica la bandera de la variable Mask.
Nombre de la clave
BWS_ACCESS_TOKEN
. Esta es la variable que el ILC del Administrador de secretos busca para autenticar. Alternativamente, si necesitas nombrar la clave de otra manera, especifica--access-token NOMBRE_DE_VAR
en la líneabws secret get
más tarde.En otra pestaña, abre la aplicación web del Administrador de secretos y crea un token de acceso.
De vuelta en GitLab, pega el token de acceso recién creado en el campo Valor.
Seleccione Agregar variable para guardar.
A continuación, vamos a escribir un flujo de trabajo rudimentario de GitLab CI/CD. Crea un archivo llamado .gitlab-ci.yml
en la raíz de tu repositorio con el siguiente contenido:
Bashstages:
- default_runner
image: ubuntu
build:
stage: default_runner
script:
- |
# install bws
apt-get update && apt-get install -y curl git jq unzip
export BWS_VER="$(
curl -s https://api.github.com/repos/bitwarden/sdk/releases/latest | \
jq -r '.tag_name' | sed 's/bws-v//'
)"
curl -LO \
"https://github.com/bitwarden/sdk/releases/download/bws-v$BWS_VER/bws-x86_64-unknown-linux-gnu-$BWS_VER.zip"
unzip -o bws-x86_64-unknown-linux-gnu-$BWS_VER.zip -d /usr/local/bin
# secrets to retrieve
secret_ids=(
"534cc788-a143-4743-94f5-afdb00a40a41"
"9a0b500c-cb3a-42b2-aaa2-afdb00a41daa"
)
# export secrets as environment variables
for secret_id in "${secret_ids[@]}"; do
secret="$(bws secret get "$secret_id")"
secret_key="$(echo "$secret" | jq -r '.key')"
secret_value="$(echo "$secret" | jq -r '.value')"
export "$secret_key"="$secret_value"
done
# run the command that requires secrets
- npm run start
Dónde
BWS_VER
es la versión del Administrador de secretos Bitwarden ILC para instalar. Aquí, estamos obteniendo automáticamente la última versión. Puedes fijar la versión que se está instalando cambiando esto a una versión específica, por ejemploBWS_VER="0.3.1"
.534cc788-a143-4743-94f5-afdb00a40a41
y9a0b500c-cb3a-42b2-aaa2-afdb00a41daa
son identificadores de referencia para secretos almacenados en el Administrador de secretos. La cuenta de servicio a la que pertenece tu token de acceso debe poder acceder a estos secretos específicos.npm run start
es el comando que espera los valores secretos que son recuperados porbws
. Reemplace esto con los comandos relevantes para ejecutar su proyecto.
advertencia
Los secretos se almacenan como variables de entorno. Es importante evitar ejecutar comandos que podrían importar estos secretos a los registros.
A la izquierda, selecciona Construir > Tuberías y selecciona Ejecutar tubería en la parte superior derecha del ritmo. Seleccione Ejecutar pipeline en la página para ejecutar el pipeline recién creado.