개요
2025.06.10-[age] 파일 암호화 도구에서 age에 대해서 알아보았다. 이번 글에서는 업무에 사용 중인 방식인 SOPS를 age 옵션으로 암호화하는 방법을 적어둔다.
공식 문서에서는 가능하면 PGP 대신 age를 사용해서 암호화하는 것이 좋다고 한다.
사전 준비
먼저 암호화 및 복호화 작업에 사용할 공개 키 쌍을 생성한다.
리눅스 기준으로, 생성한 키 쌍은 아래 경로에 위치해 있어야 복호화 시 참조하여 사용한다
$XDG_CONFIG_HOME/sops/age/keys.txt
# XDG_CONFIG_HOME가 설정되지 않았을 경우
$HOME/.config/sops/age/keys.txt
또는 환경변수 SOPS_AGE_KEY_FILE를 설정하는 방식으로 키 파일의 경로를 지정할 수 있다.
이 글에서는 SOPS_AGE_KEY_FILE 환경 변수를 설정해서 키 파일을 지정했다.
암호화
이제 age 옵션을 지정하여 yaml 파일을 암호화해본다.
sops --encrypt --age PUBLIC_KEY INPUT_FILE
# --age : age 옵션으로 암호화
sops --encrypt --age age1paa695qn93qfvxx3zn0us7te29h0vrlpggxpcx43vv44492umq0szm77v6 test.yaml > test.enc.yaml
예로 들어 아래와 같은 yaml 파일이 있다고 하자.
이 파일을 암호화한 결과는 아래와 같다.
sops 속성 하위의 내용을 보면 사용한 공개 키 등등의 정보를 확인할 수 있다.
복호화
위에서 암호화한 결과 파일을 다시 복호화해본다.
sops --decrypt INPUT_FILE
# 예시
sops --decrypt test.enc.yaml
환경 변수 SOPS_AGE_KEY_FILE 를 통해 이미 복호화에 사용할 개인 키를 알고 있기 때문에 별도의 옵션 없이 복호화를 수행할 수 있다.
참고 문서
https://github.com/getsops/sops?tab=readme-ov-file#encrypting-using-age
https://devops.datenkollektiv.de/using-sops-with-age-and-git-like-a-pro.html
https://technotim.live/posts/secret-encryption-sops/