メインコンテンツまでスキップ

Bot の信頼条件がカスタム OIDC プロバイダーに対応

· 約5分
Takashi Yoneuchi
CTO @ GMO Flatt Security Inc.

Bot の信頼条件が、GitHub Actions と GitLab CI に加えて、OIDC Discovery に対応した任意の IdP が発行した ID トークンを受け入れられるようになりました。

Jenkins・Buildkite・CircleCI など自前で運用する CI/CD、他クラウドのワークロード ID 基盤、GitHub Enterprise Server、セルフマネージドの GitLab などから、静的な API キーなしで Bot としてサインインできます。

info

カスタム OIDC プロバイダーのサポートは現在ベータ版です。 仕様や挙動が予告なく変更される可能性があります。

概要

信頼条件とは、Bot 側に設定しておく規則で、どの OIDC ID トークンをその Bot としてのサインインの証明として受け入れるかを決めるものです。これまで信頼条件が扱える発行者 (issuer) は GitHub Actions と GitLab CI の 2 つだけで、それ以外の環境では Bot の API キーを使う必要がありました。API キーは静的なシークレットであり、保管やローテーション、ログへの混入防止といった運用が欠かせません。

新しい Custom (OIDC) の提供元を選ぶと、信頼条件を自社の issuer に対して直接設定できます。IdP がジョブごとに短命な ID トークンを発行し、Shisho Cloud がそれを信頼条件と照合したうえで、同じく短命な、その Bot に限定された認証情報と交換します。CI 側に永続的なシークレットを置く必要はありません。

利用開始方法

Shisho Cloud コンソールで Bot の 信頼条件 タブを開き、信頼条件を追加して、提供元として Custom (OIDC) を選択してください。設定する項目は以下の 4 つです。Issuer・Subject・Audience は必須、Claims は任意です。

  • Issuer - ID トークンの発行者を示す https:// の URL。ポート 443 で到達でき、/.well-known/openid-configuration に OIDC Discovery のドキュメントを公開している必要がある。
  • Subject - ID トークンの sub クレームに期待する値。完全一致の値か、* が任意の文字列にマッチする式(例: repo:acme/app:*)のいずれかを指定する。* のみの式は指定できない。
  • Audience - ID トークンの aud クレームが含んでいなければならない値。IdP 側で https://sts.cloud.shisho.dev を発行するよう設定することを推奨する。こうすることで、Shisho Cloud 向けに発行したトークンが他のサービスへ再利用されるのを防げる。
  • Claims(任意)- トークンのトップレベルの文字列クレームに対する追加条件を、最大 10 件まで指定できる。指定方法は Subject と同じ。

信頼条件を保存したあとの CI 側の流れは、GitHub Actions や GitLab CI の場合と同じです。IdP から ID トークンを取得し、shishoctl auth signin:bot に渡してください。

上限

カスタム OIDC の信頼条件は、1 組織につき 1 件までです(組織内のすべての Bot を通じての合計)。GitHub Actions と GitLab CI の信頼条件に上限はありません。

2 件以上が必要な場合はサポートにご相談ください。ご契約プランによってはお応えできない場合があります。

設定項目の詳細や設定例、セキュリティ上の注意点は、Bot の認証ガイドのカスタム OIDC をご覧ください。