서비스 계정
ChatGPT 워크스페이스에서 Codex 자동화를 위한 서비스 계정을 설정하고 관리합니다.
서비스 계정을 사용하면 직원 계정에 의존하지 않고 조직 전체에서 헤드리스 Codex 워크플로를 실행하고 확장할 수 있습니다. 각 지속적 통합(CI) 러너, 예약 작업 또는 공유 통합에는 사용자에게 적용되는 것과 동일한 그룹, 역할, 액세스 제어 및 감사 기능을 갖춘 자체 ChatGPT 워크스페이스 ID가 부여됩니다.
워크스페이스 소유자와 관리자만 서비스 계정을 생성할 수 있습니다. 이들은 다른 사용자나 그룹이 계정을 관리하고, 플러그인을 구성하거나, 액세스 토큰을 생성하도록 허용할 수 있습니다.
서비스 계정은 사람이 아닌 워크스페이스 ID를 나타냅니다. 개인 액세스 토큰은 이를 생성한 워크스페이스 구성원을 나타냅니다. API Platform 프로젝트 서비스 계정과 API key는 별도의 프로젝트 액세스 및 청구를 사용합니다.
서비스 계정 생성 및 설정하기
이 대화형 안내에서는 GitHub를 예로 들어 계정 생성, 플러그인 구성, 토큰 생성, 그룹 및 역할 할당 방법을 설명합니다.
워크스페이스 소유 ID 생성
더하기 버튼을 선택하고 서비스 계정 이름을 지정한 다음 만들기를 선택합니다.
계정의 플러그인 구성
플러그인을 열고 플러그인 추가를 선택한 다음 GitHub를 선택하고 이 계정에 활성화되어 있는지 확인합니다.
범위가 지정된 액세스 토큰 생성
토큰 이름을 지정하고 Codex 범위를 확인한 다음 만료 기간을 선택하고 비밀 관리자에 토큰을 저장합니다.
그룹 및 역할 할당
서비스 계정을 필요한 워크스페이스 그룹에 추가한 다음 사용자, 구성 담당자 또는 관리자 역할을 사용해 사용자나 그룹과 관리 액세스를 공유합니다.
- 워크스페이스 설정에서 서비스 계정을 엽니다.
- 더하기(+) 버튼을 선택하고
release-automation과 같이 용도를 알 수 있는 이름을 입력합니다. - 만들기를 선택합니다.
플러그인 연결하기
서비스 계정 자체에 사용할 플러그인을 구성합니다. 생성자의 플러그인이나 연결된 앱은 상속되지 않습니다.
- 계정의 플러그인 섹션을 열고 플러그인 추가를 선택합니다.
- 플러그인을 선택하고 구성 또는 활성화된 것으로 표시되는지 확인합니다.
구성 담당자 및 관리자 역할은 플러그인을 설정할 수 있습니다. 사용자 역할은 설정할 수 없습니다.
액세스 토큰 생성하기
서비스 계정의 세부 정보 페이지에서 토큰을 생성합니다. 토큰은 이를 생성한 사용자가 아니라 서비스 계정을 나타냅니다.
- 계정을 열고 액세스 토큰에서 토큰 만들기를 선택합니다.
- 토큰 이름을 지정하고 Codex 범위를 확인한 다음 만료 기간을 선택합니다.
- 만들기를 선택하고 비밀 관리자에 토큰을 저장합니다.
전체 토큰은 한 번만 표시됩니다. 워크스페이스 정책에 따라 사용할 수 있는 만료 기간이 결정됩니다.
역할 및 그룹 할당하기
서비스 계정은 사람인 워크스페이스 구성원과 마찬가지로 워크스페이스 역할을 부여받고 그룹에 가입할 수 있습니다. 서비스 계정의 액세스 권한을 직접 할당하세요. 생성자의 권한은 상속되지 않습니다.
사용자나 그룹이 계정을 관리하도록 허용하려면 공유, 사람 또는 그룹 추가를 차례로 선택하고 역할을 할당합니다.
| 공유 계정 역할 | 계정 및 플러그인 구성 | 서비스 계정 액세스 토큰 생성 |
|---|---|---|
| 사용자 | 아니요 | 예 |
| 구성 담당자 | 예 | 아니요 |
| 관리자 | 예 | 예 |
이러한 역할은 계정을 관리하는 사용자에게 적용됩니다. 서비스 계정에 할당된 워크스페이스 역할 및 그룹과는 별개입니다.
구성 담당자 및 관리자는 계정을 활성화하거나 비활성화할 수 있습니다. 워크스페이스 소유자와 관리자만 계정을 생성, 삭제 또는 공유할 수 있습니다. 운영자는 자신의 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으로 서비스 계정 프로비저닝하기
워크스페이스에서 SCIM(System for Cross-domain Identity Management) 프로토콜을 통한 서비스 계정 프로비저닝을 지원하는 경우 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로 서비스 계정 관리하기
워크스페이스에 액세스 권한이 있는 경우 ChatGPT Admin API key를 사용해 계정, 토큰 및 공유를 관리합니다. 읽기 작업에는 chatgpt.enterprise.service_account.read이 필요하고 변경 작업에는 chatgpt.enterprise.service_account.write이 필요합니다. 서비스 계정 토큰으로는 Admin API 요청을 인증할 수 없습니다.
사용 가능한 작업과 현재 요청 경로는 Admin API 참조에서 확인하세요.
계정
| 작업 | 메서드 | 수행하는 작업 |
|---|---|---|
| 계정 목록 조회 | GET |
워크스페이스 서비스 계정을 반환합니다 |
| 계정 생성 | POST |
이름이 지정된 서비스 계정을 생성합니다 |
| 계정 조회 | GET |
서비스 계정 하나를 반환합니다 |
| 계정 활성화 또는 비활성화 | 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 참조에서 이벤트 포함 범위를 확인하세요.