🐳 Container/K8S

🐳 Container/K8S

[K8s][Security] Mutating, Validation Admission Controller

[K8s][Security] Mutating, Validating이전에 Admission Controller에 대해 포스팅 한 적이 있다. [K8s][CKS] Admission Controller[K8s][CKS] Admission Controller쿠버네티스의 접근제어에는 크게 3가지가 있다.Authentication접속한 사람의 신분을 시스템이 인증Authorization누가 어떤 권한을 가지고 어떤 행동을 할 수 있는지 확인Admissionheywantodo.tistory.com Admission 컨트롤러는 요청이 인증(Athentic)되고 승인된 후에 Kubernetes API 서버에 대한 요청을 가로채어,객체를 변형(Mutating)하고 검증(Validating)한다. Admission Cont..

🐳 Container/K8S

[K8s] 쿠버네티스 컴포넌트 정리

[K8s] 쿠버네티스 컴포넌트 정리쿠버네티스는 복잡한 분산 시스템을 효과적으로 관리할 수 있는 다양한 컴포넌트로 구성되어 있다.크게 컨트롤 플레인(Control Plane)과 워커 노드(Worker Node)로 나뉜다. 각 컴포넌트는 특정한 역할을 맡고 있으며, 이들이 상호작용하여 쿠버네티스 클러스터를 구성한다.쿠버네티스 클러스터의 두 핵심 구성요소들의 역할과 기능에 대해 알아보자.  컨트롤 플레인(Control Plane)컨트롤 플레인은 클러스터의 중앙 제어 역할을 담당한다.클러스터 상태를 관리하고, 워커 노드에서 실행되는 애플리케이션의 스케줄링, 상태 모니터링, 유지보수를 수행한다. 컨트롤 플레인의 주요 요소는 다음과 같다. kube-apiserver클러스터와 상호작용하는 모든 요청의 관문 역할 쿠버..

🐳 Container/K8S

[K8s][CKS] Admission Controller

[K8s][CKS] Admission Controller쿠버네티스의 접근제어에는 크게 3가지가 있다.Authentication접속한 사람의 신분을 시스템이 인증Authorization누가 어떤 권한을 가지고 어떤 행동을 할 수 있는지 확인Admission Control인증과 권한 확인 이후에 추가적으로 요청 내용에 대한 검증이나 요청 내용을 수정 할 때 사용 이 중 쿠버네티스의 Admission Control은 요청이 인증되고 권한이 부여된 후에Kubernetes API 서버에 대한 승인한 요청과 관련된 객체를 수정 할 수 있다. Admission Controller PluginsAdmission Controller는 관리자의 특정 정책을 수행하는 주체라고 볼 수 있다.다시 말해 Admission Con..

🐳 Container/K8S

[K8s] SecurityContext

[K8s] SecurityContextSecurityContext는 pod 또는 컨테이너에 대한 권한 및 액세스 설정을 정의한다.SecurityContext는 다음과 같은 설정들이 포함된다.privileged나 unprivileged로 실행됨임의적 접근 제어: 파일과 같은 객체에 대한 접근 권한은 UID와 GID를 기준으로 결정SELinux: object에 보안 label이 할당됨Linux 기능: 프로세스에 일부 권한을 부여하지만, 루트 사용자의 모든 권한을 부여하진 않음AppArmor: 프로그램 프로필을 사용하여 개별 프로그램의 기능을 제한Seccomp: 프로세스의 시스템 호출을 필터링다음은 pod나 컨테이너에 대한 manifest 파일에 추가가 가능한 파라미터다.allowPrivilegeEscalat..

🐳 Container/K8S

[K8s][CKS] 감사(auditing)

[K8s][CKS] 감사(auditing)쿠버네티스의 감사는 클러스터의 작업 순서을 문서화하는 보안 관련 시간별 레코드 세트를 제공한다.클러스터는 사용자, 쿠버네티스 API를 사용하는 애플리케이션 및 컨프롤 플레인 자체에서 생성된 활동을 감사한다. 감사기록은 Kube-apiserver 컴포넌트 내에서 수명주기를 시작하며, 각 단계에서 각 요청은 감사 이벤트를 생성하고감사 이벤트는 특정 정책에 따라 사전 처리되고 백엔드에 기록된다. 감사 정책 감사 정책은 기록해야 하는 이벤트와 포함해야 하는 데이터에 대한 규칙을 정의한다.정의된 감사 수준은 다음과 같다.None이 규칙에 해당되는 이벤트는 로깅하지 않는다.Metadata요청 메타데이터는 로깅하지만 요청/응답 본문은 로깅하지 않는다.Request이벤트 메타데..

🐳 Container/K8S

[K8s][CKS] 컨테이너의 불변성 보장

[K8s][CKS] 컨테이너의 불변성 보장컨테이너는 기본적으로 변경이 불가능하지만, 내부 업데이트를 수행할 수 있다.파일을 pod에 직접 복사하거나, 셀에 접속해서 변경하는 등 다양한 방법으로 작업을 수행할 수 있다. 이를 방지하기 위해선, pod가 시작된 후에는 파일시스템에 쓸 수 없도록 해야한다.이 때 사용할 수 있는게 security contexts다. Security Contexts불변성 보장하기 위해 readOnlyRootFilesystem=true를 사용한다.다음과 같은 manifest file을 임의로 생성해보자.k run nginx --image=nginx --dry-run=client -o yaml > nginx.yaml 해당 yaml 파일의 container단에 securityConte..

🐳 Container/K8S

[K8s][CKS] TLS (Cipher-Suites)

[K8s][CKS] TLS (Cipher-Suites)쿠버네티스에서 클라이언트와 API 서버, 그리고 구성 요소간 통신은 상호 TLS를 통해 이루어진다.🤔 TLS(Transport Layer Security)?전송 계층 보안(TLS)은 인터넷 상의 커뮤니케이션을 위한 개인 정보와 데이터 보안을 용이하게 하기 위해 설계되어 널리 채택된 보안 프로토콜이다. TLS는 공개 키 암호화를 사용하여 작동하며, 새로운 암호가 발견될 때마다 적용이 되어야 한다. 쿠버네티스 보안을 목적으로하는 TLS 소프트웨어 패키지의 경우, 컨트롤 플레인의 구성요소와 etcd가 포함되며, 연결이 설정될 때 사용할 수 있는 암호를 제한하는 기능이 있다. 사용 가능한 암호를 강력한 최신 암호로 제한하면,악용이 가능한 이전 클라이언트 암..

🐳 Container/K8S

[K8s][CKS] Kube-bench

[K8s][CKS] Kube-benchCIS benchmarks인터넷 보안 센터(CIS)는 보안 권장 수준을 위한 벤치마크를 출시한다. CIS Kubernetes 벤치마크는 강력한 보안 수준 지원을 위한 쿠버네티스 구성 권장 수준 집합이다. CIS kubernetes 벤치마크는 쿠버네티스 배포용으로 작성되었으며, 배포 간 범용 적용이 가능하도록 고안되었다. CIS Kubernetes BenchmarksDownload our step-by-step checklist to secure your platform: An objective, consensus-driven security guideline for Kubernetes.www.cisecurity.org Kube-bench위 CIS의 벤치마크 요소를 하..

🐳 Container/K8S

[K8s][CKS] 런타임 클래스 (runtime class)

[K8s][CKS] 런타임 클래스 (runtime class)CKS 공부를 하면서 몰랐던 개념들을 정리 컨테이너 런타임파드가  노드에서 실행될 수 있도록 하기위해선 클러스터의 각 노드에 컨테이너 런타임을 설치해야한다.쿠버네티스 1.30에서는 컨테이너 런타임 인터페이스(CRI) 요구사항을 만족하는 런타임을 사용해야 한다. 공용 컨테이너 런타임은 다음과 같다.containerdCRI-O도커 엔진미란티스 컨테이너 런타임 런타임 클래스서로 다른 파드간에 런타임클래스를 설정하여 성능과 보안의 균형을 유지할 수 있다.예를 들어 하드웨어 가상화를 이용하는 컨테이너 런타임으로 파드를 실행하도록 예약할 수 있다. 또한, 런타임 클래스를 사용하여 컨테이너 런타임이 같으나 설정이 다른 여러 파드를 실행할 수 있다. 1. C..

🐳 Container/K8S

[K8s] Storage Class

[K8s] Storage Class스토리지 클래스는 관리자가 제공하는 스토리지의 classes를 설명할 수 있는 방법을 제공한다.클래스는 서비스의 품질 수준, 백업 정책, 클러스터 관리자가 정한 임의의 정책에 매핑될 수 있다. StorageClass 리소스 해당 스토리지클래스에 속하는 PV를 동적으로 프로비저닝할 때 사용된다.스토리지클래스의 이름은 중요하며, 사용자가 특정 클래스를 요청할 수 있는 방법으로 사용된다. apiVersion: storage.k8s.io/v1kind: StorageClassmetadata: name: standardprovisioner: kubernetes.io/aws-ebsparameters: type: gp2reclaimPolicy: RetainallowVolumeExp..

🐳 Container/K8S

[K8s] PV(Persistent Volume), PVC(Persistent Volume Claim)

[K8s] PV(Persistent Volume), PVC(Persistent Volume Claim)이전에 볼륨에 관련하여 포스팅을 하면서 PV/PVC에 대해 다뤘는데, 헷갈리는 개념이 있어 더 자세히 정리해보고자 한다. [K8s] 쿠버네티스(Kubernetes) Volume 관리쿠버네티스 (Kubernetes) Volume 관리 Kubernetes Volume 파드 내의 컨테이너가 종료되더라도 파일 시스템이 유지되도록 하고 싶다면? 쿠버네티스 볼륨을 정의해서 사용 가능 여러 개의 컨테이너가 볼륨을heywantodo.tistory.com 쿠버네티스 컨테이너 내의 디스크에 있는 파일은 임시적이며, 이는 몇가지 문제가 있다. 1. 컨테이너가 crash될 때 파일이 손실된다2. pod에서 같이 실행되는 컨테..

🐳 Container/K8S

[K8s] kubeconfig를 사용하여 다중 클러스터 접근 구성하기

[K8s] kubeconfig를 사용하여 다중 클러스터 접근 구성하기만약 여러 클러스터가 있고, 사용자와 구성요소가 다양한 방식으로 인증할 때,kubeconfig 파일들을 사용해서 클러스터, 사용자, 네임스페이스 및 인증 메커니즘에 대한 정보를 관리할 수 있다.기본적으로 kubectl은 $HOME/.kube 디렉터리에서 config라는 이름의 파일을 찾는다. 컨텍스트 (Context)kubeconfig에서 컨텍스트 요소는 편리한 이름으로 접속 매개 변수를 묶는데 사용한다.각 컨텍스트는 클러스터, 네임스페이스. 사용자라는 세 가지 매개변수를 가진다. kubectl config use-context위 명령어를 사용하면 컨텍스트를 선택 할 수있다. 클러스터, 사용자, 컨텍스트 정의만약 개발 작업을 위한 클러스..

heywantodo
'🐳 Container/K8S' 카테고리의 글 목록