Skip to main content

secrets-management

Enforces secure handling of API keys, tokens, and credentials for Black Trigram — no hardcoded secrets, GitHub Secrets for CI/CD, rotation SLAs, aligned with OWASP A02:2021 and Hack23 Cryptography Policy

معلومات المصدر

المستودع
Hack23/blacktrigram
آخر نشاط في المصدر
١٧ أبريل ٢٠٢٦ في ١٨:٤٨
لغة SKILL.md المكتشفة
الإنجليزية
النجوم
٨
التفرعات
٧

خيارات التثبيت

يُحدَّد Prompt الذي يراجع المصدر أولًا بشكل افتراضي. يمكنك التبديل إلى أمر مباشر أو تنزيل نسخة محلية.

مراجعة ملفات المصدر

اقرأ SKILL.md وأي ملفات مرافقة يعرضها SkillsMP قبل أن تقرر التثبيت.

عرض SKILL.md

SKILL.md
تعليمات المصدر · معاينة للقراءة فقط
name
secrets-management
description
Enforces secure handling of API keys, tokens, and credentials for Black Trigram — no hardcoded secrets, GitHub Secrets for CI/CD, rotation SLAs, aligned with OWASP A02:2021 and Hack23 Cryptography Policy
license
MIT
# 🔑 Secrets Management Skill > **Strategic Principle**: Secrets must never appear in source code. Manage secrets securely throughout their lifecycle. ## 🎯 Purpose Enforce proper secrets management for Black Trigram, ensuring API keys, tokens, and credentials are handled securely and never exposed in code, logs, or build artifacts. **Reference**: [Hack23 ISMS Secure Development Policy](https://github.com/Hack23/ISMS-PUBLIC/blob/main/Secure_Development_Policy.md) | [Hack23 ISMS Cryptography Policy](https://github.com/Hack23/ISMS-PUBLIC/blob/main/Cryptography_Policy.md) ## Enforcement Rules ### Rule 1: No Hardcoded Secrets ``` IF (string resembles API key, token, password, or credential in source code) THEN (reject immediately - use environment variables or GitHub Secrets) ELSE (verify with regex patterns for common secret formats) ``` ### Rule 2: Environment Variable Usage ``` IF (configuration requires sensitive values) THEN (use import.meta.env.VITE_* for client-side, process.env for server-side) ELSE (hardcoded values in client-side code are publicly accessible) ``` ### Rule 3: Git History Protection ``` IF (secret accidentally committed) THEN (1. Revoke immediately 2. Rotate credential 3. Report incident) ELSE (git history preserves secrets even after removal) ``` ### Rule 4: Build Artifact Safety ``` IF (build output or logs) THEN (verify no secrets leaked in bundle, source maps, or CI logs) ELSE (secrets in artifacts are publicly accessible) ``` ## Core Patterns ### Environment Variables ```typescript // ✅ GOOD: Environment variables with validation const config = { apiKey: import.meta.env.VITE_API_KEY, analyticsId: import.meta.env.VITE_ANALYTICS_ID, } as const; // Validate at startup if (!config.apiKey) { console.warn('API key not configured'); } // ❌ BAD: Hardcoded secrets const API_KEY = 'sk-1234567890abcdef'; ``` ### GitHub Actions Secrets ```yaml # ✅ GOOD: Use GitHub Secrets env: AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} # ❌ BAD: Inline secrets env: AWS_ACCESS_KEY_ID: AKIAIOSFODNN7EXAMPLE ``` ### .env File Management ```bash # ✅ .env.example (committed) - template without real values VITE_API_KEY=your-api-key-here VITE_ANALYTICS_ID=your-analytics-id # ✅ .env.local (gitignored) - actual values VITE_API_KEY=sk-actual-key-value ``` ### .gitignore Protection ```gitignore # ✅ Always ignore secret files .env .env.local .env.*.local *.pem *.key ``` ## Secret Detection Patterns | Pattern | Example | Detection | |---------|---------|-----------| | AWS Keys | `AKIA[0-9A-Z]{16}` | GitHub Secret Scanning | | GitHub Tokens | `ghp_[a-zA-Z0-9]{36}` | GitHub Secret Scanning | | Generic Passwords | `password\s*=\s*['"]` | CodeQL, ESLint | | Private Keys | `-----BEGIN.*PRIVATE KEY-----` | Pre-commit hooks | ## Secret Lifecycle 1. **Generation**: Use cryptographically secure random generation 2. **Storage**: GitHub Secrets, AWS Secrets Manager, or environment variables 3. **Access**: Minimal privilege, scoped to specific workflows/environments 4. **Rotation**: Regular rotation schedule (90 days maximum) 5. **Revocation**: Immediate on suspected compromise 6. **Audit**: Regular review of secret access and usage ## Testing Requirements - ✅ No secrets in committed code (pre-commit hooks) - ✅ GitHub Secret Scanning enabled - ✅ .env files in .gitignore - ✅ CI/CD uses GitHub Secrets exclusively - ✅ Build artifacts free of secrets ## Compliance - **ISO 27001:2022**: A.8.24 (Use of cryptography) - **NIST CSF 2.0**: PR.DS-1 (Data-at-rest protection) - **CIS Controls v8.1**: 3.11 (Encrypt sensitive data at rest) - **OWASP**: A02:2021 Cryptographic Failures - **Hack23 ISMS**: Cryptography Policy, Secure Development Policy --- **흑괘의 비밀 관리** - _Secrets Management of the Black Trigram_
عرض على GitHub