implementing-api-key-security-controls
Implements secure API key generation, storage, rotation, and revocation controls to protect API authentication credentials from leakage, brute force, and abuse.
Skill by Njones17
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/njones17-implementing-api-key-security-controls
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: backend, security
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/implementing-api-key-security-controls
What's inside
- Skill name
implementing-api-key-security-controls- Description
- Implements secure API key generation, storage, rotation, and revocation controls to protect API authentication credentials from leakage, brute force, and abuse. The engineer designs API key formats with sufficient entropy, implements secure hashing for storage, enforces per-key scoping and rate limiting, monitors for leaked keys in public repositories, and builds key rotation workflows. Activates for requests involving API key management, API key security, key rotation policy, or API credential protection.
- License
- MIT
- Instructions
- 376 lines in SKILL.md · view on GitHub
Files (1)
- SKILL.md
SKILL.md (first lines)
# Implementing API Key Security Controls
## When to Use
- Designing secure API key generation with sufficient entropy and identifiable prefixes for leak detection
- Implementing server-side API key hashing (never storing keys in plaintext) with SHA-256 or bcrypt
- Building key rotation workflows that allow zero-downtime key replacement for API consumers
- Configuring per-key scoping to limit each API key to specific endpoints, IP ranges, and rate limits
- Setting up automated monitoring for API key leakage in GitHub repos, logs, and client-side code
**Do not use** API keys as the sole authentication mechanism for user-facing applications. API keys are best suited for server-to-server communication and developer access.
## Prerequisites
- Secure random number generator (os.urandom, secrets module) for key generation
- Database with proper encryption at rest for storing hashed API keys
- Redis or similar store for key-to-metadata caching and rate limiting
- Secret scanning tools (GitHub secret scanning, truffleHog, gitleaks)
- Monitoring and alerting infrastructure for key usage anomalies
## Workflow
### Step 1: Secure API Key Generation
```python
import secrets
import hashlib
import hmac
import time
import json
from datetime import datetime, timedelta
class APIKeyManager:
"""Manages secure API key lifecycle: generation, storage, validation, rotation."""
# Key format: prefix_base64random (e.g., sk_live_a1b2c3d4e5f6...)
# Prefix identifies the key type and environment for leak detection
KEY_PREFIXES = {
"live_secret": "sk_live_",
"test_secret": "sk_test_",
"live_public": "pk_live_",
"test_public": "pk_test_",
}
def __init__(self, db_connection, redis_connection):
self.db = db_connection
self.redis = redis_connection
def generate_key(self, key_type="live_secret", owner_id=None, scopes=None,
rate_limit=None, ip_allowlist=None, expires_days=365):
"""Generate a new API key with metadata."""
prefix = self.KEY_PREFIXES.get(key_type, "sk_live_")
# Generate 32 bytes (256 bits) of randomness
random_bytes = secrets.token_bytes(32)
key_body = secrets.token_urlsafe(32) # Base64url-encoded
# Full API key that the client receives (shown only once)
full_key = f"{prefix}{key_body}"
# Hash the key for storage (never store the raw key)
key_hash = hashlib.sha256(full_key.encode()).hexdigest()
# Create a short key ID for reference (first 8 chars)
key_id = f"{prefix}{key_body[:8]}..."
# Store the hashed key with metadata
key_metadata = {
"key_hash": key_hash,
"key_id": key_id,
"key_type": key_type,
"owner_id": owner_id,
"scopes": scopes or ["read"],
"rate_limit": rate_limit or {"requests": 1000, "window": 3600},
"ip_allowlist": ip_allowlist or [],
"created_at": datetime.utcnow().isoformat(),
"expires_at": (datetime.utcnow() + timedelta(days=expires_days)).isoformat(),
"last_used": None,
"is_active": True,
"usage_count": 0,
}
# Store in database
self.db.execute(
"INSERT INTO api_keys (key_hash, key_id, metadata) VALUES (?, ?, ?)",
(key_hash, key_id, json.dumps(key_metadata))
)
# Cache in Redis for fast validation
self.redis.setex(
f"apikey:{key_hash}",
86400, # 24-hour cache TTL
json.dumps(key_metadata)
)
return {
"api_key": full_key, # Show to user ONCE
"key_id": key_id, # For reference/management
"scopes": key_metadata["scopes"],
"expires_at": key_metadata["expires_at"],
}
def validate_key(self, api_key):
"""Validate an API key and return its metadata."""
key_hash = hashlib.sha256(api_key.encode()).hexdigest()
# Check Redis cache first
cached = self.redis.get(f"apikey:{key_hash}")
if cached:
metadata = json.loads(cached)
else:
# Fall back to database
row = self.db.execute(
"SELECT metadata FROM api_keys WHERE key_hash = ?",
(key_hash,)
).fetchone()
if not row:
return None, "invalid_key"
metadata = json.loads(row[0])
# Refresh cacheFrom Njones17/AI-agent-master-cyber-skills-list, MIT.
More from Njones17/AI-agent-master-cyber-skills-list
- 0.497score
integrating-dast-with-owasp-zap-in-pipeline
Njones17
This skill covers integrating OWASP ZAP (Zed Attack Proxy) for Dynamic Application Security Testing in CI/CD pipelines.
SkillDFreshness: D★ 24Claude Code +9 - 0.497score
dast-scanning
devops-skills
Perform dynamic application security testing with OWASP ZAP, Burp Suite, and Nikto.
SkillDFreshness: D★ 24Claude Code +9 - 0.497score
performing-sca-dependency-scanning-with-snyk
Njones17
This skill covers implementing Software Composition Analysis (SCA) using Snyk to detect vulnerable open-source dependencies in CI/CD pipelines.
SkillDFreshness: D★ 24Claude Code +9 - 0.497score
integrating-sast-into-github-actions-pipeline
Njones17
This skill covers integrating Static Application Security Testing (SAST) tools—CodeQL and Semgrep—into GitHub Actions CI/CD pipelines.
SkillDFreshness: D★ 24Claude Code +9 - 0.497score
ghost-scan-code
Njones17
Ghost Security - SAST code scanner.
SkillDFreshness: D★ 24Claude Code +9 - 0.497score
sast-scanning
devops-skills
Perform static application security testing with tools like Semgrep, CodeQL, and SonarQube.
SkillDFreshness: D★ 24Claude Code +9 - 0.494score
implementing-github-advanced-security-for-code-scanning
Njones17
Configure GitHub Advanced Security with CodeQL to perform automated static analysis and vulnerability detection across repositories at enterprise scale.
SkillDFreshness: D★ 24Claude Code +9 - 0.494score
performing-cryptographic-audit-of-application
Njones17
A cryptographic audit systematically reviews an application's use of cryptographic primitives, protocols, and key management to identify vulnerabilities such…
SkillDFreshness: D★ 24Claude Code +9 - 0.494score
implementing-semgrep-for-custom-sast-rules
Njones17
Write custom Semgrep SAST rules in YAML to detect application-specific vulnerabilities, enforce coding standards, and integrate into CI/CD pipelines.
SkillDFreshness: D★ 24Claude Code +9 - 0.492score
implementing-api-rate-limiting-and-throttling
Njones17
Implements API rate limiting and throttling controls using token bucket, sliding window, and fixed window algorithms to protect against brute force attacks…
SkillDFreshness: D★ 24Claude Code +9 - 0.492score
implementing-api-gateway-security-controls
Njones17
Implements security controls at the API gateway layer including authentication enforcement, rate limiting, request validation, IP allowlisting, TLS…
SkillDFreshness: D★ 24Claude Code +9 - 0.492score
ghost-repo-context
Njones17
Scans directory structure, detects projects, maps dependencies, and documents code organization into a repo.md file.
SkillDFreshness: D★ 24Claude Code +9
Signals
- Stars
- 24
- Forks
- 6
- Open issues
- 0
- Last commit (this folder)
- Mar 6, 2026 (7 months ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- MIT
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
Same skill elsewhere
Copies of this SKILL.md published by others; search shows only one of them.
More from Njones17
- 0.497score
ghost-scan-code
Njones17
Ghost Security - SAST code scanner.
SkillDFreshness: D★ 24Claude Code +9 - 0.497score
integrating-sast-into-github-actions-pipeline
Njones17
This skill covers integrating Static Application Security Testing (SAST) tools—CodeQL and Semgrep—into GitHub Actions CI/CD pipelines.
SkillDFreshness: D★ 24Claude Code +9 - 0.497score
integrating-dast-with-owasp-zap-in-pipeline
Njones17
This skill covers integrating OWASP ZAP (Zed Attack Proxy) for Dynamic Application Security Testing in CI/CD pipelines.
SkillDFreshness: D★ 24Claude Code +9 - 0.497score
performing-sca-dependency-scanning-with-snyk
Njones17
This skill covers implementing Software Composition Analysis (SCA) using Snyk to detect vulnerable open-source dependencies in CI/CD pipelines.
SkillDFreshness: D★ 24Claude Code +9 - 0.494score
implementing-semgrep-for-custom-sast-rules
Njones17
Write custom Semgrep SAST rules in YAML to detect application-specific vulnerabilities, enforce coding standards, and integrate into CI/CD pipelines.
SkillDFreshness: D★ 24Claude Code +9 - 0.494score
implementing-github-advanced-security-for-code-scanning
Njones17
Configure GitHub Advanced Security with CodeQL to perform automated static analysis and vulnerability detection across repositories at enterprise scale.
SkillDFreshness: D★ 24Claude Code +9
Cite this page
implementing-api-key-security-controls skill. Agent Mart. https://agentmart.dev/skills/njones17-implementing-api-key-security-controls (last updated 2026-10-24)