開発中の機能
サービスアカウント

サービスアカウント

⚠️

この機能は現在開発中であり、まだ公開されていません。記載内容は今後変更される可能性があります。

サービスアカウントは、CI/CDなど機械からの操作専用のアカウントです。人のユーザーアカウントとは独立して、権限と監査対象を管理できます。

サービスアカウントには以下の特徴があります。

  • ベースマキナの画面上のユーザー一覧には表示されない
  • 課金の対象にならない
  • 人のユーザーアカウントとは独立して、グループ所属による権限を管理できる

サービスアカウントを利用する機能

サービスアカウントは、外部システムや機械からベースマキナを操作する複数の機能で共通して利用します。

  • コード管理 — CLIやCI/CDから設定の差分検出・反映を行なう
  • 公開API — 外部システムからアクションを実行する

いずれの機能でも、CLI・CI/CD・クラウドからの操作はサービスアカウントの権限で実行されます。

必要なロール

サービスアカウントの作成、プロジェクトへの追加、グループへの所属設定、OIDC信頼ポリシーの設定には、企業アカウントの管理者の権限が必要です。

サービスアカウントの作成とプロジェクトへの追加

  1. 右上のメニューから「設定」を選択します。
  2. サイドバーのメニューから「サービスアカウント管理」を選択します。
  3. サービスアカウントを新規作成するか、既存のサービスアカウントをプロジェクトに追加します。

複数のサービスアカウントを使い分けることもできます(例:開発用とCI/CD用を分ける、リポジトリごとに分ける)。

グループへの所属(権限付与)

サービスアカウントの権限は、所属するグループのロールによって決まります。「設定」→「グループ管理」から、用意したサービスアカウントを目的別のグループへ追加してください。必要な権限は用途によって異なります。

コード管理で使う場合

アクションの作成・更新などを行なうには、アクション管理権限を持つロール(プロジェクト管理者・開発責任者・開発者のいずれか)を含むグループへの所属が必要です。

公開APIでアクションを実行する場合

公開APIでのアクション実行は、サービスアカウントが所属するグループの権限で行なわれます。アクションに実行権限が設定されている場合は、対象アクションの実行権限をサービスアカウントの所属グループへ付与してください。実行権限を制限していないアクションは、グループへの所属だけで実行できます。

サービスアカウントへ付与する権限は、必要最小限にとどめることを推奨します。

OIDC信頼ポリシー

CI/CDやクラウドからサービスアカウントとして操作する場合は、OIDC信頼ポリシーを設定します。OIDC信頼ポリシーは、GitHub Actionsなどの外部サービスが発行したOIDC ID Tokenを、ベースマキナのサービスアカウントと紐づけるためのポリシーです。

「サービスアカウント管理」画面で対象のサービスアカウントを開き、詳細画面の「OIDC信頼ポリシー」から、「ポリシーを追加」→「GitHub Actions」または「カスタム」を選択して、ポリシーを追加します。

ローカル端末からbm loginで認証して操作する場合は、OIDC信頼ポリシーの設定は不要です。CI/CDやクラウドとの連携を行なう段階で設定してください。

設定項目

項目説明
IssuerOIDC ID Tokenを発行するサービスのURL(例: https://token.actions.githubusercontent.com
AudienceID Tokenのaudクレームに含めるAudience(例: https://basemachina.com)。企業アカウントごとに固有の値を設定するとトークン悪用を防げる
Bound Claims受け入れるID Tokenの条件をkeypatternのペアで指定する(1件以上必須)

GitHub Actionsの場合

「ポリシーを追加」ドロップダウンリストで「GitHub Actions」を選択すると、Issuerなどがあらかじめ入力された状態でポリシーを追加できます。Bound Claimsには、例えばkey: subpattern: repo:<org>/<repo>:ref:refs/heads/mainのように、受け付けるブランチ・リポジトリの条件を指定します。

カスタムの場合

GitHub Actions以外のOIDC IdP(Google Cloud / AWS / Auth0 / Okta / Kubernetesなど)を利用する場合は、「カスタム」を選択します。「ポリシーを追加」ドロップダウンリストから「カスタム」を選び、各項目を手動で設定してください。呼び出し元別の具体的な設定値は公開APIを認証して呼び出すを参照してください。

ここで設定したAudienceは、CI/CD側のワークフロー(bm-actionaudience入力やbm syncの認証、公開APIの呼び出し)でも同じ値を指定する必要があります。

関連情報