조직·사용자·역할·그룹·설정 나열하기
조직·사용자·역할·그룹·설정 나열하기
이 페이지는 상위 조직 아래의 조직(그 사용자, 역할, 그룹)을 열거하고 Compliance API를 통해 각 조직의 유효 설정을 읽는 방법을 설명해 드릴게요.
Compliance API를 활성화하려면 Compliance API 설정을 참고하세요.
필요한 범위: Compliance Access Key의
read:compliance_org_data. 사용자·그룹 구성원 엔드포인트는 대신read:compliance_user_data가 필요해요.claude.ai에서 만든 Compliance Access Key(
sk-...)만 허용되는 키 유형이에요. 프로비저닝하려면 Compliance API 설정 참고. Admin API 키(sk-...)로 인증된 호출은 403 Forbidden을 반환해요.
이 페이지의 엔드포인트는 Claude Enterprise 조직의 디렉터리 측면을 노출해요: 연결 조직, 각 조직의 사용자, 각각에 정의된 역할, RBAC(역할 기반 접근 제어) 또는 SCIM(교차 도메인 ID 관리) 프로비저닝된 그룹과 그 구성원. eDiscovery 사용자 목록을 시딩하고, 보고 대시보드를 구축하며, 외부 시스템 of record에 대한 그룹 구성원을 조정하는 데 사용하세요. 상위 조직을 다루는 Compliance Access Key는 아래의 모든 연결 조직에서 데이터를 반환하므로 단일 키로 전체 트리에 도달해요. 유효 설정 엔드포인트는 디렉터리를 보완해요. 한 조직에 실제로 적용 중인 데이터 개인정보·보안·기능 설정을 반환해요.
출처: 문서
본문
조직 목록화
조직 목록화 엔드포인트는 키가 바인딩된 상위 아래의 모든 조직을 반환해요.
다음 호출은 상위 아래의 모든 조직을 나열해요. 응답은 created_at 오름차순으로 정렬된 조직 기록의 data 배열과 페이지네이션용 has_more, next_page예요. has_more가 true면 반환된 next_page 토큰을 다음 요청의 page 쿼리 매개변수로 그대로 전달하세요. limit·page 매개변수 기본값과 범위는 API 참조의 조직 목록화 참고.
curl --fail-with-body -sS \
"https://api.anthropic.com/v1/compliance/organizations" \
-H "x-api-key: $ANTHROPIC_API_KEY" \
-H "anthropic-version: 2023-06-01"
{
"data": [
{
"uuid": "91012d09-e48b-438e-a489-1bebfd8fa6f9",
"name": "Acme Engineering",
"created_at": "2025-06-01T10:00:00Z"
},
{
"uuid": "5a1b2c3d-4e5f-6789-abcd-ef0123456789",
"name": "Acme Legal",
"created_at": "2025-07-15T14:30:00Z"
}
],
"has_more": false,
"next_page": null
}
uuid 필드는 다운스트림 조회의 정식 식별자예요. 다음 표는 이를 Compliance API 전반의 다른 조직 식별자에 매핑해요:
| 필드 | 위치 | uuid와의 관계 |
|---|---|---|
{org_uuid} |
이 페이지의 조직별 엔드포인트의 경로 매개변수 | 같은 값 |
organization_uuid |
Activity Feed, 채팅, 프로젝트, 세션 기록 | 같은 값; 이 두 필드로 직접 조인 |
organization_id |
Activity Feed, 채팅, 프로젝트 기록 | 같은 조직, org_ 접두사. 채팅·프로젝트 기록에서는 더 이상 사용되지 않음. organization_uuid 사용. |
organization_ids[] |
활동 피드 조회, 채팅·메시지 조회, 원격 세션 목록의 필터(로컬 세션 목록에는 조직 필터 없음) | uuid 또는 org_ 접두사 형식 허용 |
organization_id |
유효 조직 설정 응답 | 같은 값, 순수 UUID. 이 응답은 Activity Feed·채팅·프로젝트 기록의 organization_id가 담는 org_ 접두사 형식을 사용하지 않음 |
대부분의 다른 Anthropic API는 org_ 접두사 형식을 사용해요.
시간 경과에 따른 조직 구성원 변경을 추적하려면 이 엔드포인트를 주기적으로 다시 나열하며 매 패스마다 모든 페이지를 통해 next_page 토큰을 따르세요. Activity Feed도 org_deletion_requested, org_deleted_via_bulk, org_parent_join_proposal_created, org_join_proposal_decided 활동 유형을 통해 구성원 이벤트를 표면화해요. 활동 피드 조회 참고.
조직 사용자 목록화
조직 사용자 목록화 엔드포인트는 한 조직의 사용자 기록 페이지네이션 목록을 반환해요.
이 엔드포인트는 read:compliance_org_data가 아니라 read:compliance_user_data가 필요해요. 디렉터리 열거에 사용하려면 두 범위 모두로 Compliance Access Key를 만들고, 그렇지 않으면 호출이 403 Forbidden을 반환해요.
limit·page 쿼리 매개변수 기본값과 범위는 API 참조의 조직 사용자 목록화 참고.
결과는 조직 가입 날짜 오름차순으로 정렬돼요. Activity Feed의 before_id/after_id 커서(결과 페이지네이션 참고)와 달리 디렉터리 엔드포인트는 next_page 토큰으로 페이지네이션해요. has_more가 true면 다음 요청의 page 쿼리 매개변수로 next_page를 그대로 전달하세요.
org_uuid="91012d09-e48b-438e-a489-1bebfd8fa6f9"
curl --fail-with-body -sS -G \
"https://api.anthropic.com/v1/compliance/organizations/$org_uuid/users" \
-H "x-api-key: $ANTHROPIC_API_KEY" \
-H "anthropic-version: 2023-06-01" \
--data-urlencode "limit=500"
{
"data": [
{
"id": "user_01XyDMpzjS89pFZXqSFUBDr6",
"full_name": "Priya Sharma",
"email": "[email protected]",
"organization_role": "admin",
"created_at": "2025-06-01T10:00:00Z"
}
],
"has_more": true,
"next_page": "page_8aW5kZXgicG9zaXRpb25fdG9rZW5fOTE0"
}
여기서 반환된 사용자 ID는 활동 피드 조회의 actor_ids[] 필터와 채팅·메시지 조회 및 원격 세션 목록의 user_ids[] 필터가 받아들이는 것과 같은 user_... 식별자예요. 로컬 세션 목록은 사용자 필터가 없으므로 각 세션 객체의 user.id로 로컬 세션을 귀속시키세요. organization_role 필드는 나열된 조직 내 사용자의 내장 구성원 수준(admin, billing, claude_code_user, developer, managed, membership_admin, owner, primary_owner, user 중 하나)을 담아요. 이는 역할 목록화가 반환하는 커스텀 RBAC 역할 할당과 독립적인 축이에요. 일반적인 eDiscovery 흐름은 조직 하나 이상의 사용자를 나열하고 자체 외부 기록에 대해 필터링한 뒤 결과 ID를 채팅·프로젝트 조회에 공급해요.
사용자는 조직의 활성 구성원인 동안에만 여기에 나타나요. 제거된 사용자는 즉시 목록에서 빠져요. 그들의 과거 활동은 전체 보존 창 동안 Activity Feed를 통해 같은 user_... ID로 조회 가능하게 남아 있어요.
역할 목록화
Compliance 역할 목록화 엔드포인트는 한 조직에 정의된 역할 기록의 페이지네이션 목록을 반환하고, Compliance 역할 가져오기는 ID로 한 역할을 반환해요.
두 역할 엔드포인트 모두 read:compliance_org_data가 필요해요. 목록 엔드포인트는 조직 사용자 엔드포인트와 같은 limit·page 매개변수를 받아요.
org_uuid="91012d09-e48b-438e-a489-1bebfd8fa6f9"
curl --fail-with-body -sS \
"https://api.anthropic.com/v1/compliance/organizations/${org_uuid}/roles" \
-H "x-api-key: $ANTHROPIC_API_KEY" \
-H "anthropic-version: 2023-06-01"
{
"data": [
{
"id": "rbac_role_01N2pQrS8tUvWxYz5AbCdEfGh",
"name": "Compliance Reviewer",
"description": "Read-only access to chat and project content for legal review.",
"created_at": "2025-06-01T10:00:00Z",
"updated_at": "2025-06-15T14:30:00Z"
}
],
"has_more": false,
"next_page": null
}
전체 역할 기록 형태는 Compliance 역할 목록화 응답 스키마를 참고하세요. 역할에 현재 부여된 권한을 나열하려면 Compliance 역할 권한 목록화를 사용하세요. 과거 역할 할당과 권한 변경을 감사하려면 Activity Feed를 통해 RBAC 활동 유형(예: rbac_role_assigned, rbac_role_permission_added)을 조회하세요. 활동 필터링 참고.
그룹과 구성원 목록화
Compliance 그룹 목록화 엔드포인트는 RBAC·SCIM 프로비저닝된 그룹의 페이지네이션 목록을 반환하고, Compliance 그룹 가져오기는 ID로 한 그룹을 반환해요. Compliance 그룹 구성원 목록화 엔드포인트는 한 그룹의 구성원을 반환해요.
그룹 목록·조회 엔드포인트는 read:compliance_org_data가 필요해요. 구성원 엔드포인트는 read:compliance_user_data가 필요해요. 그룹을 완전히 걷으려면 두 범위 모두로 키를 만드세요. 두 목록 엔드포인트 모두 조직 사용자 엔드포인트와 같은 limit·page 매개변수를 받아요.
전체 그룹 기록 형태는 Compliance 그룹 목록화 응답 스키마 참고. roles 배열은 그룹에 할당된 역할 ID를 나열하며 역할 목록화의 ID와 일치해요. source_type은 claude.ai를 통해 수동으로 만든 그룹(direct)과 SCIM을 통해 외부 ID 제공자에서 동기화된 그룹(scim)을 구분하는 판별자예요.
그룹을 나열한 뒤 각 그룹의 구성원을 나열하세요:
curl --fail-with-body -sS -G \
"https://api.anthropic.com/v1/compliance/groups" \
-H "x-api-key: $ANTHROPIC_API_KEY" \
-H "anthropic-version: 2023-06-01"
{
"data": [
{
"id": "rbac_group_01P9qRsTuVwXyZa2BcDeFgHjK",
"name": "Engineering",
"description": "Engineering team members",
"source_type": "scim",
"roles": ["rbac_role_01N2pQrS8tUvWxYz5AbCdEfGh"],
"created_at": "2025-06-01T10:00:00Z",
"updated_at": "2025-06-15T14:30:00Z"
}
],
"has_more": false,
"next_page": null
}
각 그룹 ID에 대해 구성원을 나열하세요:
group_id="rbac_group_01P9qRsTuVwXyZa2BcDeFgHjK"
curl --fail-with-body -sS -G \
"https://api.anthropic.com/v1/compliance/groups/$group_id/members" \
-H "x-api-key: $ANTHROPIC_API_KEY" \
-H "anthropic-version: 2023-06-01"
{
"data": [
{
"user_id": "user_01XyDMpzjS89pFZXqSFUBDr6",
"email": "[email protected]",
"created_at": "2025-06-01T10:00:00Z",
"updated_at": "2025-06-15T14:30:00Z"
}
],
"has_more": false,
"next_page": null
}
전체 구성원 기록 형태는 Compliance 그룹 구성원 목록화 응답 스키마 참고. user_id 필드는 Activity Feed·채팅 목록·원격 세션 목록이 받아들이는 것과 같은 user_... 식별자예요. 로컬 세션 객체의 user.id와 사용자 소유 원격 세션 객체(에이전트 소유 원격 세션은 인간의 ID를 started_by_user.id에 담아요)의 user.id와도 일치해요. 구성원의 전체 이름을 얻으려면 조직 사용자 목록으로 조회하세요.
유효 조직 설정 가져오기
유효 조직 설정 가져오기 엔드포인트는 상위 아래 한 조직에 적용 중인 설정을 반환해요: 규제 제한(예: HIPAA), 기능 가용성 규칙, 조직 유형 기본값, 기능 간 의존성이 적용된 후의 강제 상태로, 관리자가 구성한 것과 다를 수 있어요. 관리자 Console 접근 없이 보존 창, 콘텐츠 교정, SSO 강제, IP 허용 목록, 세션 기간 제어가 문서화된 기준과 일치하는지 입증하는 데 사용하세요.
이 엔드포인트는 read:compliance_org_data가 필요해요. 그 범위가 없는 키는 403 Forbidden을 반환해요. 대상은 상위의 연결 조직 중 하나여야 해요. 상위 조직 자체는 유효한 대상이 아니에요. 알 수 없는 조직, 유효한 UUID가 아닌 조직 ID, 상위 트리 밖의 조직, 아직 이 엔드포인트에 접근 권한이 없는 상위 조직 모두 같은 404 Not Found를 반환하므로 404는 조직 존재 여부를 드러내지 않아요. settings 엔드포인트는 Compliance API의 나머지와 별도로 상위 조직당 활성화돼요. 모든 요청이 404를 반환하면 Anthropic 담당자에게 문의하세요.
2026년 6월 30일 이전에는 이 엔드포인트가 별도의
read:compliance_org_settings범위가 필요했어요. 그 범위는 은퇴했어요. 키를 만들 때 더 이상 선택하거나 부여할 수 없고, 은퇴한 범위만 담은 키는 403 Forbidden을 반환해요. 대신read:compliance_org_data로 새 Compliance Access Key를 만드세요.
org_uuid="91012d09-e48b-438e-a489-1bebfd8fa6f9"
curl --fail-with-body -sS \
"https://api.anthropic.com/v1/compliance/organizations/$org_uuid/settings" \
-H "x-api-key: $ANTHROPIC_API_KEY" \
-H "anthropic-version: 2023-06-01"
응답은 타입이 지정된 설정 행의 목록이며 어느 행이 나타나는지는 조직에 따라 달라져요: 조직 관리자가 바꿀 수 없는 설정(Anthropic 정책이 제어하거나 조직에 사용할 수 없기 때문에)은 목록에서 생략돼요. 빠진 행을 "끔"이 아니라 "이 조직의 관리자가 제어할 수 없음"으로 취급하세요. 다음 축약 예시는 응답이 담을 수 있는 세 행을 보여줘요:
{
"type": "effective_organization_settings",
"organization_id": "91012d09-e48b-438e-a489-1bebfd8fa6f9",
"settings": [
{
"name": "data_retention_periods",
"type": "data_retention",
"value": {
"chat": {
"type": "fixed",
"timescale": "day",
"duration": 90
}
}
},
{
"name": "content_redaction_enabled",
"type": "boolean",
"value": true
},
{
"name": "ip_allowlist_ip_ranges",
"type": "string_list",
"value": ["10.0.0.0/8", "203.0.113.0/24"]
}
],
"api_keys": [
{
"type": "compliance_api_key",
"id": "apikey_01Hx7k2mP9nQ4rS6tU8vW0xY",
"name": "Compliance Export Key",
"scopes": ["read:compliance_activities", "read:compliance_org_data"],
"is_active": true,
"created_at": "2026-03-14T09:30:00Z",
"created_by_id": "user_01Jz3a4bC5dE6fG7hI8jK9lM",
"expires_at": null
}
]
}
각 행은 name, type, value를 담아요. type 필드(boolean, integer, string_list, provisioning_mode, data_retention)가 value의 형태를 알려줘요. 전체 설정 이름 목록과 각 유형의 value 스키마는 API 참조의 유효 조직 설정 가져오기에 있어요.
api_keys 배열은 상위 조직에 구성된 모든 Compliance Access Key를 나열하므로, 어느 연결 조직을 조회하든 같은 목록이 반환돼요. 각 항목은 키의 type(compliance_api_key), id, name, scopes, is_active 플래그, created_at·expires_at 타임스탬프, created_by_id(키를 만든 사용자의 ID. null일 수 있음)를 담아요. 키의 비밀 값은 절대 반환되지 않아요. 비활성화된 키는 is_active: false로 포함되어 이전에 접근 권한이 있었던 키를 검토할 수 있어요. 은퇴한 read:compliance_org_settings 범위만 담은 키도 그 범위가 더 이상 접근을 부여하지 않아도 감사·정리 가시성을 위해 목록에 남아 있어요.
최상위 organization_id는 조직의 순수 UUID예요. 조직 목록의 uuid와 같은 값이며, Activity Feed·채팅·프로젝트 기록의 organization_id가 담는 org_ 접두사 형식은 아니에요(조직 식별자 표 참고).
행은 마지막으로 저장된 구성이 아니라 강제된 상태를 반영해요. 예를 들어 sso_provisioning_mode는 디렉터리 동기화가 활성화된 동안에만 구성된 SCIM 모드를 보고하고, ip_allowlist_enabled는 허용 목록이 켜져 있고 활성 범위가 하나 이상일 때만 true이며, code_execution_network_egress_enabled는 코드 실행이 꺼져 있으면 언제나 false예요.
응답은 읽기 시점의 상태를 반영하며 아무것도 스냅샷되지 않아요. 대부분의 설정 변경은 Activity Feed의 이벤트로 표면화돼요. 현재 해석된 상태에는 이 엔드포인트를, 누가 언제 무엇을 바꿨는지 감사에는 피드를 사용하세요.
다음 단계
- Compliance 조직 API 참조 — 이동 — 모든 조직·사용자·역할·그룹·설정 엔드포인트의 전체 요청·응답 스키마.
- Compliance API 오류 처리 — 이동 — 그대로의 오류 페이로드와 각각의 해결책.