English

sops — 구조화 파일 시크릿 관리

Linux / 사용자 및 보안 관리 / sops.html

사용자 및 보안 관리원문등록 2026-10-18T22:00:00+09:00

💬 "sops 명령어"

sops는 구조화 파일 시크릿 관리 JSON·YAML·TOML의 일부 값만 암호화합니다. Git에 커밋해도 시크릿이 노출되지 않습니다.

JSON·YAML·TOML·ENV·INI 구조를 인식합니다. 값(value)만 암호화하고 키·구조는 평문으로 유지합니다.

  • 개념: JSON·YAML·TOML·ENV·INI 구조를 인식합니다.
  • 주요 기능: 값(value)만 암호화하고 키·구조는 평문으로 유지합니다.
  • 장점: age·PGP·KMS·GCP·AWS·Azure 키 백엔드를 지원합니다.
  • 활용: Git 커밋 후에도 diff가 읽기 쉽습니다.

설치 및 다운로드

sops는 패키지 매니저 또는 공식 스크립트로 설치합니다.

환경명령
Go installgo install go.mozilla.org/sops/v3/cmd/sops@latest
macOS (brew)brew install sops
공식 바이너리github.com/getsops/sops/releases
확인sops --version

설치 확인은 sops --version으로 합니다.

자주 쓰는 옵션

옵션설명
-e, --encrypt암호화 (파일→표준출력)
-d, --decrypt복호화
-i, --in-place원본 파일을 직접 수정합니다
--set <path> <value>특정 경로 값을 설정·암호화합니다
--extract <path>특정 경로 값만 추출합니다

필수 명령어 조합 3가지

  • sops -e secrets.yaml > secrets.enc.yaml — 파일 전체 암호화
  • sops -d secrets.enc.yaml — 복호화
  • sops --set '["db"]["password"] "newpass"' secrets.enc.yaml — 값 갱신

💬 "실제 서버에서 sops를 사용하는 예시를 보여줘"

실제 운영 중인 서버에서 자주 만나는 상황을 순서대로 정리했습니다.

1단계 · 키 설정

.sops.yaml에 age 공개키를 등록합니다.

echo 'creation_rules:\n  - path_regex: secrets\\.ya?ml$\n    age: age1...' > .sops.yaml

2단계 · 암호화

secrets 파일을 암호화합니다.

sops -e secrets.yaml > secrets.enc.yaml

3단계 · Git 커밋

암호화 파일을 커밋합니다.

git add .sops.yaml secrets.enc.yaml && git commit -m 'Add secrets'

실제 실행 화면

sops로 YAML 값을 암호화한 결과입니다.

sops 명령어 실행 결과

실제 운영 중인 서버

실무에서는 이렇게 씁니다

1. docker-compose 시크릿 관리

상황 — docker-compose.yml의 비밀번호만 암호화합니다.

sops -e docker-compose.yml > docker-compose.enc.yml

결과 — password 값이 ENC[AES256_GCM,...]로 바뀝니다.

포인트 — 키·구조는 평문으로 유지되어 diff가 읽기 쉽습니다.

2. Git 커밋 후 복호화

상황 — 암호화 파일을 git에 커밋하고 배포 시 복호화합니다.

git add .sops.yaml secrets.enc.yaml && git commit -m 'secrets'
sops -d secrets.enc.yaml

결과 — Git에는 ENC[...]만 남고 배포 시 실제 값으로 복호화됩니다.

포인트 — .sops.yaml에 age 공개키를 등록합니다.

실제 실행 화면

sops -d로 복호화한 결과입니다.

sops 명령어 실행 결과 2

실제 운영 중인 서버

주의할 점

  • .sops.yaml의 creation_rules와 실제 파일 경로가 일치해야 합니다. 불일치 시 암호화가 실패합니다.
  • 비밀키를 잃으면 복호화 불가합니다. age 키든 PGP 키든 반드시 백업합니다.
  • ENV 형식 파일은 sops가 구조를 인식하지 못할 수 있습니다.