For the complete documentation index, see llms.txt. Markdown versions of documentation pages are available by appending .md to the page URL.
メインナビゲーション
Theme

共同作業と共有

サービスアカウント

ChatGPT ワークスペースで Codex の自動化に使うサービスアカウントを設定、管理する方法

サービスアカウントを使うと、従業員個人のアカウントに依存せず、ヘッドレス環境で Codex のワークフローを実行し、組織全体に展開できます。継続的インテグレーション(CI)のランナー、スケジュール実行するジョブ、共有の連携機能には、それぞれ専用の ChatGPT ワークスペース ID が割り当てられます。個人のアカウントと同様に、グループやロールを割り当て、アクセスを制御し、操作を監査できます。

サービスアカウントを作成できるのは、ワークスペースのオーナーと管理者だけです。オーナーと管理者は、他のユーザーやグループに、アカウントの管理、プラグインの設定、アクセストークンの作成を許可できます。

サービスアカウントは従量課金プランでのみ利用できます。

サービスアカウントは、個人に紐づかないワークスペース ID です。個人アクセストークンは、そのトークンを作成したワークスペースメンバーを識別します。API プラットフォームのプロジェクト用サービスアカウントと API キーには、プロジェクト単位のアクセス権と課金が別途適用されます。

サービスアカウントの作成と設定

次の対話型ガイドでは、GitHub を例に、アカウントの作成、プラグインの設定、トークンの作成、グループとロールの割り当てを順に試せます。

Interactive walkthrough

Select the plus button, name your service account, and select Create.

Service accounts

Create workspace-owned accounts for automated workflows that need their own access.

1/1
  1. ワークスペース設定でサービスアカウントを開きます。
  2. プラス(+)ボタンを選択し、release-automation など、用途がわかる名前を入力します。
  3. 作成を選択します。

プラグインの接続

プラグインはサービスアカウントごとに設定します。作成者のプラグインや接続済みアプリは引き継がれません。

  1. アカウントのプラグインセクションを開き、プラグインを追加を選択します。
  2. プラグインを選び、設定済みまたは有効と表示されることを確認します。

プラグインを設定できるのは、設定ロールとマネージャーロールです。ユーザーロールでは設定できません。

アクセストークンの作成

サービスアカウントの詳細ページからトークンを作成します。このトークンで認証すると、作成者個人ではなく、サービスアカウントとして識別されます。

  1. アカウントを開き、トークンを作成を選択します。この項目はアクセストークンセクションにあります。
  2. トークンに名前を付け、Codex スコープを確認して、有効期限を選びます。
  3. 作成を選択し、トークンをシークレットマネージャーに保存します。

トークンの値がすべて表示されるのは一度だけです。選択できる有効期限はワークスペースのポリシーで決まります。

ロールとグループの割り当て

サービスアカウントにも、個人のワークスペースメンバーと同様に、ワークスペースのロールを割り当てたり、グループに追加したりできます。作成者の権限は引き継がれないため、サービスアカウントに直接アクセス権を付与します。

ユーザーやグループにアカウントの管理を許可するには、共有、ユーザーまたはグループを追加の順に選択し、次のいずれかのロールを割り当てます。

共有アカウントのロール アカウントとプラグインの設定 サービスアカウントのアクセストークンの作成
ユーザー 不可 可
設定 可 不可
マネージャー 可 可

これらのロールは、アカウントを管理するユーザーに適用されます。サービスアカウント自体に割り当てるワークスペースのロールやグループとは別です。

設定ロールとマネージャーロールでは、アカウントを有効化または無効化できます。アカウントを作成、削除、共有できるのは、ワークスペースのオーナーと管理者だけです。オペレーターは、自分の ChatGPT アカウントにサインインして共有アカウントを管理します。

ワークスペースの権限について詳しくは、ロールとワークスペースの権限を参照してください。

サインインなしでの Codex の実行

サービスアカウントのアクセストークンを使用するには、Codex CLI バージョン 0.142.0 以降が必要です。CODEX_ACCESS_TOKEN を設定すると、ブラウザを開かずに Codex を実行できます。

export CODEX_ACCESS_TOKEN="<service-account-access-token>"
codex exec --json "Inspect this repository and summarize its current state."

CI では、シークレットマネージャーまたはランナーのシークレットを通じてトークンを渡します。

信頼できるマシンにログイン情報を保存するには、標準入力からトークンを渡します。

printf '%s' "$CODEX_ACCESS_TOKEN" | codex login --with-access-token
codex exec "Summarize the changes in the current branch."

この操作で認証情報がローカルに保存されます。共有ランナーや一時的なランナーでは、ログイン情報を保存せずに CODEX_ACCESS_TOKEN を使用してください。

SCIM によるサービスアカウントのプロビジョニング

ワークスペースが System for Cross-domain Identity Management(SCIM)プロトコルによるサービスアカウントのプロビジョニングに対応している場合は、ID プロバイダーで userType を ServiceAccount に設定します。

{
  "schemas": ["urn:ietf:params:scim:schemas:core:2.0:User"],
  "userName": "svc-codex-release@company.example",
  "displayName": "Codex release automation",
  "active": true,
  "userType": "ServiceAccount"
}

作成した ID をワークスペースと必要なグループに割り当ててから同期します。アカウントの名前、所属グループ、ライフサイクルは ID プロバイダーで管理します。SCIM で管理しているアカウントは、ChatGPT では名前を変更したり削除したりできません。グループとプロビジョニングを参照してください。

Admin API によるサービスアカウントの管理

ワークスペースで Admin API を利用できる場合は、ChatGPT Admin API キーを使ってアカウント、トークン、共有設定を管理できます。読み取りには chatgpt.enterprise.service_account.read 権限が、変更には chatgpt.enterprise.service_account.write 権限が必要です。サービスアカウントのトークンは、Admin API リクエストの認証には使用できません。

利用できる操作と最新のリクエストパスは、Admin API リファレンスで確認してください。

アカウント

操作 メソッド 説明
アカウント一覧の取得 GET ワークスペースのサービスアカウント一覧を返します。
アカウントの作成 POST 指定した名前でサービスアカウントを作成します。
アカウントの取得 GET サービスアカウントを 1 件返します。
アカウントの有効化または無効化 PATCH アカウントの enabled の値を更新します。
アカウントの削除 DELETE アカウントを削除し、そのトークンを失効させます。

アカウントの作成には POST /v1/manage/workspaces/{workspace_id}/service-accounts を使用します。アカウントの更新で変更できるのは enabled だけです。

トークン

操作 メソッド 説明
トークン一覧の取得 GET アカウントに属する各トークンのメタデータを返します。
トークンの作成 POST 指定したスコープのアクセストークンを作成します。
トークンの失効 DELETE 指定したトークンを恒久的に無効にします。

たとえば、30 日後に期限が切れる Codex トークンを作成するには、次の値を指定します。

{
  "name": "production-release-runner",
  "ttl": 2592000,
  "scopes": ["chatgpt.workspace.feature.allow-codex-local-access.access"]
}

ttl はトークンの有効期間を秒単位で表します。有効期限を設ける場合は、ワークスペースの有効期限ポリシーに従い、1 年未満の期間を指定する必要があります。access_token の値がすべて返されるのは、トークンを作成したときだけです。

Admin API では、共有アカウントへのアクセス権の一覧取得、追加、更新、削除もできます。ロールに指定できる値は manager、configurer、user です。configurer は ChatGPT では設定と表示されます。

サービスアカウントのセキュリティと管理

  • ロール、グループ、プラグイン、接続は、ワークフローに必要なものだけを割り当てます。
  • トークンはシークレットマネージャーに保存し、信頼できるランナーを使用します。
  • 認証情報をログやチャットメッセージに含めたり、バージョン管理システムに登録したりしないでください。
  • トークンには有効期限を設定し、アカウントのアクセス権と利用状況を定期的に確認します。
  • トークンをローテーションするには、新しいトークンを作成し、ワークフローを更新します。新しいトークンでアクセスできることを確認してから、ワークスペースまたは Admin API で古いトークンを失効させます。
  • トークンが漏えいした場合は、直ちに失効させ、アカウントの最近の利用状況を調査します。
  • 使用していないアカウントは、ワークスペースまたは Admin API で無効化または削除します。どちらの操作でも、有効なトークンはすべて失効します。無効化したアカウントは再び有効にして新しいトークンで使用できますが、削除は取り消せません。

各実行は、サービスアカウントによるものとして記録されます。ワークスペースで利用できる分析データや監査記録から、トークンを作成したユーザーやアカウント設定を変更したユーザーも特定できます。記録の対象となるイベントは、Admin API リファレンスで確認してください。

関連ドキュメント