๋กœ์ผ“๐Ÿพ
article thumbnail

 

์ฟ ๋ฒ„๋„คํ‹ฐ์Šค ๋ณด์•ˆ ๊ด€๋ จ ๋ชจ๋ฒ” ์‚ฌ๋ก€๋ฅผ ์‚ดํŽด๋ณด๋ฉด ์•„๋งˆ ๊ฐ€์žฅ ๊ธฐ๋ณธ์ ์ด๊ณ , ๊ฐ€์žฅ ๋งŽ์ด ๋ณด์ด๋Š” ๊ฒƒ์ด ํ•˜๋‚˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์•„๋งˆ ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ํ™˜๊ฒฝ์ด๋ผ๋ฉด ๋ชจ๋‘๊ฐ€ ์‹ ๊ฒฝ์จ์•ผ ํ•˜๋Š” ๋ถ€๋ถ„์ด์ฃ .

 

๋ฐ”๋กœ ๋ฃจํŠธ ๊ณ„์ • ๋น„ํ™œ์„ฑํ™” ์ž…๋‹ˆ๋‹ค.

์ฆ‰, ์ปจํ…Œ์ด๋„ˆ ๋‚ด ํ”„๋กœ์„ธ์Šค์—์„œ ๋ฃจํŠธ ๊ถŒํ•œ์„ ๋ชจ๋‘ ๋น„ํ™œ์„ฑํ™” ํ•˜๋Š” ๊ฒƒ์ด์ฃ .

 

์ปจํ…Œ์ด๋„ˆ ๋‚ด๋ถ€์—์„œ ์•„๋ฌด๋‚˜ ๋ฃจํŠธ ๊ถŒํ•œ์„ ์‚ฌ์šฉํ•˜๊ฒŒ ํ•œ๋‹ค๋Š” ๊ฒƒ์€ ๋ชจ๋ฅด๋Š” ์‚ฌ๋žŒ์—๊ฒŒ ์ง‘ ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ์•Œ๋ ค์ฃผ๋Š” ๊ฒƒ๊ณผ ๋‹ค๋ฆ„์ด ์—†์Šต๋‹ˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด ์ปจํ…Œ์ด๋„ˆ์— ์ ‘์†ํ•œ ํ›„ uname -a ๋ช…๋ น์–ด๋ฅผ ์ณ๋ณด๋ฉด ํ˜ธ์ŠคํŠธ์˜ OS ๋ฒ„์ „์„ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. 

 

๋ฃจํŠธ ๊ถŒํ•œ ๋น„ํ™œ์„ฑํ™”๋Š” ์ด๋ฏธ์ง€๋ฅผ ๋งŒ๋“ค ๋•Œ๋„ ์„ค์ •ํ•  ์ˆ˜ ์žˆ๊ณ , k8s ๋กœ ํŒŒ๋“œ๋ฅผ ๋ฐฐํฌํ•  ๋•Œ๋„ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

์ด๋ฒˆ ๊ธ€์—์„œ๋Š” ์–ด๋–ป๊ฒŒ ๋ฃจํŠธ ๊ณ„์ •์„ ๋น„ํ™œ์„ฑํ™”ํ•˜๊ณ  ์•ˆ์ „ํ•œ ํŒŒ๋“œ๋ฅผ ๋งŒ๋“œ๋Š”์ง€ ์•Œ์•„๋ณด๊ณ ์ž ํ•ฉ๋‹ˆ๋‹ค.

Dockerile ์„ ์ž‘์„ฑํ•  ๋•Œ ๋ณด์•ˆ ๊ด€๋ จ ์˜ต์…˜๋“ค์€ ๋”ฐ๋กœ ์„ค์ •ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค๋ฉด USER 1000 

 

๋ ›์ธ ๋‘๋”์ฝ”๋“œ~

 

 

SecurityContext


k8s pod spec ์œผ๋กœ securityContext ๋ผ๋Š” ํ•„๋“œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ํŒŒ๋“œ ๋‚ด ๋ชจ๋“  ๋ณด์•ˆ ์„ค์ •์€ ์ด ํ•„๋“œ ๋‚ด์—์„œ ์„ค์ •์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. 

์„ค๋ช…ํ•˜๋Š” ๊ฒƒ๋ณด๋‹ค ํ•œ๋ฒˆ ๋ณด๋Š” ๊ฒŒ ํ›จ์”ฌ ๋‚˜์œผ๋‹ˆ ๋ฐ”๋กœ ํ•œ๋ฒˆ ๋ณด์‹œ์ฃ .

์ด๋ฏธ์ง€๋ฅผ ๋งŒ๋“ค ๋•Œ์˜ ๋ณด์•ˆ์€ ์‹ ๊ฒฝ์“ฐ์ง€ ์•Š์Šต๋‹ˆ๋‹ค

 

pod.yaml

apiVersion: v1
kind: Pod
metadata:
  name: secure-pod
spec:
  volumes:
    - name: data-log
      emptyDir: {}
  containers:
    - name: secure-pod
      imagePullPolicy: Always
      image: kingbj0429/busybox:1.28
      volumeMounts:
        - name: data-log
          mountPath: /data/log
      securityContext:
        runAsNonRoot: true
        runAsUser: 1000
        runAsGroup: 1000
        privileged: false
        allowPrivilegeEscalation: false
        readOnlyRootFilesystem: false
        capabilities:
          add: [ "NET_ADMIN", "SYS_TIME" ]

 

Dockerfile

FROM amd64/ubuntu:20.04

RUN apt update \
    && apt install -y sudo \
    && apt install -y libcap2-bin \
    && chmod 4755 /bin/cat \
    && useradd -s /bin/sh -u 1000 user

CMD ["/bin/sh", "-c", "sleep 1d"]

 

 

์šฐ์„  Dockerfile ๋ถ€ํ„ฐ ํ•˜๋‚˜ํ•˜๋‚˜ ์•Œ์•„๋ณด์ฃ .

 

sudo ํŒจํ‚ค์ง€๋Š” pod.yaml ์—์„œ .allowPrivilegeEscalation ๋ฅผ false ์™€ true ์„ ์ฃผ์—ˆ์„ ๋•Œ ๊ฐ๊ฐ ์–ด๋–ป๊ฒŒ ๋™์ž‘ํ•˜๋Š” ์ง€ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•จ์ž…๋‹ˆ๋‹ค. 

 

libcap2-bin ํŒจํ‚ค์ง€๋Š” .capabilities[] ๋ฅผ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•จ์ž…๋‹ˆ๋‹ค.

 

๊ทธ๋ฆฌ๊ณ  chmod 4755 /bin/cat ์€ /bin/cat ๋ฐ”์ด๋„ˆ๋ฆฌ์— set uid ๋ฅผ ์ง€์ •ํ•จ์œผ๋กœ์จ .allowPrivilegeEscalation ๊ฐ€ ์–ด๋–ป๊ฒŒ ๋™์ž‘ํ•˜๋Š” ์ง€ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•จ์ž…๋‹ˆ๋‹ค. 

 

setuid ๋Š” ํŒŒ์ผ์˜ owner ๊ถŒํ•œ์„ ๋นŒ๋ ค ์‹คํ–‰ํ•˜๋Š” ๊ธฐ๋Šฅ์ž…๋‹ˆ๋‹ค.
๋งŒ์•ฝ ์–ด๋Š ํŒŒ์ผ์˜ ๊ถŒํ•œ์ด 4755 ๋ผ๋ฉด owner ๊ฐ€ ์•„๋‹Œ ์‚ฌ์šฉ์ž๋Š” owner ์˜ ๊ถŒํ•œ์„ ๋นŒ๋ ค ํŒŒ์ผ์„ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด์™ธ setgid(2), sticky bit(1) ๋„ ์กด์žฌํ•ฉ๋‹ˆ๋‹ค.

 

๋งˆ์ง€๋ง‰์œผ๋กœ ๋ฃจํŠธ ๊ณ„์ •๊ณผ ๋น„๊ตํ•˜๊ธฐ ์œ„ํ•œ uid 1000 ์˜ user ๊ณ„์ •์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

 

 

๊ทธ๋Ÿผ ์ด์ œ pod.yaml ์— ๋Œ€ํ•ด ์•Œ์•„๋ณด์ฃ . 

.securityContext ์˜ ๋” ๋งŽ์€ ์˜ต์…˜์ด ๊ถ๊ธˆํ•˜๋‹ค๋ฉด ์—ฌ๊ธฐ, .securityContext ์ž์ฒด๊ฐ€ ๊ถ๊ธˆํ•˜๋‹ค๋ฉด ์—ฌ๊ธฐ!

 

.runAsNonRoot: true ๋กœ ํ•˜๊ฒŒ ๋˜๋ฉด, ๋งŒ์•ฝ ๋ฃจํŠธ ๊ณ„์ •์œผ๋กœ ํŒŒ๋“œ๋ฅผ ์‹คํ–‰ ์‹œ ์—๋Ÿฌ๋ฅผ ํ† ํ•ด๋ƒ…๋‹ˆ๋‹ค.

.runAsUser: 1000 ๋กœ ํ•˜๊ฒŒ ๋˜๋ฉด, ํŒŒ๋“œ๋ฅผ 1000 ๊ณ„์ •์œผ๋กœ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค. ๋งŒ์•ฝ 0 ์œผ๋กœ ํ•˜๊ฒŒ๋˜๋ฉด ๋ฃจํŠธ ๊ณ„์ •์ด๋ฏ€๋กœ ์œ„์— .runAsNonRoot: true ์œผ๋กœ ์ธํ•ด ํŒŒ๋“œ ์ƒ์„ฑ์ด ์•ˆ๋ฉ๋‹ˆ๋‹ค.

 

.runAsGroup: 1000 ๋กœ ํ•˜๊ฒŒ๋˜๋ฉด ํŒŒ๋“œ๋Š” 1000 gid ๋ฅผ ๊ฐ€์ง„ ๊ทธ๋ฃน์— ํฌํ•จ๋ฉ๋‹ˆ๋‹ค.

 

๋‚˜๋จธ์ง€ ์˜ต์…˜๋“ค์— ๋Œ€ํ•ด์„  ์ข€ ๋” ์ž์„ธํžˆ ์•Œ์•„๋ณด์ฃ .

 

.privileged ์˜ต์…˜์€ ํŒŒ๋“œ๋ฅผ ์‹คํ–‰ํ•˜๋Š” ์‚ฌ์šฉ์ž์—๊ฒŒ root ์™€ ๊ฐ™์€ ๊ถŒํ•œ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ค๋‹ˆ๋‹ค. ์ฆ‰, sudo ์™€ ๊ฐ™์€ ๋ช…๋ น์–ด ์‚ฌ์šฉ์ด ๊ฐ€๋Šฅํ•˜๋ฉฐ, ๋ฃจํŠธ ๊ถŒํ•œ์„ ๊ฐ€์งˆ ์ˆ˜ ์žˆ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

 

.privileged: false ์ผ ๊ฒฝ์šฐ

 

capsh --print ๋ฅผ ํ†ตํ•ด ์–ด๋Š privileged ๊ฐ€ ํ• ๋‹น๋˜์—ˆ๋Š” ์ง€ ํ™•์ธํ•  ์ˆ˜ ์žˆ์ฃ .

 

๋งŒ์•ฝ privileged ๊ฐ€ true ์ด๋ฉด, .allowPrivilegeEscalation ๊ณผ .capabilities[] ์˜ ์˜ต์…˜์„ ๋ฌด์˜๋ฏธํ•ด์ง€๋ฉฐ, .allowPrivilegeEscalation ๋ฅผ false ๋กœ ์ค€๋‹ค๋ฉด ํŒŒ๋“œ ์ƒ์„ฑ ์‹œ ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

 

.capabilities[] ์˜ต์…˜์€ ์‚ฌ์šฉ์ž์—๊ฒŒ ํŠน์ • capability ๋ฅผ ์ฃผ๋Š” ์˜ต์…˜์ธ๋ฐ privileged ๊ฐ€ true ๋ผ๋ฉด ์ด๋ฏธ ๋ชจ๋“  capability ๋ฅผ ํ• ๋‹น๋ฐ›์•˜๊ธฐ ๋•Œ๋ฌธ์— ์˜๋ฏธ๊ฐ€ ์—†๊ฒ ์ฃ ?

 

.capabilities[] ์— [ "NET_ADMIN", "SYS_TIME" ] ์„ ์ฃผ์—ˆ๋Š” ๋ฐ ์ด๋Ÿด ๊ฒฝ์šฐ ๋ฃจํŠธ ๊ณ„์ •์œผ๋กœ ํŒŒ๋“œ์˜ Date ๋ฅผ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

 

๋ฃจํŠธ๊ฐ€ ์•„๋‹ˆ๋ผ๋ฉด .capabilities[] ์„ ์ฃผ์–ด๋„ capability ๋ฅผ ๊ฐ€์ง€๊ณ  ์–ด๋– ํ•œ ์•ก์…˜์„ ํ•  ์ˆœ ์—†์Šต๋‹ˆ๋‹ค.

 

 

.allowPrivilegeEscalation

 

.allowPrivilegeEscalation ์— ๋Œ€ํ•ด ์ข€ ๋” ์•Œ์•„๋ณด์ฃ . .allowPrivilegeEscalation ๊ฐ€ ์‚ฌ์‹ค ์ด๋ฒˆ ๊ธ€์˜ ํ•ต์‹ฌ์ด๋ผ๊ณ  ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

.allowPrivilegeEscalation ์€ ๊ถŒํ•œ ์ƒ์Šน์„ ์„ ํƒํ•˜๋Š” ์˜ต์…˜์ž…๋‹ˆ๋‹ค. ๋งŒ์•ฝ false ๋ผ๋ฉด ๊ถŒํ•œ ์ƒ์Šน์„ ํ†ตํ•ด ํ”„๋กœ์„ธ์Šค๋ฅผ ์‹คํ–‰ํ•  ์ˆ˜ ์—†์ฃ .

 

๊ทผ๋ฐ ์ด๋ ‡๊ฒŒ ๊ธ€๋กœ๋งŒ ๋ด์„œ๋Š” ์ž˜ ์ดํ•ด๊ฐ€ ์•ˆ๊ฐ€๋‹ˆ ๋ฐ”๋กœ ์‹ค์Šต์„ ํ•ด๋ณด์ฃ .

 

์šฐ์„  .allowPrivilegeEscalation ์„ true ๋กœ ํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ์•„๊นŒ ์œ„ Dockfile ์„ ๋ณด๋ฉด chmod 4755 ๋ฅผ ํ†ตํ•ด cat ๋ฐ”์ด๋„ˆ๋ฆฌ์— set uid ๋ฅผ ์„ค์ •ํ–ˆ์Šต๋‹ˆ๋‹ค. set uid ๋ฅผ ํ†ตํ•ด ๊ถŒํ•œ ์ƒ์Šน์„ ํ…Œ์ŠคํŠธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

cat ๋ฐ”์ด๋„ˆ๋ฆฌ๋ฅผ ๋ณด๋ฉด set uid ๊ฐ€ ์„ค์ •๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. 

stat /bin/cat

 

๊ทธ๋ฆฌ๊ณ  cat /etc/shadow ๋ฅผ ์‹คํ–‰ํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

stat /etc/shadow

 

cat ๋ช…๋ น์–ด๋Š” ๋ถ€๋ชจ์˜ ๊ถŒํ•œ์„ ๋นŒ๋ฆด ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ cat /etc/shadow ๊ฐ€ ์ •์ƒ์ ์œผ๋กœ ์ถœ๋ ฅ๋ฉ๋‹ˆ๋‹ค.

cat /etc/shadow

 

shadow ํŒŒ์ผ์€ 640 ์ด๊ธฐ ๋•Œ๋ฌธ์— root ๊ฐ€ ์•„๋‹ˆ๊ฑฐ๋‚˜ ํ•ด๋‹น๋œ ๊ทธ๋ฃน์— ์žˆ๋Š” ์‚ฌ์šฉ์ž๊ฐ€ ์•„๋‹ˆ๋ผ๋ฉด ์ ‘๊ทผ์ด ๋ถˆ๊ฐ€๋Šฅํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

ํ•˜์ง€๋งŒ, .allowPrivilegeEscalation ์„ true ๋กœ ์คŒ์œผ๋กœ์จ ๊ถŒํ•œ ์ƒ์Šน์„ ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ฃผ์—ˆ๊ณ , set uid ๋˜ํ•œ ์„ค์ •๋˜์—ˆ๊ธฐ ๋•Œ๋ฌธ์— root ๊ฐ€ ์•„๋‹ˆ์—ฌ๋„ ์ ‘๊ทผ์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

 

ํ•˜์ง€๋งŒ!

.allowPrivilegeEscalation ์„ false ๋ฅผ ์ค€๋‹ค๋ฉด, cat ๋ฐ”์ด๋„ˆ๋ฆฌ์— set uid ๊ฐ€ ์„ค์ •๋˜์–ด ์žˆ๋‹ค ํ• ์ง€๋ผ๋„ cat /etc/shadow ๋ฅผ ์‹คํ–‰ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ์™œ๋ƒ ๊ถŒํ•œ ์ƒ์Šน์„ ๋ง‰์•˜๊ธฐ ๋•Œ๋ฌธ์ด์ฃ .

cat /etc/shadow

 

sudo ๋˜ํ•œ set uid ๊ฐ€ ์„ค์ •๋˜์–ด์žˆ๊ณ , root ๊ถŒํ•œ์„ ๋นŒ๋ฆฌ๋Š” ๊ฒƒ์ด๊ธฐ ๋•Œ๋ฌธ์— .allowPrivilegeEscalation ์„ false ๋กœ ์ค€๋‹ค๋ฉด sudo ๋Š” ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

stat /usr/bin/sudo

 

์ด์ œ .allowPrivilegeEscalation ์˜ต์…˜์— ๋Œ€ํ•ด ๊ฐ์ด ์˜ค์‹œ์ฃ ?

 

๊ทธ๋Ÿผ ๋‹ค์Œ์œผ๋กœ๋Š” ๋˜ ์ค‘์š”ํ•œ ์˜ต์…˜ ์ค‘ ํ•˜๋‚˜์ธ .readOnlyRootFileSystem ์— ๋Œ€ํ•ด ์•Œ์•„๋ณด์ฃ .

 

 

.readOnlyRootFileSystem

 

์ด๋ฆ„ ๊ทธ๋Œ€๋กœ ํŒŒ์ผ ์‹œ์Šคํ…œ์— read ๋งŒ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ํŒŒ์ผ๋“ค์„ ์ฝ์„ ์ˆœ ์žˆ์ง€๋งŒ, ์“ธ ์ˆ˜๋Š” ์—†์–ด์š”.

๋ณด์•ˆ์„ ์ƒ๊ฐํ•ด๋ณด๋ฉด ๋‹น์—ฐํžˆ ํŒŒ๋“œ ๋‚ด ํŒŒ์ผ์„ ์ˆ˜์ •ํ•  ์ˆ˜ ์—†๊ฒŒ ํ•˜๋Š” ๊ฒƒ์ด ๋งž๊ฒ ์ฃ ?

 

๊ทธ๋Ÿฐ๋ฐ ํ•œ๊ฐ€์ง€ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๋กœ๊ทธ๋ฅผ ์ถœ๋ ฅํ•ด์ฃผ๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•ด๋ณด์ฃ . ๋กœ๊ทธ๋Š” /data/log ์— ์ €์žฅ๋ฉ๋‹ˆ๋‹ค.

ํ•˜์ง€๋งŒ .readOnlyRootFileSystem ์„ true ํ•œ๋‹ค๋ฉด ๋ฃจํŠธ๊ฐ€ ์•„๋‹Œ ์ด์ƒ /data/log ์— ๋ฌด์–ธ๊ฐ€๋ฅผ ์“ธ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

 

์ฆ‰, touch /data/log/log.text ๊ฐ€ ๋ถˆ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. .runAsNonRoot ๊ฐ€ true ์ด๊ธฐ ๋•Œ๋ฌธ์— ๋ฃจํŠธ๋กœ ์ ‘๊ทผํ•  ์ˆ˜๋„ ์—†์Šต๋‹ˆ๋‹ค.

touch text

 

๊ทธ๋Ÿผ ์ด๋Ÿด ๊ฒฝ์šฐ ์–ด๋–ป๊ฒŒ ํ•ด์•ผ ํ• ๊นŒ์š”?

 

๋ฐ”๋กœ emptyDir ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

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

์šดํŠธ๋œ ๋‹ค๋Š” ๊ฒƒ์ด์ฃ .

 

์•„๋ฌด๋‚˜ ์ด ๋งˆ์šดํŠธ ๊ฒฝ๋กœ์—๋Š” ์ฝ๊ฑฐ๋‚˜ ์“ธ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

df -h

 

ํŠน๋ณ„ํžˆ ๊ถŒํ•œ์„ ์ฃผ์ง€ ์•Š์•˜๋Š”๋ฐ 777 ๋กœ ์„ค์ •๋˜์–ด ์žˆ๋Š” ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

stat /data/log

 

๋งŒ์•ฝ busybox:1.28 ์—์„œ ๋กœ๊ทธ๋ฅผ ์“ฐ๊ณ  ์‹ถ๋‹ค๋ฉด /data/log ๊ฒฝ๋กœ๋ฅผ .volumeMounts ํ•ด์ฃผ๋ฉด ๋ฉ๋‹ˆ๋‹ค.

 

 

๋งˆ๋ฌด๋ฆฌ


pod ๋ฅผ ๋ฐฐํฌํ•  ๋•Œ ์‹ ๊ฒฝ์จ์•ผ ํ•  ์•„์ฃผ ๊ธฐ๋ณธ์ ์ธ ๋ณด์•ˆ์„ ์„ค์ •ํ•ด๋ณด์•˜๋Š”๋ฐ์š”. ํฌ๊ฒŒ ์–ด๋ ต์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

 

๊ทธ๋ฆฌ๊ณ  pod.yaml ๋ณด๋‹จ ์• ์ดˆ์— ์ด๋ฏธ์ง€๋ฅผ ๋งŒ๋“ค ๋•Œ ๋ณด์•ˆ์„ ์‹ ๊ฒฝ์จ์„œ ๋งŒ๋“œ๋Š” ๊ฒƒ์ด ๋” ์ผ๋ฐ˜์ ์ž…๋‹ˆ๋‹ค.

 

๊ทธ๋ž˜๋„ pod.yaml ์˜ securitContext ๋ฅผ ํ†ตํ•ด ๋ณด์•ˆ์„ ๊ฐ•ํ™”ํ•œ ํŒŒ๋“œ ๋ฐฐํฌ ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ์•Œ์•„๋ดค์Šต๋‹ˆ๋‹ค.

 

์œ„์— ๋‚˜์™€์žˆ๋Š” ์˜ต์…˜ ๋ง๊ณ ๋„ ๋” ๋‹ค์–‘ํ•œ securityContext ์˜ต์…˜๋“ค์ด ์กด์žฌํ•˜๋ฉฐ, AppArmor ๋‚˜ Falco, Trivy, OPA GateKeeper ๋ฅผ ํ†ตํ•ด์„œ ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค ๋ณด์•ˆ์„ ๋” ๊ฐ•ํ™”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

์ด์— ๋Œ€ํ•ด์„  ๋‚˜์ค‘์— ์ฐจ๊ทผ์ฐจ๊ทผ ์•Œ์•„๋ณด๋„๋ก ํ•˜์ฃ !

 

๊ทธ๋Ÿผ ์˜ค๋Š˜์€ ์—ฌ๊ธฐ๊นŒ์ง€!

 

profile on loading

Loading...