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

[K8S] Secret

by BTC_민물공원 2024. 1. 24.

베하~! BTC_녹차공원 팀의 민물공원 입니다.

이번에는 Secret 에 대해 알아보겠습니다!

 

Secret


쿠버네티스 시크릿은 애플리케이션에서 사용되는 중요한 정보나 데이터를 안전하게 저장하고 관리하는데 사용되는 쿠버네티스 리소스입니다. 이 정보는 주로 비밀번호, API 토큰, 데이터베이스 연결 정보와 같은 민감한 데이터로 이루어져 있습니다. 시크릿은 Base64로 인코딩되어 저장되지만, 보안을 위해 암호화되지는 않습니다.

쿠버네티스 시크릿은 환경 변수, 볼륨, 이미지 등 다양한 형태로 애플리케이션에 주입될 수 있습니다. 이를 통해 코드나 설정 파일에 민감한 정보를 직접 하드코딩하지 않고도, 쿠버네티스 클러스터에서 관리할 수 있어서 보안 및 유지보수 측면에서 도움을 줍니다.

실습을 통해 더 자세하게 알아보겠습니다.

 

 

Secret 실습


이번 실습도 KillerCoda 에서 따라해보아요.

https://killercoda.com/

 

Killercoda Interactive Environments

Learn DevOps Linux Kubernetes CKS CKA CKAD Git Cassandra etc | Katacoda compatible

killercoda.com

 

이번 실습은 Secret 을 생성한 다음 환경 변수를 통해 pod 에 적용해보는 실습을 진행해 보겠습니다.

 

key=username, value=admin 인 secret 을 생성해 보겠습니다.

kubectl create secret generic db-user-pass --from-literal=username=admin

 

생성이 잘 되었는지 확인해 봅니다.

kubectl describe secrets db-user-pass

 

nginx pod 를 생성 뒤 Secret 을 환경변수에 적용해 보겠습니다.

apiVersion: v1
kind: Pod
metadata:
  name: nginx-secret
  namespace: default
spec:
  containers:
  - image: nginx
    name: nginx-secret
    resources: {}
    env:
     - name: username
       valueFrom:
         secretKeyRef:
           name: db-user-pass
           key: username
  dnsPolicy: ClusterFirst
  restartPolicy: Always
status: {}

 

적용 되었는지 확인해봅니다

kubectl exec nginx-secret -it -- sh

# echo $username

 

 

이렇게 오늘은 Secret 에 대해 알아보았는데요.

다음번에는 더 흥미로운 주제로 찾아뵙겠습니다.

 

이상 BTC_녹차공원 팀이였습니다!

베빠~!

댓글