administering-linux
Manage Linux systems covering systemd services, process management, filesystems, networking, performance tuning, and troubleshooting. Use when deploying…
Managing secrets (API keys, database credentials, certificates) with Vault, cloud providers, and Kubernetes. Use when storing sensitive data, rotating credentials, syncing secrets to Kubernetes, implementing dynamic secrets, or scanning code for leaked secrets.
$ npx -y skills add ancoleman/ai-design-components --skill secret-management --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/secret-managementContext preview
The summary Claude sees to decide when to auto-load this skill.
Managing secrets (API keys, database credentials, certificates) with Vault, cloud providers, and Kubernetes. Use when storing sensitive data, rotating credentials, syncing secrets to Kubernetes, implementing dynamic secrets, or scanning code for leaked secrets.
name: managing-secrets description: Managing secrets (API keys, database credentials, certificates) with Vault, cloud providers, and Kubernetes. Use when storing sensitive data, rotating credentials, syncing secrets to Kubernetes, implementing dynamic secrets, or scanning code for leaked secrets.
Secure storage, rotation, and delivery of secrets (API keys, database credentials, TLS certificates) for applications and infrastructure.
Use when:
| Scenario | Primary Choice | Alternative | |----------|----------------|-------------| | Kubernetes + Multi-Cloud | Vault + ESO | Cloud Secret Manager + ESO | | Kubernetes + Single Cloud | Cloud Secret Manager + ESO | Vault + ESO | | Serverless (AWS Lambda) | AWS Secrets Manager | AWS Parameter Store | | Multi-Cloud Enterprise | HashiCorp Vault | Doppler (SaaS) | | Small Team (<10 apps) | Doppler, Infisical | 1Password Secrets Automation | | GitOps-Centric | SOPS (git-encrypted) | Sealed Secrets (K8s-only) |
**Decision Tree:**
| Secret Type | Use Dynamic? | TTL | Solution | |-------------|-------------|-----|----------| | Database credentials | YES | 1 hour | Vault DB engine | | Cloud IAM (AWS/GCP) | YES | 15 min | Vault cloud engine | | SSH/RDP access | YES | 5 min | Vault SSH engine | | TLS certificates | YES | 24 hours | Vault PKI / cert-manager | | Third-party API keys | NO | Quarterly | Vault KV v2 (manual rotation) |
| Method | Use Case | Rotation | Restart Required | |--------|----------|----------|------------------| | **External Secrets Operator** | Static secrets, periodic sync | Polling (1h) | Yes | | **Secrets Store CSI Driver** | File-based, watch rotation | inotify | No | | **Vault Secrets Operator** | Vault-specific, dynamic | Automatic renewal | Optional |
# Create secret vault kv put secret/myapp/config api_key=sk_live_EXAMPLE # Read secret vault kv get secret/myapp/config # List versions vault kv metadata get secret/myapp/config
# Configure PostgreSQL
vault write database/config/postgres \
plugin_name=postgresql-database-plugin \
connection_url="postgresql://{{username}}:{{password}}@postgres:5432/mydb"
# Create role
vault write database/roles/app-role \
db_name=postgres \
creation_statements="CREATE ROLE \"{{name}}\"..." \
default_ttl="1h"
# Generate credentials
vault read database/creds/app-roleFor detailed Vault architecture, see `references/vault-architecture.md`.
Syncs secrets from 30+ providers to Kubernetes Secrets.
apiVersion: external-secrets.io/v1beta1
kind: SecretStore
metadata:
name: vault-backend
spec:
provider:
vault:
server: "https://vault.example.com"
auth:
kubernetes:
role: "app-role"apiVersion: external-secrets.io/v1beta1
kind: ExternalSecret
metadata:
name: database-credentials
spec:
refreshInterval: 1h
secretStoreRef:
name: vault-backend
target:
name: db-credentials
data:
- secretKey: password
remoteRef:
key: secret/data/database/configKubernetes-native Vault integration with automatic lease renewal.
apiVersion: secrets.hashicorp.com/v1beta1
kind: VaultDynamicSecret
metadata:
name: postgres-creds
spec:
vaultAuthRef: vault-auth
mount: database
path: creds/app-role
renewalPercent: 67 # Renew at 67% of TTL
destination:
name: dynamic-db-credsFor ESO vs CSI vs VSO comparison, see `references/kubernetes-integration.md`.
1. Create new secret version in Vault 2. Update staging environment 3. Monitor for errors (24-48 hours) 4. Gradual production rollout (10% → 50% → 100%) 5. Revoke old secret (after 7 days)
Vault auto-generates credentials with short TTL:
Using cert-manager + Vault PKI:
For detailed rotation workflows, see `references/rotation-patterns.md`.
import hvac client = hvac.Client(url='https://vault.example.com') client.auth.kubernetes(role='app-role', jwt=jwt) # Fetch dynamic credentials response = client.secrets.database.generate_credentials(name='postgres-role') username = response['data']['username'] password = response['data']['password']
import vault "github.com/hashicorp/vault/api" client, _ := va
Comprehensive UI/UX and Backend component design skills for AI-assisted development with Claude
Repo: ancoleman/ai-design-components
Manage Linux systems covering systemd services, process management, filesystems, networking, performance tuning, and troubleshooting. Use when deploying…
Data pipelines, feature stores, and embedding generation for AI/ML systems. Use when building RAG pipelines, ML feature serving, or data transformations.…
Strategic guidance for designing modern data platforms, covering storage paradigms (data lake, warehouse, lakehouse), modeling approaches (dimensional,…
Design cloud network architectures with VPC patterns, subnet strategies, zero trust principles, and hybrid connectivity. Use when planning VPC topology,…
Design comprehensive security architectures using defense-in-depth, zero trust principles, threat modeling (STRIDE, PASTA), and control frameworks (NIST CSF,…
Assembles component outputs from AI Design Components skills into unified, production-ready component systems with validated token integration, proper import…