์ฟ ๋ฒ๋คํฐ์ค์์ ๋ฏผ๊ฐํ ๋ฐ์ดํฐ๋ ์ํฌ๋ฆฟ์ ํตํด ๊ด๋ฆฌ๋ฉ๋๋ค.
์์ฑ๋ ์ํฌ๋ฆฟ์ mount fs ๋๋ env var ์ ํตํด์ ํ๋์ ์ํฌ๋ฆฟ ๋ฐ์ดํฐ๋ฅผ ๋๊ฒจ์ค ์ ์์ฃ .
์ํฌ๋ฆฟ์ ์์ฑํ ํ,
kubectl create secret generic secret1 --from-literal user=admin
kubectl create secret generic secret2 --from-literal user=12345678
์๋์ ๊ฐ์ด yaml ์ ์์ฑํด์ ์ฌ์ฉํ ์ ์์ฃ .
apiVersion: v1
kind: Pod
metadata:
creationTimestamp: null
labels:
run: pod
name: pod
spec:
containers:
- image: nginx
name: pod
resources: {}
volumeMounts:
- name: secret1
mountPath: "/etc/secret1"
readOnly: true
env:
- name: PASSWORD
valueFrom:
secretKeyRef:
name: secret2
key: user
volumes:
- name: secret1
secret:
secretName: secret1
dnsPolicy: ClusterFirst
restartPolicy: Always
status: {}
env var ๋ฐฉ๋ฒ์ ์๋์ ๊ฐ์ด ์ ๊ทผํ ์ ์์ผ๋ฉฐ,
mount fs ๋ ์๋์ ๊ฐ์ด ์ ๊ทผํ ์ ์์ต๋๋ค.
์์ฑํ ์ํฌ๋ฆฟ์ ETCD ์ ์ ์ฅ๋๋ฉฐ, API Server ๋ฅผ ํตํด ํ๋ ๋ด ์ปจํ ์ด๋ ์ ๋ฌ๋ฉ๋๋ค.
ํ์ง๋ง ์ํฌ๋ฆฟ์ ์์ฑํ ๋ ํญ์ ์ฃผ์ํด์ผ ํ ์ ์ด ์์ต๋๋ค.
๋ฐ๋ก ์ํธํ์ฃ .
์ํฌ๋ฆฟ์ ๋ฆฌ์์ค ์ด๋ฆ ์์ฒด๊ฐ ์ํฌ๋ฆฟ์ด๊ธฐ ๋๋ฌธ์ ๋ญ๊ฐ ์ํธํ๊ฐ ๋์ ๊ด๋ฆฌ๋ ๊ฑฐ ๊ฐ์ ๋๋์ ์ค๋๋ค. ํ์ง๋ง ์ฟ ๋ฒ๋คํฐ์ค ๋ด์์ ๋ฐ๋ก ์ค์ ํ์ง ์๋ ์ด์ ์ผ์ฒด์ ์ํธํ ํ์๋ ์์ต๋๋ค. ์ธ์ฝ๋ฉ๋ง ํด์ค ๋ฟ ๋์ฝ๋๋ก ํตํด ์ธ์ ๋ ์ํฌ๋ฆฟ์ ๋ฐ์ดํฐ๋ฅผ ์์๋ผ ์ ์์ต๋๋ค.
๊ทธ๋ผ ์ฐ์ ์ด๋ป๊ฒ ์ํฌ๋ฆฟ์ ๊ฐ์ ์์๋ด๋์ง ํ๋ฒ ์์๋ณด์ฃ .
ํฌ๊ฒ 2๊ฐ์ง ๋ฐฉ๋ฒ์ด ์์ต๋๋ค. ์์ปค ๋ ธ๋์ ์ ๊ทผํด์ ์์๋ด๋ ๋ฐฉ๋ฒ๊ณผ ETCD ์ ์ ๊ทผํด์ ์์๋ด๋ ๋ฐฉ๋ฒ์ ๋๋ค.
์์ปค ๋ ธ๋์ ์ ๊ทผํด์ ์ํฌ๋ฆฟ ๋ฐ์ดํฐ ์์๋ด๊ธฐ
์์ปค ๋ ธ๋๊ฐ ๋ง์ฝ ํดํน์ ๋นํ๋ค๋ฉด ์์ปค ๋ ธ๋ ๋ด์ ์๋ ๋ชจ๋ ์ํฌ๋ฆฟ์ ์์๋ผ ์ ์์ต๋๋ค.
์๊น ์์ฑํ ํ๋์ ์ํฌ๋ฆฟ์ ํ๋ฒ ์์๋ด๋ณด์ฃ .
ํ๋๊ฐ ์คํ๋๋ ์์ปค ๋
ธ๋์ crictl ps ๋ฅผ ์คํํด container id ๋ฅผ ์์๋
๋๋ค.
๊ทธ๋ฆฌ๊ณ crictl inspect ๋ฅผ ํตํด pid ๋ฅผ ์์๋ ๋๋ค.
cd /proc ๋ฅผ ํตํด ํ๋ก์ธ์ค ๋ง์ดํธ ๋๋ ํฐ๋ฆฌ๋ก ์ด๋ํ ํ root ๋ก ์ ๊ทผํฉ๋๋ค.
ls -l ๋ฅผ ํด๋ณด๋ฉด pod exec -it -- ls -l ํ์ ๋์ ๊ฐ์ ๊ฒฐ๊ณผ๊ฐ์ ์ป์ ์ ์๋๋ฐ ๋ฐ๋ก ์ง๊ธ ์์น๊ฐ ํ๋์ ๋ง์ดํธ๋๊ธฐ ๋๋ฌธ์ด์ฃ .
๊ทธ๋ฆฌ๊ณ ์๋์ฒ๋ผ ์ํฌ๋ฆฟ ๊ฐ์ ์์๋ผ ์ ์์ต๋๋ค.
RBAC ๋ก ์ํฌ๋ฆฟ์ ๋ํ ์ ๊ทผ์ ์ ํํด๋ ๊ฒฐ๊ตญ ์์ปค ๋ ธ๋๊ฐ ํดํน๋๋ค๋ฉด ์์ฃผ ์ฝ๊ฒ ํ์ทจํ ์ ์์ต๋๋ค.
์ด๋ฐ ๊ฒฝ์ฐ๋ ์ฌ์ค ETCD ๋ฅผ ์ํธํํ๋ค๊ณ ํด๋ ๋ฐ์ดํฐ๋ฅผ ํ์ทจ ๋นํ ์ ์์ต๋๋ค. ์๋ํ๋ฉด ETCD ์ ์ฅ์์ ์์ฃผ ์ ์์ ์ผ๋ก ์ ๊ทผํ ๋ฐฉ์์ด๊ธฐ ๋๋ฌธ์ด์ฃ .
๊ทธ๋์ ์ด๋ฐ ๊ฒฝ์ฐ๋ ์์ปค ๋ ธ๋๊ฐ ํดํน ๋นํ์ง ์๋๋ก ์ ์ํด์ผํฉ๋๋ค.
ETCD ์ ์ ๊ทผํด์ ์ํฌ๋ฆฟ ๋ฐ์ดํฐ ์์๋ด๊ธฐ
์ฟ ๋ฒ๋คํฐ์ค์ ๋ชจ๋ ์ ๋ณด๋ ETCD ์ ์ ์ฅ๋ฉ๋๋ค. ์ํฌ๋ฆฟ ๋ํ ETCD ์ ์ ์ฅ๋๊ธฐ ๋๋ฌธ์ ETCD ์ ์ ๊ทผํ๋ฉด ์ํฌ๋ฆฟ ๋ฐ์ดํฐ๋ฅผ ์ฝ๊ฒ ์์๋ผ ์ ์์ต๋๋ค.
ETCD ๋ฅผ ํตํด ์ํฌ๋ฆฟ์ ์์๋ด๋ ๋ฐฉ๋ฒ์ ๋ง์คํฐ ๋ ธ๋์์ etcdctl ์ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ๊ณผ /proc/<etcd pid>/fd ์ ์ ๊ทผํ๋ ๋ฐฉ๋ฒ์ด ์์ต๋๋ค.
etcdctl ์ ํตํด ์์๋ด๊ธฐ
etcdctl ์ ๋ํด์ ์์ธํ ์ค๋ช ํ์ง ์์ต๋๋ค.
์ฐ์ apt install etcd-client ์ ํตํด etcdctl ์ ์ค์นํฉ๋๋ค. ์ดํ ์ ์์ ์ผ๋ก ์ ๊ทผ์ด ๋๋์ง ํ์ธํด๋ณด์ฃ .
ETCDCTL_API=3 etcdctl --cert /etc/kubernetes/pki/apiserver-etcd-client.crt --key /etc/kubernetes/pki/apiserver-etcd-client.key --cacert /etc/kubernetes/pki/etcd/ca.crt endpoint health
์ฟ ๋ฒ๋คํฐ์ค๋ฅผ ์ค์นํ ๋ ์์ฑํ crt, key ๋ก etcd ์ ์ ๊ทผํ ์ ์์ผ๋ฉด endpoint ๋ 127.0.0.1:2379 ๊ฐ default ๊ฐ์ ๋๋ค.
๋ฌธ์ ๊ฐ ์๋ค๋ฉด ์๋์ฒ๋ผ ์ฑ๊ณตํ๋ค๋ ์๋ต๊ฐ์ด ์ฌ ๊ฒ์ ๋๋ค.
๊ทธ๋ผ ์ด์ secret2 ๋ฅผ ETCD ์์ ๊ฐ์ ธ์ ๋ณด์ฃ .
ETCDCTL_API=3 etcdctl --cert /etc/kubernetes/pki/apiserver-etcd-client.crt --key /etc/kubernetes/pki/apiserver-etcd-client.key --cacert /etc/kubernetes/pki/etcd/ca.crt get /registry/secrets/default/secret2
ETCD ๊ฐ ์ํธํ๋์ด ์์ง ์๊ธฐ ๋๋ฌธ์ ETCD ์ ์ ๊ทผ๋ง ๊ฐ๋ฅํ๋ค๋ฉด ํ๋ฌธ์ผ๋ก ๋ฐ๋ก ๊ฐ์ ธ์ฌ ์ ์์ต๋๋ค.
/proc/<etcd pid>/fd ์ ํตํด ์์๋ด๊ธฐ
etcdctl ์ ํตํด ์์๋ผ ์ ์์ง๋ง ETCD ํ๋์ ์ ๊ทผํด์ ์์๋ด๋ ๋ฐฉ๋ฒ๋ ์์ต๋๋ค.
etcd ๋ ๋ณดํต ๋ง์คํฐ ๋ ธ๋์ ์์ผ๋ ๋ง์คํฐ ๋ ธ๋์ crictl ps ๋ฅผ ์คํํฉ๋๋ค.
crictl inspect ๋ก pid ๋ฅผ ์์๋ธ ํ,
์๋์ ๊ฐ์ ๊ฒฝ๋ก๋ก ์ด๋ํฉ๋๋ค. proc ์ fd ์ฌ์ด์ ์๋ pid ๋ ์ปดํจํฐ๋ง๋ค ๋ค๋ฅด๋ ์ฃผ์ํ์ธ์!
ls -l ์ ํด๋ณด๋ฉด ์์ฒญ๋๊ฒ ๋ง์ ๋งํฌ๋ค์ ๋ณด์ค ์ ์์ต๋๋ค. ์ด๊ฒ๋ค ์ค ์ฐ๋ฆฌ๊ฐ ์ฃผ๋ชฉํ ๊ฒ์ ๋ฐ๋ก 10 ์ ๋๋ค. /var/lib/etcd/member/snap/db ์ ์ฌ๋ณผ๋ฆญ ๋งํฌ๊ฐ ๊ฑธ๋ ค์์ฃ .
cat 10 | strings ์ ์คํํ๋ฉด ETCD ์ ์ ์ฅ๋ ๋ชจ๋ ๋ฐ์ดํฐ ์ ๋ณด๋ฅผ ์ป์ ์ ์์ต๋๋ค.
๋น์ฐํ ์ํฌ๋ฆฟ ๋ฐ์ดํฐ๋ ์ป์ ์ ์์ต๋๋ค.
์ด๋ฌํ ์ํ์ฑ ๋๋ฌธ์ ์ฟ ๋ฒ๋คํฐ์ค์์๋ ETCD ๋ฅผ ์ํธํํด์ค ์ ์๋ ๊ธฐ๋ฅ์ ์ ๊ณตํฉ๋๋ค. ๋ํ Falco ๋ฅผ ํตํด ์ถ์ ๋ ํ ์ ์์ฃ .
๊ทธ๋ผ ํํธ์์๋ Encryption Data ๋ฅผ ํตํด ์ค์ ๋ก ์ํธํ ํ๋ ๋ฐฉ๋ฒ์ ์์๋ณด๊ฒ ์ต๋๋ค.
๊ทธ๋ผ ์ค๋์ ์ฌ๊ธฐ๊น์ง!
'DevOps > Kubernetes' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Kubernetes] ๋ ๋ด ๋ ธ๋๊ฐ ๋๋ผ! - EKS Windows ํ์ฑํ (6) | 2023.10.25 |
---|---|
[Kubernetes] AWS EFS Access Points ์๋ ๊ถํฉ๋ ์๋ด! (0) | 2023.07.21 |
[Kubernetes] ํ๋๋ ๊ฒฐ๊ตญ ํ๋ฒํ ํ๋ก์ธ์ค๋ผ๊ตฌ์ง! (0) | 2023.05.09 |
[Kubernetes] ์ํฌ๋ฆฟ์ ์ฌ์ฉํ๋ ๋ค์ํ ๋ฐฉ๋ฒ - Secrets (1) | 2023.05.01 |
[Kubernetes] ํ๋๋ฅผ ๋ณด๋ค ์์ ํ๊ฒ - SecurityContext (2) | 2023.04.16 |