CKS 문제 1
클러스터 작업자 노드에서 준비된 AppArmor 프로필을 적용합니다.
#include <조정 가능/전역>
프로필 nginx-deny flags=(attach_disconnected) {
#include <추상화/기본>
파일,
# 모든 파일 쓰기를 거부합니다.
거부 /** w,
}
EOF'
#include <조정 가능/전역>
프로필 nginx-deny flags=(attach_disconnected) {
#include <추상화/기본>
파일,
# 모든 파일 쓰기를 거부합니다.
거부 /** w,
}
EOF'
CKS 문제 2
네임스페이스에서 권한 있는 포드 생성을 방지하는 PSP를 생성합니다.
권한 있는 포드 생성을 방지하는 prevent-privileged-policy라는 새 PodSecurityPolicy를 생성합니다.
네임스페이스 기본값에 psp-sa라는 새 ServiceAccount를 만듭니다.
새로 생성된 포드 보안 정책 prevent-privileged-policy를 사용하는 prevent-role이라는 새 ClusterRole을 생성합니다.
생성된 ClusterRole 방지 역할을 생성된 SA psp-sa에 바인딩하는 prevent-role-binding이라는 새 ClusterRoleBinding을 생성합니다.
또한 권한 있는 포드 생성을 시도하여 구성이 작동하는지 확인하지 않으면 실패해야 합니다.
권한 있는 포드 생성을 방지하는 prevent-privileged-policy라는 새 PodSecurityPolicy를 생성합니다.
네임스페이스 기본값에 psp-sa라는 새 ServiceAccount를 만듭니다.
새로 생성된 포드 보안 정책 prevent-privileged-policy를 사용하는 prevent-role이라는 새 ClusterRole을 생성합니다.
생성된 ClusterRole 방지 역할을 생성된 SA psp-sa에 바인딩하는 prevent-role-binding이라는 새 ClusterRoleBinding을 생성합니다.
또한 권한 있는 포드 생성을 시도하여 구성이 작동하는지 확인하지 않으면 실패해야 합니다.
CKS 문제 3
클러스터 작업자 노드에서 준비된 AppArmor 프로필을 적용합니다.
#include <조정 가능/전역>
프로필 docker-nginx flags=(attach_disconnected,mediate_deleted) {
#include <추상화/기본>
네트워크 인터넷 TCP,
네트워크 인터넷 UDP,
네트워크 Inet ICMP,
네트워크 원시 거부,
네트워크 패킷 거부,
파일,
마운트 해제,
/bin/** wl 거부,
/boot/** wl 거부,
/dev/** wl 거부,
/etc/** wl 거부,
/home/** wl 거부,
/lib/** wl 거부,
/lib64/** wl 거부,
/media/** wl 거부,
/mnt/** wl 거부,
/opt/** wl 거부,
/proc/** wl 거부,
/root/** wl 거부,
/sbin/** wl 거부,
/srv/** wl 거부,
/tmp/** wl 거부,
/sys/** wl 거부,
/usr/** wl 거부,
감사 /** w,
/var/run/nginx.pid w,
/usr/sbin/nginx ix,
/bin/dash mrwklx 거부,
/bin/sh mrwklx 거부,
/usr/bin/top mrwklx 거부,
능력치,
기능 dac_override,
기능 setuid,
기능 setgid,
기능 net_bind_service,
거부 @{PROC}/* w, # /proc에 있는 모든 파일에 대한 쓰기를 직접 거부합니다(하위 디렉토리가 아님).
# /proc/<number>/** 또는 /proc/sys/**에 없는 파일에 대한 쓰기 거부
거부 @{PROC}/{[^1-9],[^1-9][^0-9],[^1-9s][^0-9y][^0-9s],[^1- 9][^0-9][^0-9][^0-9]*}/** w, 거부 @{PROC}/sys/[^k]** w, # 거부 /proc/sys 제외 /proc/sys/k* (효과적으로 /proc/sys/kernel) 거부 @{PROC}/sys/kernel/{?,??,[^s][^h][^m]**} w, # /proc/sys/kernel/에서 shm*을 제외한 모든 것을 거부합니다. @{PROC}/sysrq-trigger rwklx를 거부하고 @{PROC}/mem rwklx를 거부하고 @{PROC}/kmem rwklx를 거부하고 @{PROC}/kcore rwklx를 거부합니다. , 마운트 거부, /sys/[^f]*/** wklx 거부, /sys/f[^s]*/** wklx 거부, /sys/fs/[^c]*/** wklx 거부, 거부 /sys/fs/c[^g]*/** wklx, 거부 /sys/fs/cg[^r]*/** wklx, /sys/firmware/** rwklx 거부, /sys/kernel/security 거부 /** rwklx,
}
AppArmor 프로필을 포함하도록 준비된 매니페스트 파일을 편집합니다.
API 버전: v1
종류: 포드
메타데이터:
이름: 의류 포드
투기:
컨테이너:
- 이름: 의류 포드
이미지: nginx
마지막으로 매니페스트 파일을 적용하고 여기에 지정된 Pod를 만듭니다.
확인: ping, top, sh 명령을 사용해 보십시오.
#include <조정 가능/전역>
프로필 docker-nginx flags=(attach_disconnected,mediate_deleted) {
#include <추상화/기본>
네트워크 인터넷 TCP,
네트워크 인터넷 UDP,
네트워크 Inet ICMP,
네트워크 원시 거부,
네트워크 패킷 거부,
파일,
마운트 해제,
/bin/** wl 거부,
/boot/** wl 거부,
/dev/** wl 거부,
/etc/** wl 거부,
/home/** wl 거부,
/lib/** wl 거부,
/lib64/** wl 거부,
/media/** wl 거부,
/mnt/** wl 거부,
/opt/** wl 거부,
/proc/** wl 거부,
/root/** wl 거부,
/sbin/** wl 거부,
/srv/** wl 거부,
/tmp/** wl 거부,
/sys/** wl 거부,
/usr/** wl 거부,
감사 /** w,
/var/run/nginx.pid w,
/usr/sbin/nginx ix,
/bin/dash mrwklx 거부,
/bin/sh mrwklx 거부,
/usr/bin/top mrwklx 거부,
능력치,
기능 dac_override,
기능 setuid,
기능 setgid,
기능 net_bind_service,
거부 @{PROC}/* w, # /proc에 있는 모든 파일에 대한 쓰기를 직접 거부합니다(하위 디렉토리가 아님).
# /proc/<number>/** 또는 /proc/sys/**에 없는 파일에 대한 쓰기 거부
거부 @{PROC}/{[^1-9],[^1-9][^0-9],[^1-9s][^0-9y][^0-9s],[^1- 9][^0-9][^0-9][^0-9]*}/** w, 거부 @{PROC}/sys/[^k]** w, # 거부 /proc/sys 제외 /proc/sys/k* (효과적으로 /proc/sys/kernel) 거부 @{PROC}/sys/kernel/{?,??,[^s][^h][^m]**} w, # /proc/sys/kernel/에서 shm*을 제외한 모든 것을 거부합니다. @{PROC}/sysrq-trigger rwklx를 거부하고 @{PROC}/mem rwklx를 거부하고 @{PROC}/kmem rwklx를 거부하고 @{PROC}/kcore rwklx를 거부합니다. , 마운트 거부, /sys/[^f]*/** wklx 거부, /sys/f[^s]*/** wklx 거부, /sys/fs/[^c]*/** wklx 거부, 거부 /sys/fs/c[^g]*/** wklx, 거부 /sys/fs/cg[^r]*/** wklx, /sys/firmware/** rwklx 거부, /sys/kernel/security 거부 /** rwklx,
}
AppArmor 프로필을 포함하도록 준비된 매니페스트 파일을 편집합니다.
API 버전: v1
종류: 포드
메타데이터:
이름: 의류 포드
투기:
컨테이너:
- 이름: 의류 포드
이미지: nginx
마지막으로 매니페스트 파일을 적용하고 여기에 지정된 Pod를 만듭니다.
확인: ping, top, sh 명령을 사용해 보십시오.
CKS 문제 4
컨테이너 이미지 스캐너가 클러스터에 설정됩니다.
디렉토리에 불완전한 구성이 주어졌을 때
/etc/kubernetes/confcontrol 및 HTTPS 끝점 https://test-server.local.8081/image_policy가 있는 기능적 컨테이너 이미지 스캐너
디렉토리에 불완전한 구성이 주어졌을 때
/etc/kubernetes/confcontrol 및 HTTPS 끝점 https://test-server.local.8081/image_policy가 있는 기능적 컨테이너 이미지 스캐너
CKS 문제 5
시뮬레이션
준비된 runsc라는 런타임 핸들러를 사용하여 gvisor-rc라는 RuntimeClass를 만듭니다.
네임스페이스 서버에서 gVisor 런타임 클래스에서 실행할 이미지 Nginx의 포드를 만듭니다.
준비된 runsc라는 런타임 핸들러를 사용하여 gvisor-rc라는 RuntimeClass를 만듭니다.
네임스페이스 서버에서 gVisor 런타임 클래스에서 실행할 이미지 Nginx의 포드를 만듭니다.
