0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【GitLab 19.2】無料ユーザーも使えます!Flowの「ID Tokens」機能をわかりやすく解説

0
Posted at

【GitLab 19.2】無料ユーザーも使えます!Flowの「ID Tokens」機能をわかりやすく解説

はじめに

2026年7月16日にリリースされた GitLab 19.2 では、GitLab Duo Agent Platformまわりに大きなアップデートが入りました。GitLab Duo CLIやCustom Flowsの一般提供(GA)などが目立ちますが、今回はその中でも地味ながら実務でとても役に立つ機能、「Configure ID tokens in flows(Flowでの ID トークン設定)」 にフォーカスして紹介します。

この機能、実は Free / Premium / Ultimate の全ティアで利用可能 です。「うちはFreeプランだから関係ないや」と思わず、ぜひ最後まで読んで実際に触ってみてください。GitLabは無料プランでもかなり本格的なCI/CD連携ができるので、使いこなさないともったいないです。

そもそも「Flow」とは

GitLab Duo Agent Platformには「Flow」という仕組みがあります。これはAIエージェントを使って複雑なタスクを自動で実行する機能で、GitLab UIから起動した場合はCI/CD上で実行されます。実行時にはランナー(Runner)が @gitlab/duo-cli パッケージをダウンロードし、GitLab Duo Workflow ServiceとWebSocketで接続しながら、ファイル操作やGitコマンドなどのツールを実行していきます。

Flowの実行環境は、プロジェクトの .gitlab/duo/agent-config.yml というファイルでカスタマイズできます。今回紹介するID Tokensも、この設定ファイルの中で設定します。

ID Tokensって何がうれしいの?

外部サービス(シークレットマネージャーなど)にFlowから安全にアクセスしたい場面はよくあります。たとえば、

  • HashiCorp Vaultなどのシークレットマネージャーからシークレットを取得したい
  • コミットやビルド成果物にキーレス署名をしたい

といったケースです。従来の発想だと「APIキーやパスワードをCI/CD変数に長期間保存しておく」形になりがちですが、これは漏えいリスクが常につきまといます。

ID Tokensは、GitLab CI/CDが発行するJWT(JSON Web Token)を使って、OpenID Connect(OIDC)によるキーレス認証を行う仕組みです。長期間有効な認証情報をどこにも保存せずに、外部サービスとのやり取りができるようになります。GitLab 19.2からは、この仕組みがFlow実行時にも使えるようになりました。

設定方法

設定はとてもシンプルです。プロジェクトの .gitlab/duo/agent-config.yml に id_tokens ブロックを追加するだけです。各トークンには、対象となる aud(audience)クレームを指定します。

id_tokens:
  VAULT_ID_TOKEN:
    aud: https://vault.example.com

network_policy:
  allowed_domains:
    - vault.example.com

aud には複数の値をリストで渡すこともできます。

id_tokens:
  MY_ID_TOKEN:
    aud:
      - https://first.service.example.com
      - https://second.service.example.com

network_policy:
  allowed_domains:
    - first.service.example.com
    - second.service.example.com

設定したトークンは、Flowを実行するジョブの中で環境変数として自動的に利用できます。上の例であれば $VAULT_ID_TOKEN や $MY_ID_TOKEN としてそのままアクセスできるので、Flowのスクリプトの中でシームレスに使い回せます。

なお、既存の変数と同じ名前のID Tokenを設定した場合は、ID Tokenの値が優先されます。

使いどころのイメージ

  • Vaultなどのシークレットマネージャーと連携して、Flow実行中に必要なシークレットだけをその場で取得する
  • 生成物やコミットに対してキーレスで署名する仕組みを組み込む
  • 長期間有効なAPIキーをリポジトリやCI/CD変数に置かない運用にする

こうした「秘密情報をなるべく持たない」設計にできるのは、セキュリティ的にも運用的にも大きなメリットです。

注意しておきたいポイント

ID Tokenは、その aud クレームを信頼しているサービスであれば誰でも認証に使えてしまう強力な認証情報です。そのため、

  • 各トークンの aud はできるだけ狭いスコープに設定し、万一漏えいしても影響範囲を最小限にする
  • agent-config.yml はデフォルトブランチから読み込まれる設定ファイルなので、誰がどのトークンを変更できるかについてもアクセス制御をきちんと考えておく

という点は意識しておくと安心です。特に setup_script で定義したコマンドは、セキュリティ機構(SRT)が適用される前、かつその外側で実行され、トリガーしたユーザーのOAuthトークンやサービストークンなど、Flow内のすべての環境変数にアクセスできてしまいます。ID Tokensを扱う設定と合わせて、この点もあわせて確認しておくとよいでしょう。

まとめ

GitLab 19.2で追加された「Configure ID tokens in flows」は、地味に見えて実は運用の安全性を一段階引き上げてくれる機能です。しかもFreeプランからそのまま使えるので、GitLabを無料で使っている方こそ、ぜひ一度 .gitlab/duo/agent-config.yml に id_tokens を書いてみてください。

GitLabは無料プランでもCI/CD・Duo Agent Platformまわりの機能がどんどん強化されています。「有料版じゃないと大したことできないでしょ」と思い込まず、ぜひこの機会にもう一歩踏み込んでGitLabを使いこなしていきましょう。

参考リンク

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?