CKS 문제 1
kubesec docker 이미지를 사용하여 지정된 YAML 매니페스트를 스캔하고 권장된 변경 사항을 편집 및 적용한 후 4점으로 통과했습니다.
kubesec-test.yaml
api버전: v1
종류: 포드
메타데이터:
이름: kubesec-demo
투기:
컨테이너:
- 이름: kubesec-demo
이미지: gcr.io/google-samples/node-hello:1.0
보안컨텍스트:
readOnlyRootFilesystem: true
kubesec-test.yaml
api버전: v1
종류: 포드
메타데이터:
이름: kubesec-demo
투기:
컨테이너:
- 이름: kubesec-demo
이미지: gcr.io/google-samples/node-hello:1.0
보안컨텍스트:
readOnlyRootFilesystem: true
CKS 문제 2
시뮬레이션
etcd에 저장된 비밀은 저장 시 안전하지 않습니다. etcdctl 명령 유틸리티를 사용하여 다음과 같은 비밀 값을 찾을 수 있습니다. ETCDCTL_API=3 etcdctl get /registry/secrets/default/cks-secret --cacert="ca.crt " --cert="server.crt" --key="server.key" 출력

암호화 구성을 사용하여 공급자 AES-CBC 및 ID를 사용하여 리소스 비밀을 보호하는 매니페스트를 생성하여 저장 중인 비밀 데이터를 암호화하고 모든 비밀이 새 구성으로 암호화되도록 합니다.
etcd에 저장된 비밀은 저장 시 안전하지 않습니다. etcdctl 명령 유틸리티를 사용하여 다음과 같은 비밀 값을 찾을 수 있습니다. ETCDCTL_API=3 etcdctl get /registry/secrets/default/cks-secret --cacert="ca.crt " --cert="server.crt" --key="server.key" 출력

암호화 구성을 사용하여 공급자 AES-CBC 및 ID를 사용하여 리소스 비밀을 보호하는 매니페스트를 생성하여 저장 중인 비밀 데이터를 암호화하고 모든 비밀이 새 구성으로 암호화되도록 합니다.
CKS 문제 3
클러스터: qa-클러스터
마스터 노드: 마스터 작업자 노드: Worker1
다음 명령을 사용하여 클러스터/구성 컨텍스트를 전환할 수 있습니다.
[desk@cli] $ kubectl config use-context qa-cluster
일:
네임스페이스 개발에서 실행 중인 포드 제품에 대한 액세스를 제한하기 위해 제한된 정책이라는 NetworkPolicy를 생성합니다.
다음 Pod만 Pod 제품 서비스에 연결하도록 허용합니다.
1. 네임스페이스 qa의 포드
2. 환경 라벨이 있는 포드: 모든 네임스페이스의 스테이지
마스터 노드: 마스터 작업자 노드: Worker1
다음 명령을 사용하여 클러스터/구성 컨텍스트를 전환할 수 있습니다.
[desk@cli] $ kubectl config use-context qa-cluster
일:
네임스페이스 개발에서 실행 중인 포드 제품에 대한 액세스를 제한하기 위해 제한된 정책이라는 NetworkPolicy를 생성합니다.
다음 Pod만 Pod 제품 서비스에 연결하도록 허용합니다.
1. 네임스페이스 qa의 포드
2. 환경 라벨이 있는 포드: 모든 네임스페이스의 스테이지
CKS 문제 4
주어진 Dockerfile을 분석하고 편집합니다.
우분투에서:최신
실행 apt-get 업데이트 -y
실행 apt-install nginx -y
복사 Entrypoint.sh /
진입점 ["/entrypoint.sh"]
사용자 루트
눈에 띄는 보안 모범 사례 문제인 파일에 있는 두 가지 지침을 수정합니다. 배포 매니페스트 파일 apiVersion: v1 종류: Pod 메타데이터를 분석하고 편집합니다.
이름: 보안-컨텍스트-데모-2
투기:
보안컨텍스트:
runAs사용자: 1000
컨테이너:
- 이름: sec-ctx-demo-2
이미지: gcr.io/google-samples/node-hello:1.0
보안컨텍스트:
실행 사용자: 0
특권: 사실
allowPrivilegeEscalation: false
눈에 띄는 보안 모범 사례 문제인 파일에 있는 두 필드를 수정합니다. 구성 설정을 추가하거나 제거하지 마세요. 기존 구성 설정만 수정하십시오. 작업에 권한이 없는 사용자가 필요할 때마다 사용자 ID 5487로 사용자 test-user를 사용하십시오.
우분투에서:최신
실행 apt-get 업데이트 -y
실행 apt-install nginx -y
복사 Entrypoint.sh /
진입점 ["/entrypoint.sh"]
사용자 루트
눈에 띄는 보안 모범 사례 문제인 파일에 있는 두 가지 지침을 수정합니다. 배포 매니페스트 파일 apiVersion: v1 종류: Pod 메타데이터를 분석하고 편집합니다.
이름: 보안-컨텍스트-데모-2
투기:
보안컨텍스트:
runAs사용자: 1000
컨테이너:
- 이름: sec-ctx-demo-2
이미지: gcr.io/google-samples/node-hello:1.0
보안컨텍스트:
실행 사용자: 0
특권: 사실
allowPrivilegeEscalation: false
눈에 띄는 보안 모범 사례 문제인 파일에 있는 두 필드를 수정합니다. 구성 설정을 추가하거나 제거하지 마세요. 기존 구성 설정만 수정하십시오. 작업에 권한이 없는 사용자가 필요할 때마다 사용자 ID 5487로 사용자 test-user를 사용하십시오.
CKS 문제 5
변경하기 전에 base:v1 태그를 사용하여 Dockerfile을 빌드하세요.
이제 주어진 Dockerfile을 분석하고 편집하십시오(ubuntu 16:04 기준).
파일에 있는 두 가지 지침인 보안 측면에서 확인 및 크기 축소 관점을 수정합니다.
도커파일:
우분투에서:최신
실행 apt-get 업데이트 -y
실행 apt install nginx -y
복사 Entrypoint.sh /
RUN useradd 우분투
진입점 ["/entrypoint.sh"]
사용자 우분투
진입점.sh
#!/bin/bash
echo "안녕하세요 CKS입니다"
Dockerfile을 수정한 후 base:v2 태그를 사용하여 docker-image를 빌드합니다.
이제 주어진 Dockerfile을 분석하고 편집하십시오(ubuntu 16:04 기준).
파일에 있는 두 가지 지침인 보안 측면에서 확인 및 크기 축소 관점을 수정합니다.
도커파일:
우분투에서:최신
실행 apt-get 업데이트 -y
실행 apt install nginx -y
복사 Entrypoint.sh /
RUN useradd 우분투
진입점 ["/entrypoint.sh"]
사용자 우분투
진입점.sh
#!/bin/bash
echo "안녕하세요 CKS입니다"
Dockerfile을 수정한 후 base:v2 태그를 사용하여 docker-image를 빌드합니다.