# GitLab CI/CD

Bitwardenは、Bitwardenの[シークレットマネージャーCLI](https://docs.gitlab.com/ee/ci/)を使用して、あなたの[GitLab CI/CD](https://bitwarden.com/ja-jp/help/secrets-manager-cli/)パイプラインにシークレットを注入する方法を提供します。これにより、CI/CDワークフローで秘密情報を安全に保存し使用することができます。始めるために：

## アクセストークンを保存します

このステップでは、[アクセストークン](https://bitwarden.com/ja-jp/help/access-tokens/)をGitLab CI/CD変数として保存します。このトークンは、BitwardenシークレットマネージャーAPIに認証し、[シークレット](https://bitwarden.com/ja-jp/help/secrets/)を取得するために使用されます。

1. GitLabで、プロジェクトの**設定** > **CI/CD**ページに移動します。
2. **展開**を**変数**セクションで選択してください。
3. **変数を追加**を選択します。
4. **マスク変数**フラグを確認してください。
5. キーの名前は`BWS_ACCESS_TOKEN`です。これは、シークレットマネージャーCLIが[認証](https://bitwarden.com/ja-jp/help/secrets-manager-cli/#authentication/)するために探す変数です。あるいは、キーに別の名前を付ける必要がある場合は、後で`bws secret get`の行に`--access-token NAME_OF_VAR`を指定してください。
6. 別のタブで、シークレットマネージャーのウェブアプリを開き、[アクセストークンを作成](https://bitwarden.com/ja-jp/help/access-tokens/)します。
7. GitLabに戻り、新しく作成したアクセストークンを**値**フィールドに貼り付けます。
8. **変数を追加**を選択して保存してください。

![GitLabに変数を追加します](https://bitwarden.com/assets/5oaev7YcHn7ndLaofLb8Uw/2c653506fca3ca2300ce93e226e163e8/gitlab_variables.png)

## あなたのワークフローファイルに追加してください

次に、我々は基本的なGitLab CI/CDワークフローを書き込みます。あなたのリポジトリのルートに`.gitlab-ci.yml`という名前のファイルを作成し、次の内容を記入してください:

```bash
stages:
- 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'
```

どこで

- `BWS_VER`は、インストールするBitwardenシークレットマネージャーCLIのバージョンです。ここでは、自動的に最新バージョンを取得しています。このバージョンを特定のバージョンに変更することでインストールされるバージョンを固定できます。例えば、`BWS_VER="0.3.1"`のようにします。
- `534cc788-a143-4743-94f5-afdb00a40a41`と`9a0b500c-cb3a-42b2-aaa2-afdb00a41daa`は、シークレットマネージャーに保存されている秘密の参照識別子です。あなたのアクセストークンが所属するサービスアカウントは、これらの特定のシークレットにアクセスできる必要があります。
- `npm run start`は、`bws`によって取得される秘密の値を期待するコマンドです。あなたのプロジェクトを実行するための関連コマンドにこれを置き換えてください。

> [!WARNING] Don't use command that output in logs.
> シークレットは環境変数として保存されます。これらの秘密をログに出力するコマンドを実行することを[避けることが重要です](https://docs.gitlab.com/ee/ci/variables/#cicd-variable-security)。

## CI / CDパイプラインを実行します

左側で、**ビルド** > **パイプライン**を選択し、ページの右上で**パイプラインの実行**を選択してください。新しく作成したパイプラインを実行するには、ページ上で**パイプラインを実行**を選択します。