Anthropic¶
Connecting from the web app?
Follow the prerequisites and credential creation instructions below, then return to Cloud Security → Settings → Providers → Add provider. Enter the provider IDs under Configuration and save the credential using New secret under Permissions. Run Test Provider, fix required failures, and save. The LimaCharlie CLI examples below are an alternative. First-time setup and verification explains the full journey.
Collects your Anthropic organization as an AI-security surface: the member directory (including pending invites — staged seats that have never logged in), workspaces, and API keys from the Console plane, plus — for Claude Enterprise organizations — enforced security settings and a per-key/per-user activity feed that powers dormancy findings.
Auth model: two independent credential planes, either of which can stand alone:
| Plane | Credential | Gives |
|---|---|---|
| Console Admin API | Admin key sk-ant-admin01-… |
Members, workspaces, API keys |
| Enterprise Compliance API | Compliance key sk-ant-api01-… with read-only scopes |
Enforced-settings posture, activity feed (last-used per key/user) |
Connect one or both. Findings degrade gracefully to whatever plane is connected.
Prerequisites¶
- For the Console plane: the admin role in the Anthropic Console organization.
- For the Compliance plane: a Claude Enterprise organization (the Compliance API is not available on Team or Pro plans) and your organization UUID.
Two products, two places to create a key
Keys are created in different consoles depending on the product. A key created in one organization cannot manage another — if your company uses both Claude Console and Claude Enterprise, create one key in each.
Create the Console Admin key¶
- Sign in as an organization admin and open
Claude Console → Settings → Admin keys
(
https://platform.claude.com/settings/admin-keys). - Click Create key, give it a name, choose a key expiration, and click Create.
- Copy the value (
sk-ant-admin01-…) — the full secret is shown once.
Console Admin keys are not scopeable
Claude Console Admin keys have no selectable scopes — every key carries full access to all endpoints that accept Admin API keys. The collector uses it strictly read-only and stores it only as a secret reference, but there is no narrower Console key to issue. If that is not acceptable, connect the Compliance plane alone.
Create the Compliance key (Claude Enterprise)¶
- Sign in to claude.ai → Organization settings → API
(
https://claude.ai/admin-settings/api-access) and find the Keys section. - Click + Create key, name it, and select the scopes below.
- Copy the value (
sk-ant-api01-…) — shown once.
The primary owner of the parent organization can create a key reaching every linked organization; an organization owner can create one carrying Compliance scopes only, restricted to their own organization.
| Scope | Unlocks |
|---|---|
read:compliance_org_data |
Enforced organization security settings |
read:compliance_activities |
The activity feed — per-key and per-user last-used, which drives dormancy findings |
Those two are the whole ask. Anthropic's read:analytics scope is not used by
this connector today — no usage-analytics endpoint is called, so adding it
unlocks nothing here.
The broad audit scope also works
Anthropic offers read:org_audit, a single read-only scope covering the
Admin API read endpoints plus every Compliance API read endpoint, intended
for security-audit integrations. A Compliance key carrying it works fine
here. Be aware that only its Compliance coverage is exercised: this
connector reaches the Console plane exclusively through the Admin key on
credentials, so read:org_audit on a Compliance key is not a substitute
for connecting the Console plane.
Scopes are fixed at creation
To add a scope later you must create a new key. The Compliance API must also be enabled for your organization before a key carrying Compliance scopes will work.
You will also need the organization UUID (8-4-4-4-12 hex), which addresses the Compliance API.
Create the credentials secret(s)¶
Console plane — anthropic-admin:
Compliance plane — a separate secret, anthropic-compliance:
Bare key strings are accepted for both and wrapped into these shapes
automatically. Save the admin credential JSON above as anthropic-admin.json
and the compliance credential JSON as anthropic-compliance.json, then run:
jq -Rs '{secret: .}' anthropic-admin.json \
| limacharlie secret set --key anthropic-admin --enabled \
&& rm -f anthropic-admin.json
jq -Rs '{secret: .}' anthropic-compliance.json \
| limacharlie secret set --key anthropic-compliance --enabled \
&& rm -f anthropic-compliance.json
jq -Rs builds the outer secret-record envelope for stdin. Keep the JSON
object form when the secret needs a second field — see
workload identity federation.
Keep the two planes in separate secrets — the provider record references them independently and they are merged at runtime.
Create the provider record¶
Both planes:
provider_type: anthropic
anthropic_org_uuid: "00000000-0000-0000-0000-000000000000"
credentials: hive://secret/anthropic-admin
compliance_credentials: hive://secret/anthropic-compliance
internal_domains: [example.com]
refresh: 6h
Console plane only:
Compliance plane only (Enterprise organizations with no Console plane):
provider_type: anthropic
anthropic_org_uuid: "00000000-0000-0000-0000-000000000000"
compliance_credentials: hive://secret/anthropic-compliance
| Field | Rule |
|---|---|
anthropic_org_uuid |
Optional when the Console key is present (it is discovered). Required for a Compliance-only connection — the Compliance API is addressed by org UUID. |
credentials |
The Console Admin key secret. May be omitted only when compliance_credentials is set. |
compliance_credentials |
The Compliance key secret. Only valid for provider_type: anthropic. |
In the web app: Add provider → Anthropic, then supply either or both credentials plus the Organization UUID where required.
Verify¶
| Check | Required | Meaning if it fails |
|---|---|---|
auth |
✅ (Console) | The Console Admin key was rejected, or it belongs to a different organization than the anthropic_org_uuid you set. This check covers the Console plane only and appears only when a Console key is configured — the rest of the Console plane is not probed after it fails. A Compliance-only connection has no auth row; compliance_settings is its gate. |
directory |
✅ (Console) | Member directory unreadable. |
workspaces |
✅ (Console) | Workspace inventory unreadable. |
api_keys |
✅ (Console) | API-key inventory unreadable. |
compliance_settings |
✅ only when Compliance is the sole plane | Enforced organization security-settings posture unavailable. |
activity_feed |
— | Per-key/per-user last-used (dormancy) unavailable. |
console |
— | Informational: reports that the Console plane is not configured and what that costs. |
compliance |
— | Informational: reports that the Compliance plane is not configured and what that costs. |
Troubleshooting¶
provider test result |
Cause | Fix |
|---|---|---|
auth fails on the Console key |
A workspace key (sk-ant-api01-…) was used as the Admin key |
Create an Admin key (sk-ant-admin01-…) under Claude Console → Settings → Admin keys |
| Compliance checks fail with 401/403 | The key lacks a required scope, the scope set is fixed at creation, or the Compliance API is not enabled for the organization | A 403 lists the scopes the key has and the scopes the endpoint needs; create a new key with the missing scope |
| "anthropic_org_uuid is required" | Compliance-only connection with no org UUID | Set anthropic_org_uuid |
| Dormancy findings never appear | The activity feed is unavailable, or covers only part of the window | Connect the Compliance plane. A partial feed never asserts "unused" — absence of data is treated as unknown, not as dormant |
Optional: workload identity federation inventory¶
The Console secret may additionally carry an org_oauth_token — an
org:admin-scoped OAuth bearer token that unlocks the workload identity
federation admin plane (service accounts, federation issuers and rules), which
Admin API keys cannot reach:
These tokens are short-lived by design. Organizations that want this surface keep it live by refreshing the secret from their own automation; an expired token degrades the federation inventory to last-known values rather than failing the sweep.