サービスアカウント
この機能は現在開発中であり、まだ公開されていません。記載内容は今後変更される可能性があります。
サービスアカウントは、CI/CDなど機械からの操作専用のアカウントです。人のユーザーアカウントとは独立して、権限と監査対象を管理できます。
サービスアカウントには以下の特徴があります。
- ベースマキナの画面上のユーザー一覧には表示されない
- 課金の対象にならない
- 人のユーザーアカウントとは独立して、グループ所属による権限を管理できる
サービスアカウントを利用する機能
サービスアカウントは、外部システムや機械からベースマキナを操作する複数の機能で共通して利用します。
いずれの機能でも、CLI・CI/CD・クラウドからの操作はサービスアカウントの権限で実行されます。
必要なロール
サービスアカウントの作成、プロジェクトへの追加、グループへの所属設定、OIDC信頼ポリシーの設定には、企業アカウントの管理者の権限が必要です。
サービスアカウントの作成とプロジェクトへの追加
- 右上のメニューから「設定」を選択します。
- サイドバーのメニューから「サービスアカウント管理」を選択します。
- サービスアカウントを新規作成するか、既存のサービスアカウントをプロジェクトに追加します。
複数のサービスアカウントを使い分けることもできます(例:開発用とCI/CD用を分ける、リポジトリごとに分ける)。
グループへの所属(権限付与)
サービスアカウントの権限は、所属するグループのロールによって決まります。「設定」→「グループ管理」から、用意したサービスアカウントを目的別のグループへ追加してください。必要な権限は用途によって異なります。
コード管理で使う場合
アクションの作成・更新などを行なうには、アクション管理権限を持つロール(プロジェクト管理者・開発責任者・開発者のいずれか)を含むグループへの所属が必要です。
公開APIでアクションを実行する場合
公開APIでのアクション実行は、サービスアカウントが所属するグループの権限で行なわれます。アクションに実行権限が設定されている場合は、対象アクションの実行権限をサービスアカウントの所属グループへ付与してください。実行権限を制限していないアクションは、グループへの所属だけで実行できます。
サービスアカウントへ付与する権限は、必要最小限にとどめることを推奨します。
OIDC信頼ポリシー
CI/CDやクラウドからサービスアカウントとして操作する場合は、OIDC信頼ポリシーを設定します。OIDC信頼ポリシーは、GitHub Actionsなどの外部サービスが発行したOIDC ID Tokenを、ベースマキナのサービスアカウントと紐づけるためのポリシーです。
「サービスアカウント管理」画面で対象のサービスアカウントを開き、詳細画面の「OIDC信頼ポリシー」から、「ポリシーを追加」→「GitHub Actions」または「カスタム」を選択して、ポリシーを追加します。
ローカル端末からbm loginで認証して操作する場合は、OIDC信頼ポリシーの設定は不要です。CI/CDやクラウドとの連携を行なう段階で設定してください。
設定項目
| 項目 | 説明 |
|---|---|
Issuer | OIDC ID Tokenを発行するサービスのURL(例: https://token.actions.githubusercontent.com) |
Audience | ID Tokenのaudクレームに含めるAudience(例: https://basemachina.com)。企業アカウントごとに固有の値を設定するとトークン悪用を防げる |
Bound Claims | 受け入れるID Tokenの条件をkeyとpatternのペアで指定する(1件以上必須) |
GitHub Actionsの場合
「ポリシーを追加」ドロップダウンリストで「GitHub Actions」を選択すると、Issuerなどがあらかじめ入力された状態でポリシーを追加できます。Bound Claimsには、例えばkey: sub、pattern: repo:<org>/<repo>:ref:refs/heads/mainのように、受け付けるブランチ・リポジトリの条件を指定します。
カスタムの場合
GitHub Actions以外のOIDC IdP(Google Cloud / AWS / Auth0 / Okta / Kubernetesなど)を利用する場合は、「カスタム」を選択します。「ポリシーを追加」ドロップダウンリストから「カスタム」を選び、各項目を手動で設定してください。呼び出し元別の具体的な設定値は公開APIを認証して呼び出すを参照してください。
ここで設定したAudienceは、CI/CD側のワークフロー(bm-actionのaudience入力やbm syncの認証、公開APIの呼び出し)でも同じ値を指定する必要があります。
関連情報
- コード管理の始め方 — サービスアカウントを使ったコード管理のセットアップ手順
- 公開APIを認証して呼び出す — サービスアカウントのOIDC信頼ポリシーを使った公開APIの認証