mcpField
S
sops-encryption

sops-encryption

github.com/bagelhole安全1.2k404 次安装23 周前更新
代码仓库

关于 sops-encryption

sops-encryption 是介绍如何使用 SOPS 加密配置文件中机密信息的技能,适用于 Git、GitOps 和 Kubernetes 场景。它保留文件结构,并涵盖 KMS 与 PGP 配置。

主要功能

  1. 01加密配置文件中的机密信息
  2. 02保留配置文件结构
  3. 03使用 KMS 或 PGP 加密
  4. 04配置按环境区分的密钥规则

适用场景

  1. 01将机密安全地存入 Git
  2. 02以代码形式管理 Kubernetes Secret
  3. 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 存储在仓库中
  • 为不同环境使用不同的密钥
  • 定期轮换加密密钥
  • 切勿提交未加密的机密
  • 使用密钥别名以便于识别

相关技能

评论

支持 Markdown