Back to skills
SKILL.md
Secret Management Patterns
ASecurityHashiCorp Vault, cloud secret managers, rotation strategies, and zero-trust secret access
- 530 stars
- 0 votes
- 0 copies
- 2 views
- Added May 29, 2026
Works with
Security analysis
96/100- Installs packages at runtime which could introduce malicious dependencies
npx -y skills add vibeeval/vibecosystem --skill secret-management-patterns --agent claude-codeAre you the author of Secret Management Patterns?
Add the live security badge to your README. It updates with every re-scan.
[](https://www.skillsdirectory.com/skills/vibeeval-secret-management-patterns)---
name: secret-management-patterns
description: HashiCorp Vault, cloud secret managers, rotation strategies, and zero-trust secret access
---
# Secret Management Patterns
## Environment Variables (Baseline)
```typescript
// envalid ile startup validation
import { cleanEnv, str, url } from 'envalid'
const env = cleanEnv(process.env, {
DATABASE_URL: url(),
JWT_SECRET: str({ desc: 'Min 32 chars' }),
STRIPE_SECRET_KEY: str(),
REDIS_URL: url({ default: 'redis://localhost:6379' })
})
// App başlarken validation fail ederse crash (fail-fast)
```
## Cloud Secret Managers
```typescript
// AWS Secrets Manager
import { SecretsManagerClient, GetSecretValueCommand } from '@aws-sdk/client-secrets-manager'
const client = new SecretsManagerClient({ region: 'eu-west-1' })
const secret = await client.send(new GetSecretValueCommand({ SecretId: 'prod/db-credentials' }))
// GCP Secret Manager
import { SecretManagerServiceClient } from '@google-cloud/secret-manager'
const client = new SecretManagerServiceClient()
const [version] = await client.accessSecretVersion({ name: 'projects/123/secrets/db-pass/versions/latest' })
```
## Secret Rotation
```
1. Yeni secret oluştur
2. Dual-accept: eski + yeni kabul et
3. Tüm consumer'ları yeniye geçir
4. Eski secret'ı deaktif et
5. Grace period sonrası sil
```
## CI/CD Secret Handling
```yaml
# GitHub Actions - OIDC (secret'sız cloud erişimi)
- uses: aws-actions/configure-aws-credentials@v4
with:
role-to-assume: arn:aws:iam::123:role/deploy
aws-region: eu-west-1
# ASLA: secret'ı env'e yazdırma
- run: echo ${{ secrets.API_KEY }} # YANLIS!
```
## Secret Detection
```bash
# Pre-commit hook
pip install detect-secrets
detect-secrets scan --baseline .secrets.baseline
# CI'da
trufflehog git file://. --since-commit HEAD~1 --only-verified
gitleaks detect --source . --verbose
```
## Checklist
- [ ] Secret hardcoded DEĞİL
- [ ] .env .gitignore'da
- [ ] .env.example placeholder ile committed
- [ ] Secret rotation planı var
- [ ] CI'da secret scanning aktif
- [ ] Secret'lar least-privilege erişim
- [ ] Audit log: kim ne zaman erişti
- [ ] Pre-commit hook: detect-secrets
## Anti-Patterns
- Secret'ı log'a yazdırma
- Secret'ı URL query param'da gönderme
- Tek secret tüm environment'larda
- Rotation planı olmadan production secret
- Secret'ı client-side code'a gömme
Attribution
Comments
Loading comments…