認証
ボット は、shishoctl CLI を使って以下の 4 通りの方法のいずれかで Shisho Cloud にサインインできます。
| 環境 | 推奨認証方法 |
|---|---|
| GitHub Actions | GitHub Actions OIDC |
| GitLab CI | GitLab CI OIDC |
| 自前で運用する CI/CD やその他の OIDC Discovery 対応 IdP | カスタム OIDC |
| その他の CI/CD・自動化環境 | API キー |
OIDC を使う 3 つの方法は、いずれも 信頼条件(Trust Condition) に基づいています。信頼条件とは、ボット側に設定しておく規則で、どの OIDC ID トークンをそのボットとしてのサインインの証明として受け入れるかを決めるものです。信頼条件では静的なシークレットを保管・漏洩させる必要がなく、IdP がジョブごとに短命なトークンを発行するため、Shisho Cloud は一時的な認証情報しか扱いません。この点で、信頼条件は API キーより安全な方法です。
API キー
OIDC 対応環境以外でボット認証を行う場合、API Key を使用して shishoctl から Shisho Cloud にアクセスできます。
APIキーはボットに紐づく概念です。 そのため、ボット を未だ作成していない場合は、まずボットを作成しましょう。 具体的な手順は以下です。
- ボット一覧 ページにアクセスする
- 「ボットの追加」ボタンから、新しいボットを作成する

作成できたら、以下の手順でAPIキーが発行できます。
- ボット一覧 ページにアクセスする。
- 作成したボットの名前をクリックし、個別ページを開く。
- APIキータブで、「APIキーの作成」を押下し、ボットの API キーを新規作成する。

API キーは作成時に一度しか表示されません。あとからの再確認は不可能なので、作成時に控え、安全な場所に保存してください。
以下のコマンドで API キーを使って認証してください:
shishoctl auth signin:bot \
--bot <Bot ID> \
--api-key-json "$(cat api-key.json)"
なお、api-key.json ファイルは、以下のような JSON 形式で作成する必要があります。
{
"api_key": "shisho_apikey_..."
}
または API Key を直接指定することもできます:
shishoctl auth signin:bot \
--bot <Bot ID> \
--api-key-json '{"api_key":"shisho_apikey_..."}'
Bot ID は BTから始まるIDで、ボット作成画面で作成後、ボットの詳細ページURLにて確認できます。
https://cloud.shisho.dev/{ORGANIZATION_ID}/settings/bots/{BOT_ID}
一般的な SaaS の API キーと同様に、ボットの API キーが漏れると、Shisho Cloud 上のデータが侵害される可能性があります。安全に扱うため、以下に留意ください。
- API キーを外部公開しない。特に、GitHub 等の公開リポジトリにコミットしない。
- 非公開領域に API キーを保管する場合も、極力安全な場所を利用する。例えば、GitHub リポジトリ内に直接含めるよりは、GitHub Actions のシークレット管理機能を利用する。
- 不要になった API キーは速やかに削除する。
GitHub Actions OIDC
GitHub Actions 上で実行されるジョブに対しては、GitHub がジョブごとに発行する OIDC の ID トークンを使って Shisho Cloud への認証を行うため、リポジトリに永続的なシークレットを保管する必要がありません。Shisho Cloud はこのトークンを、特定のボットに紐づく短命な認証情報と交換します。これは GitHub 自身が提供する OIDC ベースのクラウド連携 と同様の仕組みです。
GitHub Actions 用のボットに設定する信頼条件は、ジョブが実行される GitHub リポジトリの Organization およびリポジトリ名 の一致を条件とします。信頼条件を保存すると、そのリポジトリに属するジョブは、そのボットとしてサインインできるようになります。
ジョブからサインインするには、ID トークンを取得したうえで、以下のコマンドを実行してください。
shishoctl auth signin:bot \
--bot <Bot ID> \
--expires-in-minutes 60 \
<<< "$ID_TOKEN"
コンソールでのボット・信頼条件の作成から GitHub Actions ワークフローの構築までの詳しい手順は、検査ルールを Git リポジトリで管理する - GitHub を参照してください。