CKA-11์ผ์ฐจ

YeJi Kimยท2023๋…„ 2์›” 26์ผ
0

CKA

๋ชฉ๋ก ๋ณด๊ธฐ
11/15

๐Ÿ“ CKA 11์ผ์ฐจ
๐Ÿ“ Udemy-Certified Kubernetes Administrator (CKA) with Practice Tests 129-143




129. Backup and Restore Methods

๋ฆฌ์†Œ์Šค ๊ตฌ์„ฑ์„ ๋ฐฑ์—…ํ•˜๋Š” ๋” ๋‚˜์€ ๋ฐฉ๋ฒ•์€ kube-api server๋ฅผ ์ฟผ๋ฆฌํ•˜๋Š” ๊ฒƒ์ด๋‹ค.
kubectl์„ ์ด์šฉํ•ด kube-api server์— ์ง์ ‘ ์ ‘๊ทผํ•จ์œผ๋กœ์จ ํด๋Ÿฌ์Šคํ„ฐ์— ์ƒ์„ฑ๋œ ๋ชจ๋“  ๊ฐœ์ฒด์— ๋Œ€ํ•œ ๋ฆฌ์†Œ์Šค ๊ตฌ์„ฑ์„ ๋ณต์‚ฌํ•ด ์ €์žฅํ•  ์ˆ˜ ์žˆ๋‹ค.

kubectl get all --all-namespaces -o yaml > all-deploy-services.yaml ๋ช…๋ น์–ด๋ฅผ ์ด์šฉํ•ด ๋ชจ๋“  ๋„ค์ž„์ŠคํŽ˜์ด์Šค์— ์žˆ๋Š” ํŒŒ๋“œ, ๋””ํ”Œ๋กœ์ด๋จผํŠธ, ์„œ๋น„์Šค๋ฅผ YAML ํ˜•์‹์œผ๋กœ ํŒŒ์ผ์— ์ถ”์ถœํ•˜๊ณ  ์ €์žฅํ•  ์ˆ˜ ์žˆ๋‹ค.

์ด๋Š” ์ผ๋ถ€ ๋ฆฌ์†Œ์Šค ๊ทธ๋ฃน์„ ์œ„ํ•œ ๊ฒƒ์ด๋‹ค. ๊ทธ ์™ธ์˜ ๋‹ค๋ฅธ ๋ฆฌ์†Œ์Šค๋“ค์„ ๊ณ ๋ คํ•˜๊ธฐ ์œ„ํ•ด HeptIO์—์„œ VELERO๋ผ๊ณ  ๋ถ€๋ฅด๋Š” ๋„๊ตฌ๋ฅผ ์ œ๊ณตํ•œ๋‹ค.


ETCD๋Š” ์šฐ๋ฆฌ ํด๋Ÿฌ์Šคํ„ฐ ์ƒํƒœ์— ๊ด€ํ•œ ์ •๋ณด๋ฅผ ์ €์žฅํ•œ๋‹ค.
ํด๋Ÿฌ์Šคํ„ฐ ์ž์ฒด์— ๊ด€ํ•œ ์ •๋ณด์™€ ๋…ธ๋“œ ๋ฐ ํด๋Ÿฌ์Šคํ„ฐ ๋‚ด๋ถ€์—์„œ ์ƒ์„ฑ๋œ ๋ชจ๋“  ๋ฆฌ์†Œ์Šค๊ฐ€ ์—ฌ๊ธฐ ์ €์žฅ๋œ๋‹ค.
๊ทธ๋ž˜์„œ ๋ฆฌ์†Œ์Šค๋ฅผ ๋ฐฑ์—…ํ•˜๋Š” ๋Œ€์‹  ETCD ์„œ๋ฒ„ ์ž์ฒด๋ฅผ ๋ฐฑ์—…ํ•˜๋Š” ๊ฒƒ์„ ์„ ํƒํ•  ์ˆ˜ ์žˆ๋‹ค.

ETCD ํด๋Ÿฌ์Šคํ„ฐ๋Š” ๋งˆ์Šคํ„ฐ ๋…ธ๋“œ์— ํ˜ธ์ŠคํŠธ๋˜์–ด ์žˆ๋‹ค.
ETCD ํด๋Ÿฌ์Šคํ„ฐ๋ฅผ ๊ตฌ์„ฑํ•  ๋•Œ ๋ชจ๋“  ๋ฐ์ดํ„ฐ๊ฐ€ ์ €์žฅ๋˜๋Š” ์žฅ์†Œ(/var/lib/etcd)๋ฅผ ๋ช…์‹œํ•œ๋‹ค.

ETCD๋Š” ๋นŒํŠธ์ธ ์Šค๋ƒ…์ƒท ์†”๋ฃจ์…˜๋„ ์ง€์›ํ•œ๋‹ค.
etcdctl snapshot save ๋ช…๋ น์–ด๋ฅผ ์ด์šฉํ•ด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์Šค๋ƒ…์ƒท์„ ์ฐ์„ ์ˆ˜ ์žˆ๋‹ค.
์Šค๋ƒ…์ƒท ํŒŒ์ผ์€ ํ˜„์žฌ ๋””๋ ‰ํ„ฐ๋ฆฌ์˜ ์ด๋ฆ„์œผ๋กœ ์ƒ์„ฑ๋œ๋‹ค. ๋‹ค๋ฅธ ๊ฒฝ๋กœ์— ์ƒ์„ฑํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด ์ „์ฒด ๊ฒฝ๋กœ๋ฅผ ๋ช…์‹œํ•˜๋ฉด ๋œ๋‹ค.
etcdctl snapshot status ๋ช…๋ น์–ด๋ฅผ ์ด์šฉํ•ด ๋ฐฑ์—…์˜ ์ƒํƒœ๋ฅผ ๋ณผ ์ˆ˜ ์žˆ๋‹ค.

๋‚˜์ค‘์— ์ด ๋ฐฑ์—…์—์„œ ํด๋Ÿฌ์Šคํ„ฐ๋ฅผ ๋ณต์›ํ•˜๋ ค๋ฉด ๋จผ์ € kube-api server ์„œ๋น„์Šค๋ฅผ ์ค‘๋‹จํ•ด์•ผ ํ•œ๋‹ค.
๋ณต์›ํ•˜๊ธฐ ์œ„ํ•ด ETCD ํด๋Ÿฌ์Šคํ„ฐ๋ฅผ ๋‹ค์‹œ ์‹œ์ž‘ํ•ด์•ผ ํ•˜๋Š”๋ฐ kube-api server๊ฐ€ ETCD์— ์˜์กดํ•˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

๊ทธ๋Ÿฐ ๋‹ค์Œ etcdctl snapshot restore ๋ช…๋ น์–ด์— ๋ฐฑ์—… ํŒŒ์ผ์˜ ๊ฒฝ๋กœ๋ฅผ ์ง€์ •ํ•˜์—ฌ ์‹คํ–‰ํ•˜๋ฉด ๋œ๋‹ค.
ETCD๊ฐ€ ๋ฐฑ์—…์—์„œ ๋ณต๊ตฌํ•  ๋•Œ ์ƒˆ ํด๋Ÿฌ์Šคํ„ฐ ๊ตฌ์„ฑ์„ ์ดˆ๊ธฐํ™”ํ•˜๊ณ  ETCD์˜ ๋ฉค๋ฒ„๋ฅผ ์ƒˆ ํด๋Ÿฌ์Šคํ„ฐ์˜ ์ƒˆ ๋ฉค๋ฒ„๋กœ ๊ตฌ์„ฑํ•œ๋‹ค. ์ด๋Š” ์ƒˆ ๋ฉค๋ฒ„๊ฐ€ ์‹ค์ˆ˜๋กœ ๊ธฐ์กด์˜ ํด๋Ÿฌ์Šคํ„ฐ์— ํ•ฉ๋ฅ˜ํ•˜๋Š” ๊ฒƒ์„ ๋ง‰๊ธฐ ์œ„ํ•ด์„œ์ด๋‹ค.
์ด ๋ช…๋ น์„ ์‹คํ–‰ํ•˜๋ฉด ์ƒˆ๋กœ์šด ๋ฐ์ดํ„ฐ ๋””๋ ‰ํ„ฐ๋ฆฌ๊ฐ€ ์ƒ์„ฑ๋œ๋‹ค.

๊ทธ๋Ÿฐ ๋‹ค์Œ ETCD ๊ตฌ์„ฑ ํŒŒ์ผ์„ ๊ตฌ์„ฑํ•ด ์ƒˆ ๋ฐ์ดํ„ฐ ๋””๋ ‰ํ„ฐ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.
๊ทธ๋Ÿฐ ๋‹ค์Œ ๋ฐ๋ชฌ ์„œ๋น„์Šค๋ฅผ ๋‹ค์‹œ ๋กœ๋“œํ•˜๊ณ  ์žฌ์‹œ์ž‘ํ•ด์•ผ ํ•œ๋‹ค.
๋งˆ์ง€๋ง‰์œผ๋กœ kube-api server ์„œ๋น„์Šค๋ฅผ ์‹œ์ž‘ํ•ด์•ผ ํ•œ๋‹ค.
์ด์ œ ํด๋Ÿฌ์Šคํ„ฐ๊ฐ€ ์›๋ž˜ ์ƒํƒœ๋กœ ๋Œ์•„์™”์„ ๊ฒƒ์ด๋‹ค.



์Šค๋ƒ…์ƒท์„ ์ €์žฅํ•  ๋•Œ ๋ช…๋ น์–ด์™€ ํ•จ๊ป˜ '--endpoint','--cacert', '--cert', '--key' ์˜ต์…˜์„ ์ง€์ •ํ•˜๋Š” ๊ฒƒ์„ ๊ธฐ์–ตํ•ด๋ผ


๊ฒฐ๋ก ์ ์œผ๋กœ ๋ฐฑ์—…์„ ์œ„ํ•ด ๋‘ ๊ฐ€์ง€ ์˜ต์…˜์ด ์กด์žฌํ•œ๋‹ค.
๋จผ์ €, ETCD๋ฅผ ์ด์šฉํ•œ ๋ฐฑ์—…๊ณผ kube-api server ์ฟผ๋ฆฌ๋ฅผ ํ†ตํ•œ ๋ฐฑ์—…์ด๋‹ค.
๋‘˜ ๋‹ค ์žฅ๋‹จ์ ์ด ์žˆ๋‹ค.
๊ด€๋ฆฌ๋˜๋Š” ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค ํ™˜๊ฒฝ์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ ๋•Œ๋กœ๋Š” ETCD ํด๋Ÿฌ์Šคํ„ฐ์— ์•ก์„ธ์Šค์กฐ์ฐจ ์•ˆ๋  ์ˆ˜๋„ ์žˆ๋‹ค. ๊ทธ ๊ฒฝ์šฐ์—” kube-api server๋ฅผ ์ฟผ๋ฆฌํ•˜๋Š” ๋ฐฑ์—…์ด ์•„๋งˆ ๋” ๋‚˜์€ ๋ฐฉ๋ฒ•์ผ ๊ฒƒ์ด๋‹ค.




130. Working with ETCDCTL

etcdctl์€ etcd์˜ ํด๋ผ์ด์–ธํŠธ๋ฅผ ์œ„ํ•œ ๋ช…๋ น์–ด์ด๋‹ค.
์šฐ๋ฆฌ์˜ ์‹ค์Šต ํ™˜๊ฒฝ์—์„œ๋Š” ETCD ํ‚ค-๊ฐ’ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๊ฐ€ static pod ํ˜•ํƒœ๋กœ ๋งˆ์Šคํ„ฐ ๋…ธ๋“œ์— ๋ฐฐํฌ๋˜์–ด ์žˆ๋‹ค.
etcdctl์„ ์‚ฌ์šฉํ•ด์„œ ๋ฐฑ์—…๊ณผ ๋ณต๊ตฌ๋ฅผ ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ETCDCTL_API์˜ ๋ฒ„์ „์„ 3์œผ๋กœ ์„ธํŒ…ํ•ด์•ผ ํ•œ๋‹ค.
ETCDCTL_API๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์ „์— export ETCDCTL_API=3์„ ๋จผ์ € ์‹คํ–‰ํ•ด์•ผ ํ•œ๋‹ค.
etcdctl ๋ช…๋ น์–ด๋„ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ '-h', '--help' ์˜ต์…˜์„ ์ œ๊ณตํ•œ๋‹ค.




132. Solution - Backup and Restore

export ETCDCTL_API=3๋ฅผ ๋จผ์ € ์‹คํ–‰ํ•ด์•ผ etcd ๋ฐฑ์—… ๋ช…๋ น์–ด ๋“ฑ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.


ETCD ๋ฒ„์ „์„ ์•Œ๊ธฐ ์œ„ํ•ด์„œ๋Š” ETCD ํŒŒ๋“œ์˜ ์ด๋ฏธ์ง€ ๋ฒ„์ „์„ ํ™•์ธํ•˜๋ฉด ๋œ๋‹ค.


/etc/kubernetes/manifests ํด๋”์—๋Š” static pod๋กœ ๋ฐฐํฌ๋˜๋Š” ํด๋Ÿฌ์Šคํ„ฐ ๊ตฌ์„ฑ ์š”์†Œ๋“ค์˜ ์ •์˜ ํŒŒ์ผ๋“ค์ด ์กด์žฌํ•œ๋‹ค.


etcdctl snapshot save ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ ๋ฐ˜๋“œ์‹œ '--endpoint','--cacert', '--cert', '--key' ์˜ต์…˜์„ ์ง€์ •ํ•ด์•ผ ํ•œ๋‹ค.
์˜ต์…˜๋“ค์— ๋Œ€ํ•œ ์ •๋ณด๋Š” kubectl describe ๋ช…๋ น์„ ํ†ตํ•ด etcd ํŒŒ๋“œ์—์„œ ์–ป์–ด์˜ฌ ์ˆ˜ ์žˆ๋‹ค.


ํ‹€๋ฆฐ ๋ฌธ์ œ

๋ฐ์ดํ„ฐ๊ฐ€ ๋ณต๊ตฌ๋  ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ '--data-dir' ์˜ต์…˜์œผ๋กœ ์ง€์ •ํ•ด์•ผ ํ•œ๋‹ค.
ls ๋ช…๋ น์–ด๋ฅผ ํ†ตํ•ด ๋ณต๊ตฌ๋œ ๋ฐ์ดํ„ฐ๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.
์ด์ œ etcd ์ •์˜ ํŒŒ์ผ์—์„œ ๋ณผ๋ฅจ ๊ฒฝ๋กœ๋ฅผ ๋ฐ์ดํ„ฐ๊ฐ€ ๋ณต๊ตฌ๋œ ๋””๋ ‰ํ† ๋ฆฌ๋กœ ๋ณ€๊ฒฝํ•˜๊ณ  ํ˜ธ์ŠคํŠธ ๊ฒฝ๋กœ์™€ ๋ฐฑ์—… ๊ฒฝ๋กœ๋ฅผ ์ถ”๊ฐ€ํ•˜๋Š” ์ž‘์—…์ด ํ•„์š”ํ•˜๋‹ค.

etcd ์ •์˜ ํŒŒ์ผ์—์„œ ํ‘œ์‹œ๋œ ๋‘ ๋ถ€๋ถ„์€ ๋™์ผํ•œ ์œ„์น˜(๋ฐ์ดํ„ฐ๊ฐ€ ๋ณต๊ตฌ๋œ ๋””๋ ‰ํ† ๋ฆฌ)๋ฅผ ๊ฐ€๋ฆฌ์ผœ์•ผ ํ•œ๋‹ค. ์ด ๋ถ€๋ถ„๋“ค์€ etcd๊ฐ€ ์žฌ์ƒ์„ฑ๋  ๋•Œ ๋กœ์ปฌ ํ˜ธ์ŠคํŠธ์— ์žˆ๋Š” ๋ฐ์ดํ„ฐ๋กœ ๊ฐ„์ฃผ๋˜๋Š” ๋ฐ์ดํ„ฐ์˜ ์œ„์น˜๋ฅผ ๊ฐ€๋ฆฌํ‚จ๋‹ค.

etcd ์ •์˜ ํŒŒ์ผ์˜ ๋‚ด์šฉ์„ ๋ณ€๊ฒฝํ•ด์œผ๋ฉด etcd ์„œ๋ฒ„๊ฐ€ ์ž ์‹œ ๋‹ค์šด๋˜๊ธฐ ๋•Œ๋ฌธ์— ์•ก์„ธ์Šค๊ฐ€ ์ž ์‹œ ์ค‘๋‹จ๋  ๊ฒƒ์ด๋‹ค.
์ƒˆ ์ •๋ณด๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์ƒˆ ํŒŒ๋“œ๋ฅผ ์ƒ์„ฑํ•œ๋‹ค.

๋งŒ์•ฝ ์ž๋™์œผ๋กœ etcd ํŒŒ๋“œ๊ฐ€ ์žฌ์‹คํ–‰๋˜์ง€ ์•Š์œผ๋ฉด etcd ํŒŒ๋“œ๋ฅผ ์‚ญ์ œํ•ด์ค˜์•ผ ํ•œ๋‹ค.
etcd ํŒŒ๋“œ๊ฐ€ ์žฌ์‹คํ–‰๋˜๊ณ  ๋งค๋‹ˆ์ €์™€ ์Šค์ผ€์ค„๋Ÿฌ๊ฐ€ ์žฌ๊ฐ€๋™๋˜๋ฉด์„œ ํŒŒ๋“œ, ์„œ๋น„์Šค, ๋””ํ”Œ๋กœ์ด๋จผํŠธ๊ฐ€ ์žฌ๊ฐ€๋™๋˜๋Š” ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.




133. Practice Tests Backup and Restore Methods 2

ํ˜„์žฌ ๋…ธ๋“œ์— ์–ผ๋งˆ๋‚˜ ๋งŽ์€ ํด๋Ÿฌ์Šคํ„ฐ๋“ค์ด ์กด์žฌํ•˜๋Š” ์ง€ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด kubectl config view ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋œ๋‹ค.


cluster1์œผ๋กœ ๋ณ€๊ฒฝํ•˜๊ธฐ ์œ„ํ•ด์„œ kubectl config use-context cluster1 ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋œ๋‹ค.


etcd๋ฅผ ์ฐพ๋Š” ๋ฐฉ๋ฒ•
1. kubectl get pods -A | grep etcd ๋ช…๋ น์–ด๋ฅผ ํ†ตํ•ด etcd ํŒŒ๋“œ๋ฅผ ์ฐพ๋Š”๋‹ค.
2. '/etc/kubernetes/manifest' ํด๋”๋ฅผ ํ™•์ธํ•˜์—ฌ static pod๋กœ ์ •์˜๋˜์–ด ์žˆ๋Š”์ง€ ์ฐพ๋Š”๋‹ค.
3. ps -ef | grep etcd ๋ช…๋ น์–ด๋ฅผ ํ†ตํ•ด etcd ํ”„๋กœ์„ธ์Šค๋ฅผ ์ฐพ๋Š”๋‹ค.




138. Kubernetes Security Primitives

์ฟ ๋ฒ„๋„คํ‹ฐ์Šค์˜ ์›์‹œ์ ์ธ ๋ณด์•ˆ์— ๋Œ€ํ•ด ์‚ดํŽด๋ณด์ž.

ํด๋Ÿฌ์Šคํ„ฐ ์ž์ฒด๋ฅผ ํ˜•์„ฑํ•˜๋Š” ํ˜ธ์ŠคํŠธ๋ถ€ํ„ฐ ์‹œ์ž‘ํ•œ๋‹ค.
์ด๋Ÿฐ ํ˜ธ์ŠคํŠธ์— ๋Œ€ํ•œ ๋ชจ๋“  ์ ‘๊ทผ์€ ๋ณด์•ˆ๋˜์–ด์•ผ ํ•œ๋‹ค.
๋น„๋ฐ€๋ฒˆํ˜ธ ๊ธฐ๋ฐ˜์˜ ์ธ์ฆ์€ ๋ถˆ๊ฐ€๋Šฅํ•ด์•ผ ํ•˜๊ณ  SSH ํ‚ค ๊ธฐ๋ฐ˜์˜ ์ธ์ฆ๋งŒ ๊ฐ€๋Šฅํ•ด์•ผ ํ•œ๋‹ค.


์ฟ ๋ฒ„๋„คํ‹ฐ์Šค ๋ชจ๋“  ์ž‘์ „์˜ ์ค‘์‹ฌ์—๋Š” kube-api server๊ฐ€ ์žˆ๋‹ค.
kubectl ๋ช…๋ น์–ด๋‚˜ API์— ์ง์ ‘ ์ ‘๊ทผํ•จ์œผ๋กœ์จ kube-api server์™€ ์ƒํ˜ธ์ž‘์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.
๊ทธ๊ฒƒ์„ ํ†ตํ•ด ํด๋Ÿฌ์Šคํ„ฐ์—์„œ ๊ฑฐ์˜ ๋ชจ๋“  ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋‹ค. ์ด๊ฒƒ์ด 1์ฐจ ๋ฐฉ์–ด์„ ์ด๋‹ค.

kube-api server ์ž์ฒด์— ๋Œ€ํ•œ ์ ‘๊ทผ์„ ์ œ์–ดํ•˜๋Š” ๊ฒƒ์ด๋‹ค.
๋‘ ๊ฐ€์ง€ ์œ ํ˜•์— ๋Œ€ํ•ด ๊ฒฐ์ •์„ ๋‚ด๋ ค์•ผ ํ•œ๋‹ค.

  • ๋ˆ„๊ฐ€ ํด๋Ÿฌ์Šคํ„ฐ์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ์„๊นŒ?
  • ๊ทธ๋“ค์ด ๋ฌด์—‡์„ ํ•  ์ˆ˜ ์žˆ์„๊นŒ?

๋ˆ„๊ฐ€ kube-api server์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋Š”์ง€๋Š” ์ธ์ฆ(authentication) ๋ฉ”์ปค๋‹ˆ์ฆ˜์— ์˜ํ•ด ์ •์˜๋œ๋‹ค. kube-api server์— ์ธ์ฆํ•  ์ˆ˜ ์žˆ๋Š” ๋‹ค์–‘ํ•œ ๋ฐฉ๋ฒ•์ด ์žˆ๋‹ค.

๊ทธ๋“ค์ด ๋ฌด์—‡์„ ํ•  ์ˆ˜ ์žˆ๋Š”์ง€๋Š” ๊ถŒํ•œ ๋ถ€์—ฌ(authorization) ๋ฉ”์ปค๋‹ˆ์ฆ˜์— ์˜ํ•ด ์ •์˜๋œ๋‹ค.


ํด๋Ÿฌ์Šคํ„ฐ์˜ ๊ตฌ์„ฑ ์š”์†Œ ๊ฐ„์˜ ๋ชจ๋“  ํ†ต์‹ ์€ kubelet๊ณผ kube-proxy์™€ ๊ฐ™์ด ์ž‘์—…์ž ๋…ธ๋“œ์—์„œ ์‹คํ–‰๋˜๋Š” ๊ฑด TLS ์•”ํ˜ธํ™”๋กœ ๋ณด์•ˆ๋œ๋‹ค.




139. Authentication

์ฟ ๋ฒ„๋„คํ‹ฐ์Šค ํด๋Ÿฌ์Šคํ„ฐ๋Š” ๋‹ค์ค‘ ๋…ธ๋“œ, ๋‹ค์–‘ํ•œ ๊ตฌ์„ฑ์š”์†Œ๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ๋‹ค.

  • ๊ด€๋ฆฌ์ž -> ๊ด€๋ฆฌ ์—…๋ฌด๋ฅผ ์ˆ˜ํ–‰ํ•˜๊ธฐ ์œ„ํ•ด ํด๋Ÿฌ์Šคํ„ฐ์— ์ ‘๊ทผํ•œ๋‹ค.
  • ๊ฐœ๋ฐœ์ž -> ์•ฑ์„ ํ…Œ์ŠคํŠธ/๋ฐฐํฌํ•˜๊ธฐ ์œ„ํ•ด ํด๋Ÿฌ์Šคํ„ฐ์— ์ ‘๊ทผํ•œ๋‹ค.
  • ์ตœ์ข… ์‚ฌ์šฉ์ž -> ํด๋Ÿฌ์Šคํ„ฐ์— ๋ฐฐํฌ๋œ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์— ์ ‘๊ทผํ•œ๋‹ค.
  • ํƒ€์‚ฌ ํ”Œ๊ทธ๋žจ -> ํ†ตํ•ฉ ์šฉ๋„๋ฅผ ์œ„ํ•ด ํด๋Ÿฌ์Šคํ„ฐ์— ์ ‘๊ทผํ•œ๋‹ค.

์ตœ์ข… ์‚ฌ์šฉ์ž์˜ ๋ณด์•ˆ์€ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ ์ž์ฒด์— ์˜ํ•ด ๋‚ด๋ถ€์ ์œผ๋กœ ๊ด€๋ฆฌ๋œ๋‹ค. ๊ทธ๋Ÿฌ๋‹ˆ ์ด ๋…ผ์˜์—์„œ ์ œ์™ธํ•œ๋‹ค.

์ฟ ๋ฒ„๋„คํ‹ฐ์Šค๋Š” ์‚ฌ์šฉ์ž ๊ณ„์ •์„ ์ง์ ‘ ๊ด€๋ฆฌํ•˜์ง€ ์•Š๋Š”๋‹ค. ๊ทธ๋ž˜์„œ ์‚ฌ์šฉ์ž ์„ธ๋ถ€ ์ •๋ณด๊ฐ€ ๋‹ด๊ธด ํŒŒ์ผ์ด๋‚˜ ์ธ์ฆ์„œ ๋˜๋Š” ํƒ€์‚ฌ ID ์„œ๋น„์Šค์™€ ๊ฐ™์€ ์™ธ๋ถ€ ์†Œ์Šค์— ์˜์กดํ•œ๋‹ค.
๊ทธ๋ž˜์„œ ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค ํด๋Ÿฌ์Šคํ„ฐ์—์„  ์‚ฌ์šฉ์ž๋ฅผ ์ƒ์„ฑํ•  ์ˆ˜ ์—†๊ณ  ์‚ฌ์šฉ์ž ๋ฆฌ์ŠคํŠธ๋„ ๋ณผ ์ˆ˜ ์—†๋‹ค.

ํ•˜์ง€๋งŒ ์„œ๋น„์Šค ๊ณ„์ •์˜ ๊ฒฝ์šฐ ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค๊ฐ€ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค.
์ฟ ๋ฒ„๋„คํ‹ฐ์Šค API๋ฅผ ์ด์šฉํ•ด ์„œ๋น„์Šค ๊ณ„์ •์„ ์ƒ์„ฑํ•˜๊ณ  ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ ์„œ๋น„์Šค ๊ณ„์ •์— ๋Œ€ํ•œ ๋…์ ์ ์ธ ์„น์…˜๋„ ์žˆ๋‹ค.


๋ชจ๋“  ์‚ฌ์šฉ์ž์˜ ์ ‘๊ทผ์€ kube-api server์— ์˜ํ•ด ๊ด€๋ฆฌ๋œ๋‹ค.
kubectl ํˆด์„ ํ†ตํ•ด ํด๋Ÿฌ์Šคํ„ฐ์— ์ ‘๊ทผํ•˜๋“  API๋ฅผ ์ง์ ‘ ์‚ฌ์šฉํ•˜๋“  ์ƒ๊ด€์—†๋‹ค.
๋ชจ๋“  ์š”์ฒญ์€ kube-api server๋กœ ๊ฐ„๋‹ค. kube-api server๋Š” ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์ „์— ๋จผ์ € ์ธ์ฆ์„ ํ•œ๋‹ค.

๊ณ ์ • ์•”ํ˜ธ ํŒŒ์ผ, ๊ณ ์ • ํ† ํฐ ํŒŒ์ผ, ์ธ์ฆ์„œ, ํƒ€์‚ฌ ์ธ์ฆ ํ”„๋กœํ† ์ฝœ ๋“ฑ ๋‹ค์–‘ํ•œ ์ธ์ฆ ๋ฉ”์ปค๋‹ˆ์ฆ˜์ด ์žˆ๋‹ค.


๊ณ ์ • ์•”ํ˜ธ ํŒŒ์ผ์˜ ๊ฒฝ์šฐ, csv ํŒŒ์ผ์— ์‚ฌ์šฉ์ž ๋ชฉ๋ก๊ณผ ์•”ํ˜ธ๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ด๊ฒƒ์„ ์‚ฌ์šฉ์ž ์ •๋ณด์˜ ์†Œ์Šค๋กœ ์‚ฌ์šฉํ•œ๋‹ค.
ํŒŒ์ผ ์ด๋ฆ„์„ kube-api server์˜ ์˜ต์…˜์œผ๋กœ ์ง€์ •ํ•œ ๋‹ค์Œ kube-api server๋ฅผ ์žฌ์‹œ์ž‘ํ•ด์•ผ ํ•œ๋‹ค.

๋งŒ์•ฝ ํด๋Ÿฌ์Šคํ„ฐ๋ฅผ kubeadm ๋„๊ตฌ๋ฅผ ์‚ฌ์šฉํ•ด ์„ค์ •ํ–ˆ๋‹ค๋ฉด kube-api server ํŒŒ๋“œ ์ •์˜ ํŒŒ์ผ์„ ์ˆ˜์ •ํ•ด์•ผ ํ•œ๋‹ค.

๋˜๋Š” ์‚ฌ์šฉ์ž ๋ฐ ์•”ํ˜ธ๋ฅผ '-u' ์˜ต์…˜์„ ํ†ตํ•ด ์ง€์ •ํ•  ์ˆ˜ ์žˆ๋‹ค.


์ •์  ํ† ํฐ ํŒŒ์ผ์˜ ๊ฒฝ์šฐ, ์˜ต์…˜๋งŒ ์•”ํ˜ธ ํŒŒ์ผ๊ณผ ๋‹ค๋ฅด๊ฒŒ ์„ค์ •ํ•ด์ฃผ๋ฉด ๋œ๋‹ค.


๊ณ ์ • ํŒŒ์ผ์— ์‚ฌ์šฉ์ž ์ด๋ฆ„, ์•”ํ˜ธ, ํ† ํฐ์„ ์ €์žฅํ•˜๋Š” ์ด ์ธ์ฆ ๋ฉ”์ปค๋‹ˆ์ฆ˜์€ ๋ถˆ์•ˆ์ •ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๊ถŒ์žฅํ•˜์ง€ ์•Š๋Š”๋‹ค.




143. TLS Basics

์ธ์ฆ์„œ๋Š” ๊ฑฐ๋ž˜ ๋„์ค‘ ์ƒํ˜ธ ์‹ ๋ขฐ๋ฅผ ๋ณด์žฅํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋œ๋‹ค.
๊ฐ€๋ น, ์‚ฌ์šฉ์ž๊ฐ€ ์›น ์„œ๋ฒ„์— ์ ‘๊ทผํ•˜๋ ค๊ณ  ํ•  ๋•Œ TLS ์ธ์ฆ์„œ๋Š” ์‚ฌ์šฉ์ž์™€ ์„œ๋ฒ„ ์‚ฌ์ด์˜ ํ†ต์‹ ์ด ์•”ํ˜ธํ™”๋˜๋„๋ก ํ•œ๋‹ค.


  • ๋Œ€์นญํ‚ค ์•”ํ˜ธํ™”(Symmetric Encryption)
    • ๋ฐ์ดํ„ฐ๋ฅผ ์•”ํ˜ธํ™”ํ•˜๊ณ  ํ•ด๋…ํ•˜๋Š” ๋ฐ ๊ฐ™์€ ํ‚ค๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.
    • ํ‚ค๋ฅผ ์ˆ˜์‹ ๊ธฐ์™€ ๊ตํ™˜ํ•ด์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ํ•ด์ปค๊ฐ€ ํ‚ค์— ์ ‘๊ทผํ•ด ๋ฐ์ดํ„ฐ๋ฅผ ํ•ด๋…ํ•  ์œ„ํ—˜์ด ์žˆ๋‹ค.
  • ๋น„๋Œ€์นญํ‚ค ์•”ํ˜ธํ™”(Asymmetric Encryption)
    • ํ•œ ์Œ์˜ ํ‚ค์™€ ๊ฐœ์ธํ‚ค, ๊ณต์šฉํ‚ค๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.
    • ๊ฐœ์ธํ‚ค๋Š” ๋น„๊ณต๊ฐœ๋˜์–ด์žˆ๊ณ  ๊ฐœ์ธํ‚ค๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ํ•ด๋…ํ•  ์ˆ˜ ์žˆ๋‹ค.
    • ๊ณต์šฉํ‚ค๋Š” ๊ณต๊ฐœ๋˜์–ด์žˆ๊ณ  ๋‹ค๋ฅธ ์‚ฌ๋žŒ๊ณผ ๊ณต์œ ํ•  ์ˆ˜ ์žˆ๋‹ค. ๊ณต์šฉํ‚ค๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์•”ํ˜ธํ™”ํ•  ์ˆ˜ ์žˆ๋‹ค.

์•ž์„œ, ๋Œ€์นญํ‚ค์˜ ๋ฌธ์ œ์ ์€ ๋ฐ์ดํ„ฐ๋ฅผ ์•”ํ˜ธํ™”ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋œ ํ‚ค๊ฐ€ ์•”ํ˜ธํ™”๋œ ๋ฐ์ดํ„ฐ ๋„คํŠธ์›Œํฌ๋ฅผ ํ†ตํ•ด ์„œ๋ฒ„๋กœ ์ „์†ก๋˜๊ธฐ ๋•Œ๋ฌธ์— ํ•ด์ปค๊ฐ€ ํ‚ค๋ฅผ ์ž…์ˆ˜ํ•ด ๋ฐ์ดํ„ฐ๋ฅผ ํ•ด๋…ํ•  ์œ„ํ—˜์ด ์žˆ๋‹ค๋Š” ์ ์ด๋‹ค.

๊ทธ๋ž˜์„œ ๋Œ€์นญํ‚ค๋ฅผ ์˜ฎ๊ธฐ๊ธฐ ์œ„ํ•ด ๋น„๋Œ€์นญํ‚ค ์•”ํ˜ธํ™”๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค. ์„œ๋ฒ„์— ๊ณต์šฉ๊ณผ ๊ฐœ์ธ ํ‚ค ์Œ์„ ์ƒ์„ฑํ•˜๋Š” ๊ฒƒ์ด๋‹ค.

  1. openssl ๋ช…๋ น์–ด๋ฅผ ์ด์šฉํ•ด ๊ฐœ์ธํ‚ค์™€ ๊ณต์šฉํ‚ค ์Œ์„ ์ƒ์„ฑํ•œ๋‹ค.
  2. ์‚ฌ์šฉ์ž๊ฐ€ https๋ฅผ ์ด์šฉํ•ด ์›น์„œ๋ฒ„์— ์ฒ˜์Œ ์ ‘๊ทผํ•˜๋ฉด ์„œ๋ฒ„์—์„œ ๊ณต๊ฐœ ํ‚ค๋ฅผ ๋ฐ›๋Š”๋‹ค. ํ•ด์ปค๊ฐ€ ๋ชจ๋“  ๋„คํŠธ์›Œํฌ๋ฅผ ์—ฟ๋ณด๊ณ  ์žˆ์œผ๋‹ˆ ํ•ด์ปค๋„ ๊ฐœ์ธํ‚ค์™€ ๊ณต์šฉํ‚ค์˜ ์‚ฌ๋ณธ์„ ๋ฐ›์•˜๋‹ค๊ณ  ๊ฐ€์ •ํ•˜์ž.
  3. ๊ทธ๋Ÿผ ์‚ฌ์šฉ์ž์˜ ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ์„œ๋ฒ„๊ฐ€ ์ œ๊ณตํ•œ ๊ณต์šฉํ‚ค๋ฅผ ์ด์šฉํ•ด ๋Œ€์นญํ‚ค๋ฅผ ์•”ํ˜ธํ™”ํ•œ๋‹ค.
  4. ๊ทธ๋ฆฌ๊ณ  ์‚ฌ์šฉ์ž๋Š” ๊ณต์šฉํ‚ค๋กœ ์•”ํ˜ธํ™”๋œ ๋Œ€์นญํ‚ค๋ฅผ ์„œ๋ฒ„๋กœ ๋ณด๋‚ธ๋‹ค. ํ•ด์ปค๋„ ์‚ฌ๋ณธ์„ ๋ฐ›๋Š”๋‹ค.
  5. ์„œ๋ฒ„๋Š” ๊ฐœ์ธ ํ‚ค๋กœ ๋ฉ”์‹œ์ง€๋ฅผ ํ•ด๋…ํ•˜๊ณ  ๋Œ€์นญํ‚ค๋ฅผ ํšŒ์ˆ˜ํ•œ๋‹ค. ํ•ด์ปค์—๊ฒ ์•”ํ˜ธ๋ฅผ ํ•ด๋…ํ•  ๊ฐœ์ธํ‚ค๊ฐ€ ์—†๊ณ , ๊ณต๊ฐœํ‚ค๋งŒ ๊ฐ–๊ณ  ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๋ฉ”์‹œ์ง€์—์„œ ๋Œ€์นญํ‚ค๋ฅผ ๋˜์ฐพ์„ ์ˆ˜ ์—†๋‹ค.
  6. ์ด์ œ ํด๋ผ์ด์–ธํŠธ์™€ ์„œ๋ฒ„๋Š” ๋Œ€์นญํ‚ค๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์•”ํ˜ธํ™”ํ•ด์„œ ์„œ๋กœ์—๊ฒŒ ๋ณด๋‚ผ ์ˆ˜ ์žˆ๋‹ค. ์ƒ๋Œ€๋ฐฉ์€ ์•”ํ˜ธํ™”๋œ ๋ฐ์ดํ„ฐ๋ฅผ ๋Œ€์นญํ‚ค๋ฅผ ํ†ตํ•ด ํ•ด๋…ํ•  ์ˆ˜ ์žˆ๋‹ค.





ํ•˜์ง€๋งŒ ํ•ด์ปค๊ฐ€ ์„œ๋ฒ„์ธ์ฒ™ ์•…์˜์ ์œผ๋กœ ๋น„์Šทํ•œ ์„œ๋ฒ„๋ฅผ ๋งŒ๋“ค ์ˆ˜๋„ ์žˆ๋‹ค.
๋”ฐ๋ผ์„œ, ์„œ๋ฒ„์—์„œ ๋‚˜์˜จ ํ•ฉ๋ฒ•์ ์ธ ํ‚ค์ธ์ง€ ํ™•์ธ์ด ํ•„์š”ํ•˜๋‹ค.
์„œ๋ฒ„๊ฐ€ ํ‚ค๋ฅผ ๋ณด๋‚ผ ๋•Œ ํ‚ค ๋Œ€์‹  ํ‚ค๋ฅผ ๊ฐ€์ง„ ์ธ์ฆ์„œ๋ฅผ ๋ณด๋‚ธ๋‹ค.


ํ•˜์ง€๋งŒ ์ด๋Ÿฐ ์ธ์ฆ์„œ๋Š” ๋ˆ„๊ตฌ๋‚˜ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค.
๊ทธ๋ž˜์„œ, ์ธ์ฆ์„œ๋ฅผ ์ƒ์„ฑํ–ˆ๋‹ค๋ฉด ์ง์ ‘ '์„œ๋ช…'ํ•ด์•ผํ•œ๋‹ค.
๋ธŒ๋ผ์šฐ์ €๋Š” ์„œ๋ฒ„์—์„œ ๋ฐ›์€ ์ธ์ฆ์„œ๊ฐ€ ํ•ฉ๋ฒ•์ ์ธ์ง€ ์œ ํšจ์„ฑ์„ ํ™•์ธํ•˜๊ณ  ๊ณ ์ •๋œ ์ธ์ฆ์„œ๋ผ๋ฉด ์šฐ๋ฆฌ์—๊ฒŒ ๊ฒฝ๊ณ ๋ฅผ ์ค€๋‹ค.

๊ทธ๋Ÿฌ๋ฉด ์›น ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ์‹ ๋ขฐํ• ๋งŒํ•œ ํ•ฉ๋ฒ•์ ์ธ ์›น ์„œ๋ฒ„ ์ธ์ฆ์„œ๋Š” ์–ด๋–ป๊ฒŒ ๋งŒ๋“ค์–ด์งˆ๊นŒ?
๊ทธ๋ž˜์„œ CA(Certificate Authority)๊ฐ€ ๋‚˜์„ ๋‹ค.

CA๋Š” ์šฐ๋ฆฌ๋ฅผ ์œ„ํ•ด ์ธ์ฆ์„œ์— ์„œ๋ช…ํ•˜๊ณ  ์œ ํšจ์„ฑ์„ ํ™•์ธํ•ด์ฃผ๋Š” ์ž˜ ์•Œ๋ ค์ง„ ๊ธฐ๊ด€์ด๋‹ค.

๋จผ์ €, ์ƒ์„ฑํ•œ ํ‚ค์™€ ์šฐ๋ฆฌ์˜ ์›น์‚ฌ์ดํŠธ ๋„๋ฉ”์ธ ์ด๋ฆ„์„ ์ด์šฉํ•ด์„œ CSR(Certificate Signing Request) ํŒŒ์ผ์„ ์ƒ์„ฑํ•œ๋‹ค. (openssl ๋ช…๋ น์–ด ์‚ฌ์šฉ) CSR ํŒŒ์ผ์€ ์ธ์ฆ์„œ ์„œ๋ช… ์š”์ฒญ์œผ๋กœ, CA๋กœ ๋ณด๋‚ด์ ธ ์„œ๋ช…์„ ๋ฐ›์•„์•ผ ํ•œ๋‹ค. ์ธ์ฆ์„œ ๊ด€๊ณ„์ž๊ฐ€ ์ƒ์„ธ ์‚ฌํ•ญ์„ ํ™•์ธํ•˜๊ณ  ์ผ๋‹จ ํ™•์ธ๋˜๋ฉด ์ธ์ฆ์„œ์— ์„œ๋ช…ํ•ด์„œ ๋‹ค์‹œ ๋ณด๋‚ด์ค€๋‹ค.

ํ•ด์ปค๋„ ๊ฐ™์€ ๋ฐฉ๋ฒ•์œผ๋กœ ์ธ์ฆ์„œ์— ์„œ๋ช…์„ ๋ฐ›์œผ๋ ค ํ•˜๋ฉด ์ธ์ฆ์„œ ์œ ํšจ์„ฑ ๊ฒ€์‚ฌ ๋‹จ๊ณ„์—์„œ ์‹คํŒจํ•  ๊ฒƒ์ด๋‹ค.
๊ทธ๊ฐ€ ํ˜ธ์ŠคํŒ…ํ•˜๋Š” ์›น์‚ฌ์ดํŠธ์—” ์œ ํšจํ•œ ์ธ์ฆ์„œ๊ฐ€ ์—†๊ธฐ ๋•Œ๋ฌธ์— ํšŒ์‚ฌ๊ฐ€ ์ธ์ฆ์„œ๋ฅผ ๊ฑฐ๋ถ€ํ•  ๊ฒƒ์ด๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.


๊ทธ๋Ÿฌ๋ฉด ํ•ฉ๋ฒ•์ ์ธ CA๊ฐ€ ์„œ๋ช…ํ–ˆ๋‹ค๋Š” ๊ฒƒ์„ ์–ด๋–ป๊ฒŒ ์•Œ ์ˆ˜ ์žˆ์„๊นŒ?

CA๋“ค์€ ๊ฐœ์ธํ‚ค์™€ ๊ณต์šฉํ‚ค ์Œ์„ ๊ฐ–๊ณ  ์žˆ๋‹ค. CA๊ฐ€ ์ธ์ฆ์„œ์— ์„œ๋ช…ํ•  ๋•Œ ๊ฐœ์ธํ‚ค๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค. ๋ชจ๋“  CA์˜ ๊ณต๊ฐœํ‚ค๋Š” ๋ธŒ๋ผ์šฐ์ €์— ๊ธฐ๋ณธ์œผ๋กœ ์ œ๊ณต๋˜๊ธฐ ๋•Œ๋ฌธ์— ๋ธŒ๋ผ์šฐ์ €๋Š” CA์˜ ๊ณต๊ฐœํ‚ค๋ฅผ ์ด์šฉํ•ด CA๊ฐ€ ์ง์ ‘ ์„œ๋ช…ํ•œ ์ธ์ฆ์„œ์ž„์„ ํ™•์ธํ•œ๋‹ค. -> ์ผ๋ฐ˜์ ์ธ ๊ฐœ์ธํ‚ค-๊ณต์šฉํ‚ค์™€ ๋ฐ˜๋Œ€๋กœ ๊ณต์šฉํ‚ค๊ฐ€ ์•”ํ˜ธ ํ•ด๋…์— ์‚ฌ์šฉ๋œ๋‹ค.โ—


์š”์•ฝํ•ด๋ณด์ž.
๋ฉ”์‹œ์ง€๋ฅผ ์•”ํ˜ธํ™”ํ•˜๋ ค๋ฉด ๊ณต์šฉํ‚ค์™€ ๊ฐœ์ธํ‚ค๋กœ ๋น„๋Œ€์นญ ์•”ํ˜ธํ™”๋ฅผ ํ•ด์•ผ ํ•œ๋‹ค.

์„œ๋ฒ„๋Š” ๋จผ์ € CA์— CSR(์ธ์ฆ์„œ ์„œ๋ช… ์š”์ฒญ)์„ ๋ณด๋‚ธ๋‹ค. CA๋Š” ๊ฐœ์ธํ‚ค๋กœ CSR์— ์„œ๋ช…ํ•œ๋‹ค. ๋ชจ๋“  ์‚ฌ์šฉ์ž๋Š” CA์˜ ๊ณต์šฉํ‚ค๋ฅผ ๊ฐ–๊ณ  ์žˆ๋‹ค.
์„œ๋ช…๋œ ์ธ์ฆ์„œ๋Š” ์„œ๋ฒ„๋กœ ๋‹ค์‹œ ๋ณด๋‚ด์ง„๋‹ค. ์„œ๋ฒ„๋Š” ์„œ๋ช…๋œ ์ธ์ฆ์„œ๋กœ ์›น ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์„ ๊ตฌ์„ฑํ•œ๋‹ค.
์‚ฌ์šฉ์ž๊ฐ€ ์›น ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์— ์ ‘๊ทผํ•  ๋•Œ๋งˆ๋‹ค ์„œ๋ฒ„๋Š” ๋จผ์ € ์ธ์ฆ์„œ(๊ณต๊ฐœํ‚ค)๋ฅผ ๋ณด๋‚ธ๋‹ค.
์‚ฌ์šฉ์ž, ์ •ํ™•ํžˆ๋Š” ์‚ฌ์šฉ์ž์˜ ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ์ธ์ฆ์„œ๋ฅผ ์ฝ๊ณ  ์„œ๋ฒ„์˜ ๊ณต๊ฐœ ํ‚ค๋ฅผ ์œ ํšจ์„ฑ ๊ฒ€์‚ฌํ•˜๊ณ  ํšŒ์ˆ˜ํ•˜๊ธฐ ์œ„ํ•ด CA์˜ ๊ณต์šฉํ‚ค๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.
๊ทธ๋Ÿฐ ๋‹ค์Œ ๋Œ€์นญํ‚ค๋ฅผ ์ƒ์„ฑํ•ด ๋ชจ๋“  ํ†ต์‹ ์— ์‚ฌ์šฉํ•˜๋ ค๊ณ  ํ•œ๋‹ค. ๋Œ€์นญํ‚ค๋Š” ์„œ๋ฒ„์˜ ๊ณต๊ฐœํ‚ค๋กœ ์•”ํ˜ธํ™”๋˜์–ด ์„œ๋ฒ„๋กœ ์ „์†ก๋œ๋‹ค.
์„œ๋ฒ„๋Š” ๊ฐœ์ธํ‚ค๋กœ ๋ฉ”์‹œ์ง€๋ฅผ ํ•ด๋…ํ•˜๊ณ  ๋Œ€์นญํ‚ค๋ฅผ ํšŒ์ˆ˜ํ•œ๋‹ค.
๋Œ€์นญํ‚ค๋Š” ์•ž์œผ๋กœ ํ†ต์‹ ์„ ์œ„ํ•ด ์‚ฌ์šฉ๋œ๋‹ค.

๊ด€๋ฆฌ์ž๊ฐ€ SSH ๋ณด์•ˆ ํ‚ค ์Œ์„ ์ƒ์„ฑํ•œ๋‹ค. ์›น ์„œ๋ฒ„๋Š” HTTPS๋กœ ์›น์‚ฌ์ดํŠธ๋ฅผ ๋ณดํ˜ธํ•  ํ‚ค ์Œ์„ ์ƒ์„ฑํ•œ๋‹ค. ์ธ์ฆ์„œ ๊ธฐ๊ด€์€ ์ž์ฒด ๊ด€๋ฆฌ์ž๋ฅผ ์ƒ์„ฑํ•ด ์ธ์ฆ์„œ์— ์„œ๋ช…ํ•œ๋‹ค.
ํ•˜์ง€๋งŒ ์ตœ์ข… ์‚ฌ์šฉ์ž๋Š” ๋‹จ์ผ ๋Œ€์นญํ‚ค๋งŒ ์ƒ์„ฑํ•œ๋‹ค.

ํด๋ผ์ด์–ธํŠธ๋Š” ์„œ๋ฒ„์˜ ์œ ํšจ์„ฑ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ์„œ๋ฒ„๋Š” ํด๋ผ์ด์–ธํŠธ์ธ์ง€ ํ™•์‹คํžˆ ์•Œ ์ˆ˜ ์—†๋‹ค.
ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์ง„์งœ์ธ์ง€ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด ์„œ๋ฒ„๋Š” ํด๋ผ์ด์–ธํŠธ์—๊ฒŒ ์ธ์ฆ์„œ๋ฅผ ์š”์ฒญํ•  ์ˆ˜ ์žˆ๋‹ค.
๊ทธ๋ž˜์„œ ํด๋ผ์ด์–ธํŠธ๋Š” ํ•œ ์Œ์˜ ํ‚ค์™€ ์œ ํšจํ•œ CA๋กœ๋ถ€ํ„ฐ ์„œ๋ช…๋œ ์ธ์ฆ์„œ๋ฅผ ์ƒ์„ฑํ•ด์•ผ ํ•œ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ํด๋ผ์ด์–ธํŠธ๋Š” ์ธ์ฆ์„œ๋ฅผ ์„œ๋ฒ„๋กœ ๋ณด๋‚ธ๋‹ค.

์ด ์ „์ฒด ์ธํ”„๋ผ๋Š” PKI(Public Key Infrastructure)๋ผ ์•Œ๋ ค์ ธ ์žˆ๋‹ค.


๋งˆ์ง€๋ง‰์œผ๋กœ ํ•œ ๊ฐ€์ง€๋งŒ ํ™•์‹คํžˆ ํ•ด๋‘์ž.
๊ณต๊ฐœํ‚ค์™€ ๊ฐœ์ธํ‚ค๋Š” ์—ฐ๊ด€์ด ์žˆ๊ฑฐ๋‚˜ ์ง์„ ์ด๋ฃจ๋Š” ํ‚ค์ด๋‹ค. ๋ฐ์ดํ„ฐ ์•”ํ˜ธํ™”์™€ ํ•ด๋…์€ ํ•˜๋‚˜์˜ ํ‚ค๋กœ ํ•  ์ˆ˜ ์—†๋‹ค.
๋”ฐ๋ผ์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์•”ํ˜ธํ™”ํ•  ๋•Œ๋Š” ์‹ ์ค‘ํ•ด์•ผ ํ•œ๋‹ค. ๊ฐœ์ธ ํ‚ค๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์•”ํ˜ธํ™”ํ•˜๋ฉด ๊ณต๊ฐœ ํ‚ค๋ฅผ ๊ฐ€์ง„ ์‚ฌ๋žŒ์ด ๋ˆ„๊ตฌ๋“  ์•”ํ˜ธ๋ฅผ ํ’€๊ณ  ๋ฉ”์‹œ์ง€๋ฅผ ์ฝ์„ ์ˆ˜ ์žˆ๋‹ค.


๊ณต์šฉํ‚ค๊ฐ€ ์žˆ๋Š” ์ธ์ฆ์„œ๋Š” ๋ณดํ†ต .crt๋‚˜ .pem ํ™•์žฅ์ž๋ฅผ ๊ฐ–๋Š”๋‹ค.
๊ฐœ์ธํ‚ค๋Š” ๋ณดํ†ต .key๋‚˜ -key.pem ํ™•์žฅ์ž๋ฅผ ๊ฐ–๋Š”๋‹ค. ์ฆ‰, ๋‹จ์–ด๋‚˜ ํ™•์žฅ์ž์— 'key'๊ฐ€ ๋“ค์–ด๊ฐ€๋Š” ๊ฒƒ์€ ๊ฐœ์ธํ‚ค์ด๋‹ค.

profile
์ด์ „์˜ ๊ธฐ๋ก๋“ค ๐Ÿ‘‰ https://blog.naver.com/reviewerkyj

0๊ฐœ์˜ ๋Œ“๊ธ€