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

サービスアカウント

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

サービスアカウントを使うと、従業員のアカウントに依存せずに、組織全体でヘッドレスの Codex ワークフローを実行し、規模を拡大できます。継続的インテグレーション(CI)のランナー、スケジュール済みジョブ、共有の連携機能には、それぞれ専用の ChatGPT ワークスペース上のアイデンティティが割り当てられます。人間のユーザーと同じグループ、ロール、アクセス制御、監査の仕組みが適用されます。

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

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

サービスアカウントは、人間ではない主体を表すワークスペースのアイデンティティです。個人用アクセストークンは、それを作成したワークスペースメンバーを表します。API プラットフォームのプロジェクト用サービスアカウントと API キーでは、プロジェクトへのアクセスと課金が別に管理されます。

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

この対話型チュートリアルでは、GitHub を例に、アカウントの作成、プラグインの設定、トークンの作成、グループとロールの割り当てを行います。

操作を試せるチュートリアル

プラスボタンを選択してサービスアカウントに名前を付け、「作成」を選択します。

サービスアカウント

個別のアクセス権限を必要とする自動化ワークフロー向けに、ワークスペース所有のアカウントを作成します。

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)プロトコルによるサービスアカウントのプロビジョニングに対応している場合は、アイデンティティプロバイダーで userTypeServiceAccount に設定します。

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

アイデンティティをワークスペースと必要なグループに割り当て、同期します。アカウント名、所属グループ、ライフサイクルはアイデンティティプロバイダーが管理します。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スコープを設定したアクセストークンを作成します。
トークンの失効DELETE1 つのトークンを恒久的に失効させます。

たとえば、30 日後に有効期限が切れる Codex トークンを作成します。

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

ttl はトークンの有効期間を秒単位で表します。有効期限を設定する場合は、期間を 1 年未満とし、ワークスペースの有効期限ポリシーに従う必要があります。access_token の完全な値が返されるのは、トークンの作成時のみです。

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

サービスアカウントの保護と管理

  • ロール、グループ、プラグイン、接続は、ワークフローに必要なものだけを許可してください。
  • トークンはシークレットマネージャーに保存し、信頼できるランナーを使用してください。
  • ログ、チャットメッセージ、ソースコード管理に認証情報を含めないでください。
  • 有効期限を設け、アカウントへのアクセスとアクティビティを定期的に確認してください。
  • トークンをローテーションするには、代わりのトークンを作成し、ワークフローを更新してアクセスを確認した後、ワークスペースまたは Admin API で古いトークンを失効させてください。
  • 漏洩したトークンは直ちに失効させ、アカウントの最近のアクティビティを調査してください。
  • 使用していないアカウントは、ワークスペースまたは Admin API で無効化または削除してください。どちらの操作でも、有効なトークンはすべて失効します。無効化したアカウントは再度有効化し、新しいトークンで利用できますが、削除は取り消せません。

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