关于 sops-encryption
sops-encryption 是介绍如何使用 SOPS 加密配置文件中机密信息的技能,适用于 Git、GitOps 和 Kubernetes 场景。它保留文件结构,并涵盖 KMS 与 PGP 配置。
主要功能
- 01加密配置文件中的机密信息
- 02保留配置文件结构
- 03使用 KMS 或 PGP 加密
- 04配置按环境区分的密钥规则
适用场景
- 01将机密安全地存入 Git
- 02以代码形式管理 Kubernetes Secret
- 03为不同环境配置加密规则
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ bagelhole/ devops-security-agent-skills --skill sops-encryption安装后在 Claude Code 中输入/sops-encryption确认已加载。
详细介绍
SOPS 加密
加密配置文件中的机密,同时保留其结构以供查看。
何时使用此技能
在以下情况下使用此技能:
- 在 Git 中加密机密
- 使用机密实现 GitOps
- 将 Kubernetes 机密作为代码管理
- 加密配置文件
前提条件
- 已安装 SOPS
- 可访问 KMS(AWS、GCP、Azure)或拥有 PGP 密钥
安装
# macOS
brew install sops
# Linux
wget https://github.com/getsops/sops/releases/download/v3.8.0/sops-v3.8.0.linux.amd64
chmod +x sops-v3.8.0.linux.amd64
mv sops-v3.8.0.linux.amd64 /usr/local/bin/sops
基本用法
# Encrypt with AWS KMS
sops --encrypt --kms arn:aws:kms:region:account:key/key-id secrets.yaml > secrets.enc.yaml
# Decrypt
sops --decrypt secrets.enc.yaml
# Edit encrypted file
sops secrets.enc.yaml
# Encrypt in place
sops --encrypt --in-place secrets.yaml
配置
# .sops.yaml
creation_rules:
- path_regex: .*\.prod\.yaml$
kms: arn:aws:kms:us-east-1:account:key/prod-key
- path_regex: .*\.dev\.yaml$
kms: arn:aws:kms:us-east-1:account:key/dev-key
- path_regex: .*
pgp: fingerprint
Kubernetes 集成
# encrypted secret
apiVersion: v1
kind: Secret
metadata:
name: myapp-secrets
type: Opaque
stringData:
password: ENC[AES256_GCM,data:encrypted...]
sops:
kms:
- arn: arn:aws:kms:region:account:key/key-id
# With ArgoCD
# Install ksops plugin for ArgoCD to decrypt secrets
最佳实践
- 将 .sops.yaml 存储在仓库中
- 为不同环境使用不同的密钥
- 定期轮换加密密钥
- 切勿提交未加密的机密
- 使用密钥别名以便于识别
相关技能
- hashicorp-vault - 集中管理机密
- argocd-gitops - GitOps 集成
评论
支持 Markdown