Auto-sync: update nexus workspace

This commit is contained in:
2026-04-29 15:44:38 +08:00
parent b2aadf771a
commit c961c6a394
114 changed files with 4784 additions and 1334 deletions

View File

@@ -0,0 +1,110 @@
---
title: "CI/CD-Secrets"
type: concept
tags:
- CI/CD
- Security
- DevOps
- Cloud
---
## Definition
CI/CD Secrets 是指在持续集成/持续部署CI/CD流水线中管理敏感信息密码、API Key、证书、私钥等的最佳实践。传统 CI/CD 流程中这些 secrets 通常以明文形式硬编码在配置文件、环境变量或脚本中,造成严重的安全风险。
## Security Problems with Plain-Text Secrets
1. **代码仓库泄露**Secrets 可能意外提交到 Git 等版本控制系统
2. **日志暴露**Secrets 在构建日志中可见
3. **网络传输**Secrets 在流水线各阶段间传输时可能被截获
4. **审计缺失**:无法追踪谁在何时访问了哪些凭据
5. **轮换困难**:硬编码的 Secrets 难以定期轮换
## Best Practices for CI/CD Secrets Management
### 1. Centralized Secrets Management
将所有 Secrets 集中存储在专用服务中:
- AWS Secrets Manager
- HashiCorp Vault
- Azure Key Vault
- GCP Secret Manager
### 2. Dynamic Credentials
使用动态临时凭证替代静态密钥:
```yaml
# ❌ 危险:静态密钥
environment:
DB_PASSWORD: "static_password_123"
# ✅ 推荐:动态获取
environment:
DB_PASSWORD:
from_secret: aws:database-password
```
### 3. Pipeline Integration Pattern
```
┌─────────────┐ Request ┌─────────────────┐
│ CI/CD │ ──────────────→│ Secrets │
│ Pipeline │ │ Manager │
└─────────────┘←────────────── └─────────────────┘
Dynamic Secret
```
### 4. GitOps with Secrets
使用 Sealed Secrets、Vault Agent 或 cloud-native solutions 实现 Git 安全存储:
- **Sealed Secrets**:将 secrets 加密后存储在 Git 中
- **External Secrets Operator**Kubernetes 原生 secrets 管理
- **AWS Secrets Manager + SSM**AWS 原生解决方案
## AWS Implementation Example
```python
# Lambda function for secrets retrieval in CI/CD
import boto3
import os
def get_db_credentials():
client = boto3.client('secretsmanager')
response = client.get_secret_value(
SecretId='prod/database/credentials'
)
return json.loads(response['SecretString'])
```
## Security Controls
1. **最小权限**CI/CD 服务账号仅授予必要的 secrets 读取权限
2. **网络隔离**Secrets 服务在私有网络中,不暴露给公网
3. **审计日志**:记录所有 secrets 访问操作
4. **自动轮换**Secrets 定期自动轮换,无需人工干预
5. **临时凭证**:使用 STS 临时凭证替代长期密钥
## Related Concepts
- [[SecretsManagement]]:敏感信息管理的整体框架
- [[SecretRotation]]:密钥轮换机制
- [[GitOps]]:基础设施即代码的 Git 工作流
- [[Infrastructure-as-Code]]:基础设施即代码
## Related Entities
- [[AWS]]AWS Secrets Manager 提供方
- [[HashiCorp]]HashiCorp Vault 提供方
- [[ControlTower]]AWS 多账户治理框架
## Sources
- [[ctp-topic-37-secrets-certificates-management]] — CI/CD secrets cleanup implementation phase
- [[ctp-topic-62-aws-secrets-manager]] — JDBC Wrapper + CI/CD integration details
## Aliases
- Pipeline Secrets
- Build Secrets
- Deployment Credentials
- GitOps Secrets