GitLab CI/CDでAzure Key Vaultのシークレットを使用します。
GitLab と GitLab Runner 16.3 で導入されました。
GitLabのCI/CDパイプラインで、Azure Key Vaultに保存されたシークレットを使用できます。
前提条件:
- Azure 上に鍵保管庫があること。
- 鍵保管庫の権限を持つアプリケーションがあること。
- Azure で OpenID Connect を設定し、一時的な認証情報を取得します。
-
プロジェクトに CI/CD 変数を追加して、Vault サーバーの詳細を提供します:
-
AZURE_KEY_VAULT_SERVER_URL
:Azure Key VaultサーバーのURL(https://vault.example.com
など)。 -
AZURE_CLIENT_ID
:Azure アプリケーションのクライアント ID。 -
AZURE_TENANT_ID
:Azure アプリケーションのテナント ID。
-
CI/CD ジョブで Azure Key Vault のシークレットを使用します。
Azure Key Vaultに保存されているシークレットは、azure_key_vault
キーワードで定義することで、ジョブで使用できます:
job:
id_tokens:
AZURE_JWT:
aud: 'azure'
secrets:
DATABASE_PASSWORD:
token: AZURE_JWT
azure_key_vault:
name: 'test'
version: 'test'
この例では:
-
name
はシークレットの名前です。 -
version
は秘密のバージョンです。 - GitLabはAzure Key Vaultからシークレットをフェッチし、その値を一時ファイルに保存します。このファイルへのパスは
DATABASE_PASSWORD
CI/CD 変数に格納され、ファイル型の CI/CD 変数と似ています。