IT/CKA

CKA 준비과정 - Application Lifecycle Management (4) / Secrets

Primes 2023. 6. 4. 16:03
728x90

ConfigMap 을 통해 키와 값을 쌍으로 이루어 데이터를 저장하고, 여러 파드에 한번에 적용할 수 있다는 이점이 있음을 알았다.

하지만 암호화가 필요한 비밀번호와 같은 민감한 데이터에 대해서 ConfigMap을 활용한다면 보안적으로 매우 취약해진다. 이러할 경우 사용하는 기능이 Secret 이다.

 

Secret은 암호화가 진행된다는 점 외엔 ConfigMap과 대체로 유사하다.

ConfigMap과 동일한 방식으로, Secret 리소스를 생성하고 데이터를 담아, 파드가 데이터를 참조할 수 있게끔 하는 방식으로 동작한다.

 

ConfigMap과 마찬가지로 명령 및 정의 파일을 통해 생성할 수 있다.

명령어의 경우에도 secret 명령어 외에 차이점이 없음을 알 수 있다. Secret 역시도 파일을 통해 다수의 키값을 가져올 수 있다.

 

 

다음은 파일을 통해 정의하는 방법을 알아본다.

이 때 가장 주의할 점은 암호화되어야 할 데이터는 직접 암호화하여 작성해야 한다는 점이다. 즉, 상기 이미지에서 DB_Host, DB_User 등 데이터 부분의 암호화된 데이터는 사용자가 직접 암호화 후 암호화된 값을 기입해야 한다. (Secret 에서 암호화해주지 않음)

 

암호화 및 복호화하는 방법은 아래와 같다.

echo -n 'mysql' | base64 //암호화 값은 bX1zcWw=
echo -n 'bX1zcWw=' | base64 --decode

 

ConfigMap과 마찬가지로, 2가지의 파드 주입 방법이 존재한다.

1. 단일 환경으로 파드 주입

2. volume 단위로 파드 주입

반응형