GitLab CI/CD
Bitwarden provides a way to inject secrets into your GitLab CI/CD pipelines using the Bitwarden Secrets Manager CLI. This allows your to securely store and use secrets in your CI/CD workflows. To get started:
In this step, we're going to save an access token as a GitLab CI/CD variable. This token will be used to authenticate with the Bitwarden Secrets Manager API and retrieve secrets.
In GitLab, navigate to your project's Settings > CI/CD page.
Select Expand in the Variables section.
Select Add variable.
Check the Mask variable flag.
Name the key
BWS_ACCESS_TOKEN
. This is the variable that the Secrets Manager CLI looks for to authenticate. Alternatively, if you need to name the key something else, specify--access-token NAME_OF_VAR
on thebws secret get
line later.In another tab, open the Secrets Manager web app and create an access token.
Back in GitLab, paste the newly-created access token into the Value field.
Select Add variable to save.
Next, we're going to write a rudimentary GitLab CI/CD workflow. Create a file called .gitlab-ci.yml
in the root of your repository with the following contents:
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="1.0.0"
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
# use the `bws run` command to inject secrets into your commands
- bws run -- 'npm run start'
Where:
BWS_VER
is the version of the Bitwarden Secrets Manager CLI to install. You can pin the version being installed by changing this to a specific version, for exampleBWS_VER="0.3.1"
.
warning
Secrets are stored as environment variables. It is important to avoid running commands that would output these secrets to the logs.
On the left, select Build > Pipelines and select Run pipeline at the top-right of the pace. Select Run pipeline on the page to run the newly-created pipeline.
Suggest changes to this page
How can we improve this page for you?
For technical, billing, and product questions, please contact support