Notice
Recent Posts
Recent Comments
Link
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
Archives
Today
Total
관리 메뉴

전공공부

Secret 본문

Study/K8S

Secret

monitor 2023. 3. 3. 06:12

Secret을 만든 후 Pod 주입을 통해서 암호화된 값을 넣을 수 있다.

kubectl create secret generic
<secret-name> --from-literal=<key>=<value>

form literal 사용법

kubectl create secret generic
app-secret --from-literal=DB_HOST=mysql

form file 사용법

kubectl create secret generic
app-secret --from-file=<path-to-file>

옵션이 너무 많을때는 파일을 통해 연결

secret.yml 파일 지정

secret-data.yml

apiVersion: v1
kind: Secret
metadata:
    name: app-secret
data:
    DB_HOST: <encording-base64>

base64로 인코딩 하는 법

echo -n 'mysql' | base64
echo -n 'root' | base64
echo -n 'passwd' | base64

k8s로 만든 secret 확인

kubectl get secret
kubectl describe secrets <secret-name>
kubectl get secret <secret-name> -o yaml # encording된 시크릿 값 확인 가능

base64 decord

echo -n 'bXlzcWw=' | base64 --decode #mysql

how to create pod with secret

pod-definition.yml

apiVersion: v1
kind: Pod
metadata:
    name: simple-webapp-color
    labels:
        name: simple-webapp-color
spec:
    containers:
      - name: simple-webapp-color
        image: simple-webapp-color
      ports:
          - containersPort: 8080
      envFrom:
          - secretRef:
            name: app-secret

secret-data.yaml

apiVersion: v1
kind: Secret
metadata:
    name: app-secret
data:
    DB_Host: bXlzcWw=

secret-data의 name과 pod의 envFrom의 이름이 같다.

Secret은 Encrypted 되어지지 않기 때문에 아무나 접근해서 decode 할 수 있다.


Secret을 비밀 객체로 만들어서 사용하는 방법

kubectl create secret generic my-secret --from-literal=key1=supersecret // 키=값

kubectl get secret my-secret -o yaml // 확인 시 디코딩한 vase64 값으로 볼 수 있다.

echo "값" | base64 --decode // 이렇게 하면 해석이 된다.

ETCD 서버에 시크릿을 위한 비밀번호를 저장하기

apt-get install etcd-client //etcd 설치하기

etcdctl //설치 확인

kubectl get pods -n kube-system // etcd 서버의 확인

ETCDCTL_API=3 etcdctl \
   --cacert=/etc/kubernetes/pki/etcd/ca.crt   \
   --cert=/etc/kubernetes/pki/etcd/server.crt \
   --key=/etc/kubernetes/pki/etcd/server.key  \
   get /registry/secrets/default/my-secret | hexdump -C

//암호화 진행후 get 명령어로 hex로 해석된 값을 볼 수 있다.

'Study > K8S' 카테고리의 다른 글

Service Account  (2) 2023.03.19
Docker Security  (0) 2023.03.19
configMaps  (0) 2023.03.03
2. Replica & ReplicaSet 제작  (0) 2023.01.29
1. K8S Pod 설치  (1) 2023.01.29