"Killer Shell CKS - AppArmor"의 두 판 사이의 차이

(새 문서: ==개요== ;Killer Shell CKS - AppArmor * https://killercoda.com/killer-shell-cks/scenario/apparmor * node01 노드에 아래 AppArmor 프로파일이 존재하는지 확인하고...)
 
8번째 줄: 8번째 줄:
** tcpdump
** tcpdump


==확인==
* 목표
** node01에 로드되어 있는 AppArmor 프로파일 목록에서 지정된 항목이 실제 존재하는지 확인하고, 존재하는 이름만 controlplane 노드의 <code>/root/profiles.txt</code>에 기록
** 네임스페이스 <code>moon</code>의 Deployment <code>spacecow</code>가 AppArmor 프로파일 <code>docker-default</code>를 사용하도록 잘못된 설정을 수정
 
== node01의 AppArmor 프로파일 확인==
요구사항: 다음 이름 중 node01에 실제로 존재하는 프로파일만 골라 controlplane 노드의 <code>/root/profiles.txt</code>에 기록
* docker-default
* snap.lxd.lxc
* ftpd
* tcpdump
 
node01에서 로드된 AppArmor 프로파일을 조회한다.
node01에서 로드된 AppArmor 프로파일을 조회한다.
<syntaxhighlight lang='console'>
<syntaxhighlight lang='console'>
28번째 줄: 38번째 줄:
* tcpdump
* tcpdump


==파일 생성==
controlplane 노드에서 파일을 생성한다.
controlplane 노드에서 존재하는 프로파일 이름만 포함하여 파일을 생성한다.
<syntaxhighlight lang='console'>
<syntaxhighlight lang='console'>
controlplane:~$ cat /root/profiles.txt
controlplane:~$ cat /root/profiles.txt
docker-default
docker-default
tcpdump
tcpdump
</syntaxhighlight>
==작업 2: 잘못된 AppArmor 설정 수정==
* 대상: 네임스페이스 <code>moon</code>의 Deployment <code>spacecow</code>
* 요구사항: AppArmor 프로파일을 <code>docker-default</code>로 설정(오타 또는 잘못된 이름을 <code>docker-default</code>로 수정)
수정(권장: 최신 필드 사용)
<syntaxhighlight lang='console'>
controlplane:~$ kubectl -n moon edit deploy spacecow
</syntaxhighlight>
<syntaxhighlight lang='yaml'>
apiVersion: apps/v1
kind: Deployment
metadata:
  name: spacecow
  namespace: moon
spec:
  replicas: 3
  selector:
    matchLabels:
      app: spacecow
  template:
    metadata:
      labels:
        app: spacecow
    spec:
        ...
      securityContext:
        appArmorProfile:
          #localhostProfile: docker
          localhostProfile: docker-default
          type: Localhost
      containers:
      - name: httpd
        image: httpd:2.4.52-alpine
</syntaxhighlight>
노드에서 확인
<syntaxhighlight lang='console'>
controlplane:~$ ssh node01
Last login: Tue Nov 18 10:39:37 2025 from 10.244.5.104
node01:~$ crictl ps | grep spacecow
637e0052b30c9      294cecd6c7790      27 seconds ago      Running            httpd              0                  af20f02706652      spacecow-866bd945c-cjvfm  moon
9d0407781d2c3      294cecd6c7790      29 seconds ago      Running            httpd              0                  828362d6e4eee      spacecow-866bd945c-gpmpb  moon
3529274133891      294cecd6c7790      30 seconds ago      Running            httpd              0                  a2b3340c11d0f      spacecow-866bd945c-t8xvv  moon
node01:~$ crictl inspect 637e0052b30c9 | grep apparmor
          "apparmor": {
          "apparmor_profile": "localhost/docker-default",
        "apparmorProfile": "docker-default",
</syntaxhighlight>
</syntaxhighlight>



2025년 11월 18일 (화) 19:48 판

1 개요

Killer Shell CKS - AppArmor
  • 목표
    • node01에 로드되어 있는 AppArmor 프로파일 목록에서 지정된 항목이 실제 존재하는지 확인하고, 존재하는 이름만 controlplane 노드의 /root/profiles.txt에 기록
    • 네임스페이스 moon의 Deployment spacecow가 AppArmor 프로파일 docker-default를 사용하도록 잘못된 설정을 수정

2 node01의 AppArmor 프로파일 확인

요구사항: 다음 이름 중 node01에 실제로 존재하는 프로파일만 골라 controlplane 노드의 /root/profiles.txt에 기록

  • docker-default
  • snap.lxd.lxc
  • ftpd
  • tcpdump

node01에서 로드된 AppArmor 프로파일을 조회한다.

controlplane:~$ ssh node01
Last login: Mon Feb 10 22:06:42 2025 from 10.244.0.131

node01:~$ apparmor_status | grep docker-default
   docker-default
node01:~$ apparmor_status | grep snap.lxd.lxc  
node01:~$ apparmor_status | grep ftpd        
node01:~$ apparmor_status | grep tcpdump
   tcpdump
node01:~$ 
node01:~$ exit

위 결과에 따르면 node01에는 다음 프로파일이 존재한다.

  • docker-default
  • tcpdump

controlplane 노드에서 파일을 생성한다.

controlplane:~$ cat /root/profiles.txt
docker-default
tcpdump

3 작업 2: 잘못된 AppArmor 설정 수정

  • 대상: 네임스페이스 moon의 Deployment spacecow
  • 요구사항: AppArmor 프로파일을 docker-default로 설정(오타 또는 잘못된 이름을 docker-default로 수정)

수정(권장: 최신 필드 사용)

controlplane:~$ kubectl -n moon edit deploy spacecow
apiVersion: apps/v1
kind: Deployment
metadata:
  name: spacecow
  namespace: moon
spec:
  replicas: 3
  selector:
    matchLabels:
      app: spacecow
  template:
    metadata:
      labels:
        app: spacecow
    spec:
        ...
      securityContext:
        appArmorProfile:
          #localhostProfile: docker
          localhostProfile: docker-default
          type: Localhost
      containers:
      - name: httpd
        image: httpd:2.4.52-alpine

노드에서 확인

controlplane:~$ ssh node01
Last login: Tue Nov 18 10:39:37 2025 from 10.244.5.104

node01:~$ crictl ps | grep spacecow
637e0052b30c9       294cecd6c7790       27 seconds ago      Running             httpd               0                   af20f02706652       spacecow-866bd945c-cjvfm   moon
9d0407781d2c3       294cecd6c7790       29 seconds ago      Running             httpd               0                   828362d6e4eee       spacecow-866bd945c-gpmpb   moon
3529274133891       294cecd6c7790       30 seconds ago      Running             httpd               0                   a2b3340c11d0f       spacecow-866bd945c-t8xvv   moon

node01:~$ crictl inspect 637e0052b30c9 | grep apparmor
          "apparmor": {
          "apparmor_profile": "localhost/docker-default",
        "apparmorProfile": "docker-default",

4 같이 보기

문서 댓글 ({{ doc_comments.length }})
{{ comment.name }} {{ comment.created | snstime }}