본문 바로가기
CSP (Cloud Service Provider)/GCP

Secret Manager

by BTC_안민규 2022. 11. 1.

Secret Manager는 보안에 중요한 사항들을 바이너리 blob나 텍스트 문자열로 저장, 관리 엑세스 할 수 있습니다.

 

런타임 시 애플리케이션에 필요한 db password, API 키 또는 TLS 인증서와 같은 구성 정보를 저장하는데 사용됩니다.

Cloud KMS와 같은 키 관리 시스템을 사용하면 암호화 키를 관리하고 해당 키를 사용하여 데이터를 암호화하거나 복호화 할 수 있습니다. 하지만 키 자체를 보거나 확장하거나 내보낼 순 없습ㄴ디ㅏ.

 

마찬가지로 키 관리 시스템을 사용하여 민감한 정보를 전송하거나 저장하기 전에 암호화할 수 있습니다. 민감한 정보를 사용하기 전에 복호화할 수 있습니다. 키 관리 시스템을 사용하여 이 방법으로 보안 비밀을 보호하는 방법은 Secret Manager를 사용하는 방법보다 더 복잡하고 덜 효율적입니다.

 

Secret Manager로 보관되는 키 값은 Airflow connection에 등록하여 사용이 가능합니다. 보안에 취약하게 하드코딩하거나 json 파일로 키 값을 노출시키는거보다 보안적으로 뛰어납니다.

해당 키는 GCS를 확인할 수 있는 SA의 Connection key의 값을 넣어 다른 Project의 GCS 도 관리 및 확인할 수 있습니다.

 

gcloud secrets create secret-id \
    --replication-policy="automatic"

Secret Manager를 만들려면 admin 권한이 필요하며 위의 명령어로 간단하게 만들 수 있습니다.

 

gcloud secrets versions access version-id --secret="secret-id"
gcloud secrets versions access version-id --secret="secret-id" --out-file="path/to/secret"
gcloud secrets versions access version-id --secret="secret-id" --format='get(payload.data)' | tr '_-' '/+' | base64 -d

위의 코드로 간단하게 secret manager의 버전을 추가하여 관리할 수 있습니다.

 

gcloud secrets versions describe version-id --secret="secret-id"

해당 명령어로 버전에 대한 세부정보를 가져올 수 있습니다.

댓글