Skip to content
Development
Skill

/key-and-audit-review

Security review of a client's Anthropic organization from the two admin-gated surfaces: the API key inventory (status, workspace scope, creator, principal, expiry, partial hint; never the secret) and the compliance activity feed (sign-ins, membership and role changes, key

From plugin
msp-claude-plugins
55200 skills165 agents200 commands4 MCP

Claude Code

$ npx -y skills add wyre-ai/msp-claude-plugins --skill key-and-audit-review --agent claude-code

SKILL.md

key-and-audit-review.SKILL.md
name: "Anthropic Admin Key and Audit Review"
description: >
  Security review of a client's Anthropic organization from the two
  admin-gated surfaces: the API key inventory (status, workspace scope,
  creator, principal, expiry, partial hint; never the secret) and the
  compliance activity feed (sign-ins, membership and role changes, key
  lifecycle events). Covers key hygiene checks, leaver key sweeps, and
  incident-response timelines. Every tool here needs the admin tier in Conduit.
when_to_use: >-
  When auditing a client's Anthropic API keys, finding keys a departed user created,
  checking for keys that never expire, or building a timeline of admin activity in an
  Anthropic org. Use when: anthropic api keys, anthropic key inventory, leaked anthropic
  key, anthropic key owner, anthropic audit log, anthropic compliance activities, who
  changed anthropic roles, or anthropic security review.

Anthropic Key and Audit Review

Overview

API keys are the part of an Anthropic org that leaks, outlives its owner, and runs up spend. This skill inventories them and reads the compliance feed to explain how the org got into its current state. It never sees a secret and cannot archive or rotate a key; it produces findings for a client admin to act on in Claude Console.

**Admin-gated in Conduit.** All three tools in this skill require the `admin` tier: `anthropic_admin_api_keys_list`, `anthropic_admin_api_key_get`, and `anthropic_admin_compliance_activities_list`. With an ordinary `read` grant they are not listed at all. Check `conduit__my_access` and ask an org owner for the grant rather than working around it.

Anti-triggers

  • **Which keys are spending the money** — that is cost and usage grouped

by `api_key_id`; use [spend-review](../spend-review/SKILL.md), which is read-tier.

  • **Who is a member right now** — use

[seat-inventory](../seat-inventory/SKILL.md).

Key Concepts

  • **Key status:** `active`, `inactive`, `archived`, or `expired`. Filter

with `status`. Only `active` keys can call the API.

  • **Scope:** a key belongs to a workspace (`scope.workspace_id`) or, for a

principal-bound key, to the organization.

  • **Creator and principal:** `created_by` is who made the key (a user or a

service account; `null` for legacy or system keys). `principal` is who the key acts as. They can differ.

  • **`expires_at`:** `null` means the key never expires.
  • **`partial_key_hint`:** a redacted fragment (`sk-ant-api03-R2D...igAA`).

It is how you match a key found in a repo, a log, or a leaked-secret alert to a key ID without ever handling the secret.

  • The key list does not include a last-used date. To tell whether a key

is in use, group spend or usage by `api_key_id` (read-tier, see [spend-review](../spend-review/SKILL.md)).

Workflows

Key hygiene review

1. `anthropic_admin_organization_get` - confirm the org. 2. `anthropic_admin_api_keys_list` with `status: "active"`, `limit: 1000`, paging `after_id` to the end. 3. Flag, in this order:

  • active keys created by someone no longer in

`anthropic_admin_users_list` (orphaned keys);

  • active keys with `expires_at: null`;
  • active keys in the default workspace, where they are hardest to

attribute to a client or project;

  • generic names (`test`, `key`, `my key`) that nobody can own.

4. Cross-check which flagged keys have spent anything in the last 30 days with `anthropic_admin_analytics_cost` or `anthropic_admin_usage_report_messages`, both grouped by `api_key_id` (the legacy `anthropic_admin_cost_report` cannot split by key). An orphaned key with spend is urgent; one with none is cleanup.

Leaver key sweep

1. Resolve the leaver's user ID (from `anthropic_admin_users_list` before removal, or from the compliance feed if they are already gone). 2. `anthropic_admin_api_keys_list` with `created_by_user_id` and `status: "active"`. 3. Report each key with name, workspace, and partial hint, and recommend the client archive it in Claude Console. Keys a leaver created keep working after their seat is removed.

Leaked key triage

Given a key fragment from a secret-scanning alert:

1. `anthropic_admin_api_keys_list` (all statuses), match on `partial_key_hint`. 2. `anthropic_admin_api_key_get` on the match for full metadata. 3. Pull recent spend and usage for that `api_key_id` to see whether it was used. 4. Recommend immediate archive in Console. Do not ask anyone to paste the full key to "confirm".

Activity timeline

1. `anthropic_admin_compliance_activities_list` with `created_at_gte` / `created_at_lt` around the window, `order: "asc"`, and `limit` up to 5000, paging `after_id`. 2. Narrow with `user_ids`, `actor_ids`, or `activity_types` once you see which types the org emits. Use `exclude_activity_types` to drop noisy sign-in events when you are after role or key changes. 3. Present a time-ordered table: when, actor, activity type, target.

Gotchas

  • An empty or 403/404 compliance feed can mean the feature is not

available to this org rather than "nothing happened". Say which.

  • The compliance feed and the key inventory are sensitive. Keep raw

output inside the MSP; client reports carry findings, not dumps.

  • A key list from one page is not an inventory. Page to the end.

Related Skills

  • [api-patterns](../api-patterns/SKILL.md) - tiers, pagination, errors
  • [seat-inventory](../seat-inventory/SKILL.md) - who is still a member
  • [spend-review](../spend-review/SKILL.md) - which keys are spending
Read more
@wyre-technology
Ships withmsp-claude-plugins

One command to supercharge Claude Code for MSP workflows. Then restart Claude Code. That's it. Documentation: wyre-ai.github.io/msp-claude-plugins

55200 skills165 agents4 MCP
Get the whole plugin

Stars on GitHub

Momentum

stars in total
55
Star history of wyre-technology/msp-claude-plugins on GitHub, a chart by star-history.com

Other skills on msp-claude-plugins.

More skills from other plugins.

brainstorming
Auto-invoked

brainstorming

You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or…

@obra@obraInstall Skill
ask-matt

ask-matt

Ask which skill or flow fits your situation. A router over the skills in this repo.

skills2w309k
@mattpocock@mattpocockInstall Skill
accessibility
Auto-invoked

accessibility

Design, implement, and audit accessible UI to WCAG 2.2 Level AA across Web, iOS, and Android — semantic ARIA roles and labels,…

ecc2w293k
@affaan-m@affaan-mInstall Skill
compiler-commit

compiler-commit

Use when you want to verify compiler changes and commit with the correct convention. Runs tests, lint, and format, then commits…

react5d252k
@facebook@facebookInstall Skill

Questions about key-and-audit-review.

Which coding agents can use key-and-audit-review?
key-and-audit-review installs in Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode and Windsurf with the skills CLI, using each agent's flag shown on this page. Flowy's auto-invocation, which fires a skill when your prompt matches, runs in Claude Code only.