mcpField
S
sops-encryption

sops-encryption

github.com/bagelholeセキュリティ1.2k404 回インストール23 週間前に更新
リポジトリ

sops-encryption について

sops-encryptionは、設定ファイルの構造を保ちながら機密情報を暗号化する方法を扱うスキルです。Git、GitOps、Kubernetesでの利用に向け、KMSやPGPを使う手順を説明します。

主な機能

  1. 01設定ファイル内の機密情報を暗号化
  2. 02設定ファイルの構造を維持
  3. 03KMSまたはPGPによる暗号化
  4. 04環境ごとの鍵ルール設定

活用シーン

  1. 01Gitに機密情報を安全に保存
  2. 02Kubernetes 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 を保存する
  • 環境ごとに異なるキーを使用する
  • 暗号化キーを定期的にローテーションする
  • 暗号化されていないシークレットを決してコミットしない
  • 読みやすさのためにキーエイリアスを使用する

関連スキル

コメント