Mozilla SOPS를 사용하여 파일 암호화
SOPS: 비밀 작전
sops is an editor of encrypted files that supports YAML, JSON, ENV, INI and BINARY formats and encrypts with AWS KMS, GCP KMS, Azure Key Vault, age, and PGP.
설치 중
brew install sops
PGP를 사용한 암호화
1. 키 생성
export GPG_NAME="my-key"
export GPG_COMMENT="sops secrets"
gpg --batch --full-generate-key <<EOF
%no-protection
Key-Type: 1
Key-Length: 4096
Subkey-Type: 1
Subkey-Length: 4096
Expire-Date: 0
Name-Comment: ${GPG_COMMENT}
Name-Real: ${GPG_NAME}
EOF
gpg --list-secret-keys "${GPG_NAME}"
sec rsa4096 2022-09-15 [SCEA]
0076DA32A6523CABC384933A8C755EF5C4FB4CC5
uid [ultimate] my-key (sops secrets)
ssb rsa4096 2022-09-15 [SEA]
export GPG_ID=0076DA32A6523CABC384933A8C755EF5C4FB4CC5
팀에서 SOPS를 사용하여 비밀을 로컬에서 암호화하거나 해독해야 하는 경우
public key using for encrypt
private key using for decrypt
gpg --export -a "${GPG_ID}" > public.key
gpg --export-secret-key -a "${GPG_ID}" > private.key
gpg --import public.key
gpg --import private.key
2 더미 kube 비밀을 암호화하자
secret.yaml
apiVersion: v1
kind: Secret
metadata:
name: mysecret
type: Opaque
data:
username: YWRtaW4=
password: MWYyZDFlMmU2N2Rm
암호화
sops -e secrets.yaml > secrets.enc.yaml
GPG 키가 여러 개인 경우 there are 3 ways
SOPS_PGP_FP
env 변수 사용export SOPS_PGP_FP=0076DA32A6523CABC384933A8C755EF5C4FB4CC5
creation_rules:
- pgp: '0076DA32A6523CABC384933A8C755EF5C4FB4CC5'
sops -e -p 0076DA32A6523CABC384933A8C755EF5C4FB4CC5 secrets.yaml > secrets.enc.yaml
복호화
sops -d secrets.enc.yaml > secrets.yaml
AWS KMS를 사용하여 암호화
이에 대한 전제 조건은 다음과 같습니다.
Correctly configured AWS credentials 예:
[default]
aws_access_key_id = <access-key-id>
aws_secret_access_key = <access-key>
[kmsuser]
aws_access_key_id = <kmsuser-access-key-id>
aws_secret_access_key = <kmsuer-access-key>
sops 구성 설정
There are 3 ways sops 구성을 설정합니다. 즉, sops에게 사용할 키, 사용할 프로필 및 역할을 알려줍니다.
SOPS_KMS_ARN
env 변수 사용export SOPS_KMS_ARN="arn:aws:kms:us-east-2:270179619257:key/d8bf4685-590e-49b6-8c05-abfabff7aa96"
creation_rules:
- kms: 'arn:aws:kms:us-east-2:270179619257:key/d8bf4685-590e-49b6-8c05-abfabff7aa96'
sops -e --kms "arn:aws:kms:us-east-2:270179619257:key/d8bf4685-590e-49b6-8c05-abfabff7aa96" secrets.yaml > secrets.enc.yaml
암호화
sops -e secrets.yaml > secrets.enc.yaml
복호화
sops -d secrets.enc.yaml > secrets.yaml
CI
CI 워크플로에서 sops 암호화된 비밀을 사용하는 방법에는 여러 가지가 있습니다.
가장 기본적인 방법은 sops를 설치하고 복호화한 파일을 클러스터에 적용하는 것입니다.
Github 작업
- name: Sops Binary Installer
uses: mdgreenwald/[email protected]
with:
version: '<version>' # default is latest stable
id: install
그 다음에
run: |
sops -d secrets.enc.yaml | kubectl apply -f -
그러나 일종의 매니페스트 관리 도구를 사용하고 해당 생태계 내에서 비밀이 작동하기를 원하는 것과 가장 비슷합니다. 이를 달성하기 위해 sops용 래퍼가 있습니다.
Argo CD 통합
참조
Reference
이 문제에 관하여(Mozilla SOPS를 사용하여 파일 암호화), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/kittipat1413/encrypting-your-files-using-mozilla-sops-33fd텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)