이번 글에서는 CIS 벤치마크가 무엇인지, 그리고 이를 통해 Ubuntu 서버의 보안을 강화하는 방법을 다루겠습니다. 시스템 관리자라면 이미 보안 감사(Security Audits)의 중요성을 잘 알고 계실 겁니다. 하지만 새로운 서버를 프로덕션 환경에 배포하기 전에
이번 글에서는 Kubernetes 관점에서 CIS 벤치마크를 살펴보겠습니다. 이전 글에서 언급했듯이, CIS(Center for Internet Security) 웹사이트는 다양한 벤더를 위한 사이버 보안 벤치마크를 제공합니다. 여기에는 여러가지 운영 체제, 퍼블릭 클
Kubernetes 클러스터의 보안을 유지하는 것은 중요합니다. 이번 글에서는 Aqua Security의 오픈 소스 도구인 Kube-bench를 사용하여 Kubernetes에 대한 CIS 벤치마크 평가를 수행하는 방법을 알아보겠습니다. Kube-bench는 Kubern
Kubernetes는 프로덕션 환경에서 애플리케이션을 운영하는 데 널리 사용되는 플랫폼이지만, 이를 안전하게 유지하는 것이 매우 중요합니다. 이 글에서는 Kubernetes 클러스터를 안전하게 관리하고 보호하기 위한 주요 요소들을 살펴보겠습니다.Kubernetes 클러
Kubernetes는 현대적인 컨테이너 오케스트레이션 시스템으로, 여러 노드와 구성 요소로 구성된 클러스터 환경에서 애플리케이션을 관리하고 배포하는데 사용됩니다. 이러한 클러스터에서는 다양한 사용자와 애플리케이션들이 접근하며, 이들 접근을 보호하기 위한 인증(Authe
이번 글에서는 쿠버네티스의 중요한 보안 개념 중 하나인 ServiceAccount에 대해 알아보겠습니다. 쿠버네티스에는 두 가지 유형의 계정이 있습니다:사용자 계정: 사람이 클러스터에 접근하여 관리 작업을 수행하는 데 사용됩니다.서비스 계정: 애플리케이션이 쿠버네티스
이번 글에서는 SSL/TLS 인증서에 대해 알아보겠습니다. SSL/TLS 인증서는 무엇인지, 왜 필요한지, 그리고 웹 서버와 SSH를 보호하기 위해 인증서를 어떻게 구성할 수 있는지 기본적인 내용을 다루겠습니다.TLS 인증서는 거래 중 두 당사자 간의 신뢰를 보장하는
이번 글에서는 Kubernetes 클러스터의 각 구성 요소가 어떻게 TLS 인증서를 사용하여 안전한 통신을 구현하는지 설명하겠습니다.먼저, TLS 인증서의 기본 개념을 간단히 복습해 보겠습니다:서버 인증서: 서버의 신원을 확인하고 암호화된 연결을 설정하는 데 사용됩니다
이번 글에서는 Kubernetes 클러스터 내에서 사용되는 인증서를 생성하는 과정에 대해 소개합니다. 이 과정은 Kubernetes 클러스터의 각 구성 요소가 서로를 신뢰하고 안전하게 통신할 수 있도록 보장하는 중요한 단계입니다.먼저, CA (Certificate Au
이번 글에서는 Kubernetes의 KubeConfig에 대해 살펴보겠습니다. KubeConfig는 Kubernetes 클러스터에 접근하는 데 필요한 인증 정보와 설정을 관리하는 중요한 도구입니다. 여기에서는 KubeConfig 파일의 구성, 사용 방법, 그리고 관련된
쿠버네티스(Kubernetes)는 컨테이너 오케스트레이션 시스템으로, 클러스터 내의 리소스를 관리하고 조정하는 데 사용됩니다. 쿠버네티스 클러스터와 상호작용하기 위해서는 API(Application Programming Interface)를 이해하는 것이 중요합니다.
권한 부여(Authorization)는 클러스터 관리자가 특정 사용자나 애플리케이션이 어떤 작업을 수행할 수 있는지를 정의하는 과정입니다.Kubernetes 클러스터는 다양한 사용자 그룹과 애플리케이션이 함께 동작하며, 각각의 역할과 책임이 다릅니다. 예를 들어, 개발
Kubernetes는 다양한 사용자와 서비스가 공존하는 환경에서 안전하고 효율적인 자원 관리를 위해 역할 기반 접근 제어 (Role-Based Access Control, RBAC) 메커니즘을 제공합니다. 이 기능을 통해 사용자나 Service Account에게 특정
Kubernetes는 컨테이너 오케스트레이션을 위한 매우 강력한 플랫폼으로, 리소스 관리와 보안을 위한 다양한 매커니즘을 제공합니다. 이번 글에서는 Kubernetes의 중요한 보안 개념 중 하나인 클러스터 역할(Cluster Roles)과 클러스터 역할 바인딩(Clu
Kubernetes 클러스터의 워커 노드에서 Kubelet은 배의 선장과 같습니다. Kubelet은 컨테이너를 적재하고 내리는 작업을 지휘하며, 클러스터의 상태를 지속적으로 모니터링하고 보고하는 역할을 합니다. 하지만 선장이 잘못된 지시를 받는다면 클러스터 전체의 안전
Kubernetes 관리자는 클러스터와의 상호작용을 간소화하고 효율적으로 하기 위해 다양한 도구를 사용합니다. 그 중에서도 Kubectl 유틸리티는 Kubernetes API 서버와 상호작용할 수 있게 해주는 중요한 역할을 합니다. 이번 글에서는 Kubectl 프록시와
Kubernetes는 애플리케이션 관리를 위한 강력한 오케스트레이션 도구로 잘 알려져 있습니다. Kubernetes의 하위 프로젝트 중 하나인 Kubernetes 대시보드는 웹 기반 그래픽 사용자 인터페이스(GUI)로, 클러스터의 다양한 활동을 모니터링하고 리소스를 프
Kubernetes 대시보드는 클러스터 내 리소스의 관리 및 모니터링을 위한 강력한 도구입니다. 하지만 이를 안전하게 사용하려면 적절한 인증 메커니즘을 설정하는 것이 중요합니다. 이번 글에서는 Kubernetes 대시보드에 접근할 때 사용할 수 있는 두 가지 주요 인증
Kubernetes 클러스터를 배포하기 전에 플랫폼 바이너리를 검증하는 것은 매우 중요합니다. 이 글에서는 Kubernetes 바이너리를 다운로드하고, 안전하게 검증하는 방법을 단계별로 설명하겠습니다. 중간 공격자가 파일을 변경할 가능성이 있기 때문에 다운로드한 파일이
이번 글에서는 Kubernetes의 릴리스와 버전에 대해 다뤄보겠습니다. Kubernetes 클러스터를 설치할 때, 특정 버전의 Kubernetes를 설치하게 됩니다. 예를 들어, kubectl get nodes 명령어를 실행하면 현재 설치된 Kubernetes 버전을
이번 글에서는 Kubernetes 클러스터 업그레이드 과정을 자세히 살펴보겠습니다.Kubernetes의 구성 요소들은 각기 다른 릴리스 버전을 가질 수 있습니다. 중요한 점은 큐브 API 서버(kube-apiserver)가 ControlPlane의 주요 구성 요소로,
이번 글에서는 네트워크 정책에 대해 다루겠습니다. 네트워킹과 보안의 기본 개념부터 시작해 Kubernetes에서 네트워크 정책을 설정하고 사용하는 방법까지 차근차근 설명드리겠습니다.먼저, 웹 애플리케이션과 데이터베이스 서버를 통한 트래픽 흐름에 대한 간단한 예시로 시작
쿠버네티스 네트워크 정책은 클러스터 내 포드 간 트래픽을 세밀하게 제어할 수 있게 해줍니다. 이번 글에서는 네트워크 정책을 사용하여 데이터베이스 포드를 보호하는 방법을 단계별로 살펴보겠습니다. 우리의 목표는 API 파드를 제외한 모든 파드가 데이터베이스 파드에 접근하지
이번 글에서는 Kubernetes의 Ingress에 대해 다뤄보겠습니다. 서비스는 Kubernetes에서 POD들 간의 네트워크 접근을 제공하는 기본 구성 요소입니다. 서비스는 다양한 유형이 있으며, 각각의 역할과 특징이 있습니다.ClusterIP 서비스는 클러스터 내
이번 글에서는 Docker Daemon 서비스를 설정하고 관리하는 방법을 다뤄보겠습니다. Docker 서비스를 시작, 중지 및 상태 확인하는 방법과 더불어 Docker 데몬을 직접 실행하고 구성하는 방법을 알아보겠습니다.우리는 Linux 환경에서 Docker를 관리하고
Docker는 현대 애플리케이션 개발과 배포에 있어서 매우 중요한 도구입니다. 그러나 Docker 데몬에 대한 보안이 적절히 설정되지 않은 경우 심각한 보안 문제가 발생할 수 있습니다. 이 글에서는 Docker 데몬을 안전하게 보호하는 방법에 대해 알아보겠습니다.Doc
이번 글에서는 최소 권한 원칙(Principle of Least Privilege)에 대해 살펴보겠습니다. 이를 이해하기 위해 국제선 항공편이 매시간 출발하고 도착하는 공항을 비유로 사용해보겠습니다. 공항의 다양한 기관들이 각각의 역할을 수행하기 위해 필요한 최소한의
보안은 IT 시스템 운영에서 가장 중요한 요소 중 하나입니다. 호스트의 공격 표면을 줄이는 것은 시스템의 안정성을 높이는 데 핵심적인 역할을 합니다. 이번 글에서는 호스트의 공격 표면을 줄이는 데 필요한 기본 원칙과 실천 방안을 살펴보겠습니다.공격 표면이란 시스템에서
Kubernetes 클러스터의 노드를 보호하기 위해 접근을 제한하고 공격 표면을 최소화하는 방법에 대해 알아보겠습니다.표준적인 관행으로 ControlPlane과 노드의 인터넷 노출을 제한하는 것이 중요합니다. 관리형 Kubernetes 서비스를 클라우드에서 실행 중인
원격 서버 관리의 필수 도구인 SSH(Secure Shell)는 강력한 보안 기능을 제공하지만, 기본 설정으로는 잠재적 보안 취약점이 존재할 수 있습니다. 이번 포스트에서는 SSH 서비스를 보호하고 노트의 보안을 향상시키는 방법을 단계별로 살펴보겠습니다.SSH는 원격
Linux 시스템 관리에서 root 사용자로 직접 로그인하는 것은 보안상의 이유로 권장되지 않습니다. 이 글에서는 root 사용자 권한으로 명령을 실행해야 하는 경우에 어떻게 Sudo를 활용할 수 있는지에 대해 설명하겠습니다.root 사용자로 직접 로그인하는 것은 시스
안녕하세요, 이번 글에서는 시스템을 단순한 상태로 유지하기 위해 필요한 소프트웨어만 설치하는 방법에 대해 알아보겠습니다. 이는 시스템 보안과 효율성을 높이는 데 매우 중요합니다.먼저, 노드에서 실행 중인 소프트웨어를 살펴봅시다. 시스템을 가능한 한 가볍게 유지하는 것은
리눅스 관리에서 커널 모듈 관리는 시스템 기능을 강화하고 보안을 유지하는 데 중요한 역할을 합니다. 커널 모듈은 리눅스 커널이 동적으로 확장 기능을 추가할 수 있게 해주는 코드 조각입니다. 특히 새로운 하드웨어 장치 지원이나 특정 기능 활성화를 가능하게 합니다.커널 모
이번 포스팅에서는 서버의 네트워크 접근을 제한하는 데 사용할 수 있는 도구들을 소개합니다.서버는 서비스와 프로세스가 들어오는 연결을 수신하기 위해 특정 포트에 바인딩됩니다. 예를 들어, SSH 서버가 실행 중일 때 서버의 포트 22에 바인딩됩니다. /etc/servic
이번 포스팅에서는 UFW(Uncomplicated Firewall)에 대해 알아보겠습니다. UFW는 사용하기 간편한 방화벽 도구로, 복잡한 IP tables 명령어를 사용하지 않고도 리눅스 시스템에서 네트워크 접근을 효과적으로 관리할 수 있습니다.우리는 Ubuntu 서
시스템 호출(system calls)은 애플리케이션이나 프로세스가 운영 체제의 기능을 활용하기 위해 커널과 소통하는 기본적인 메커니즘입니다. 이번 글에서는 Linux 운영 체제에서 애플리케이션이 실행될 때 내부적으로 어떤 일이 발생하는지, 그리고 시스템 호출이 어떻게
Aqua Security에서 개발한 오픈 소스 도구인 Tracee에 대해 알아보겠습니다. Tracee는 컨테이너에서 시스템 호출을 추적할 수 있는 도구로, eBPF(Extended Berkeley Packet Filter) 기술을 활용하여 런타임에 시스템을 모니터링합니
현대의 애플리케이션은 사용자 공간에서 실행되며, 다양한 시스템 콜(SYSCALL)을 통해 커널 자원에 접근합니다. 현재 리눅스에는 약 435개의 SYSCALL이 존재하지만, 모든 애플리케이션이 이 많은 SYSCALL을 모두 필요로 하지는 않습니다. 오히려 모든 SYSC
최근 Kubernetes 환경에서 컨테이너 보안을 강화하기 위해 SECCOMP 프로필을 사용하는 방법에 대해 알아보겠습니다. 이 글에서는 Docker와 Kubernetes에서 SECCOMP 프로필을 활용하여 시스템 호출을 제어하고 보안을 강화하는 방법을 단계별로 살펴보
AppArmor에 대해 알아보고, 이를 사용하여 애플리케이션의 보안을 강화하는 방법을 소개하겠습니다. 이전 글에서는 SECCOMP 프로필을 사용하여 Kubernetes에서 Pod의 시스템 호출을 제한하는 방법에 대해 알아보았습니다. SECCOMP는 시스템 호출을 제한
이번 글에서는 AppArmor 프로필을 생성하는 방법을 알아보겠습니다. 이전 글에서 몇 가지 AppArmor 프로필 예제를 보았지만, 이번에는 특정 애플리케이션에 맞춘 사용자 정의 프로필을 처음부터 만드는 과정을 살펴보겠습니다.간단한 bash 스크립트를 사용하여 /op
Kubernetes는 애플리케이션 배포 및 관리에 강력한 도구입니다. 보안이 중요한 환경에서는 애플리케이션이 할 수 있는 작업을 제한하는 것이 필요합니다. 이번 글에서는 Kubernetes에서 AppArmor 프로필을 사용하여 컨테이너의 보안을 강화하는 방법에 대해 알
Kubernetes 환경에서 포드를 실행할 때 기본 설정으로는 컨테이너 내에서 날짜를 변경할 수 없습니다. 이 문제는 Linux 기능(capabilities)과 관련이 있습니다. 이번 글에서는 Linux 기능의 기본 사항과 Kubernetes 포드에서 이러한 기능을 관
Kubernetes에서 컨테이너는 파드(pod)로 캡슐화됩니다. 파드 내의 컨테이너는 다양한 보안 설정을 필요로 할 수 있습니다. 이러한 보안 설정을 관리하기 위해 Kubernetes는 보안 컨텍스트(Security Contexts)를 제공합니다. 보안 컨텍스트는 컨테
Kubernetes 클러스터 운영 시, kubectl 유틸리티를 사용해 다양한 작업을 수행하며, 파드 생성 등의 요청을 API 서버로 전달하는 과정을 이미 경험해 보셨을 것입니다. 이 글에서는 어드미션 컨트롤러(admission controller)에 대해 알아보고,
Kubernetes는 클러스터 내의 자원을 관리하고 제어하기 위해 다양한 어드미션 컨트롤러를 제공합니다. 이들은 클러스터 리소스의 생성, 수정, 삭제 등의 작업을 처리하며, 이를 통해 보안, 정책 준수, 자원 관리 등을 관리할 수 있습니다. 이번 글에서는 Kuberne
Kubernetes 환경에서의 보안은 중요한 문제입니다. 특히, Pod 보안은 클러스터의 안정성과 안전성을 보장하기 위해 반드시 고려해야 할 요소입니다. 이번 글에서는 Kubernetes에서의 Pod 보안을 위한 정책과 구현 방식의 변화를 중심으로 설명하겠습니다. Po
Kubernetes 개선 제안서(KEP) 2579는 Pod 보안 정책(PSP)의 대체 기능을 구축하기 위해 초안으로 작성되었습니다. 이는 새로운 클러스터에서 안전하게 활성화되고, 사용하기 쉽고, 확장 가능한 솔루션을 제공하기 위한 것입니다. 이러한 요구 사항 중 일부는
웹 애플리케이션 보안은 다양한 층위에서 이루어지며, 그중 사용자와 웹 포털 간의 안전한 통신은 매우 중요한 부분입니다. 사용자는 시스템에 로그인하고 자신은 주문 내역을 확인하거나 새로운 주문을 할 수 있어야 합니다. 이번 글에서는 인증과 권한 부여의 차이를 이해하고,
Kubernetes는 컨테이너화된 애플리케이션의 배포, 확장, 관리에 널리 사용되는 플랫폼입니다. 그러나 이러한 복잡한 환경에서는 정책 준수 및 보안이 중요한 과제가 됩니다. 이를 해결하기 위해 Open Policy Agent(OPA)와 GateKeeper를 활용한 새
이번 글에서는 Kubernetes에서 시크릿(Secrets)을 사용하는 방법에 대해 알아보겠습니다. 시크릿은 MySQL 비밀번호와 같은 민감한 정보를 안전하게 관리하는 데 매우 유용합니다. 이를 실제 예제와 함께 단계별로 설명해드리겠습니다.간단한 파이썬 웹 애플리케이션
컨테이너는 애플리케이션을 격리하고 배포하는 강력한 도구로, 가상 머신보다 가벼운 오버헤드를 제공합니다. 그러나 컨테이너의 보안 문제는 중요한 고려 사항이며, 이를 개선하기 위해 샌드박싱 기법을 활용할 수 있습니다. 이 글에서는 샌드박싱의 개념과 가상 머신과의 비교를 통
컨테이너화된 애플리케이션의 보안을 강화하기 위해 구글에서 제공하는 gVisor에 대해 살펴보겠습니다. 이 글에서는 컨테이너 샌드박싱을 달성하기 위한 대체 기술들을 검토하고, gVisor가 어떤 방식으로 작동하며 이를 통해 어떻게 보안을 강화하는지에 대해 설명합니다.
컨테이너 기술은 애플리케이션 배포와 운영에서 큰 혁신을 가져왔지만, 보안과 격리 문제는 여전히 해결해야 할 과제입니다. 이에 대한 해결책 중 하나로, Kata 컨테이너가 주목받고 있습니다. 이번 글에서는 Kata 컨테이너가 어떻게 컨테이너 샌드박싱을 달성하는지, 그리고
컨테이너 기술은 현대 애플리케이션 배포와 관리를 단순화하는 핵심 요소로 자리 잡았습니다. 그러나, 컨테이너를 실제로 실행할 때 일어나는 내부 작업은 어떻게 이루어질까요? 이번 글에서는 Docker, runC, gVisor, Kata 컨테이너와 같은 주요 컨테이너 런타임
이번 글에서는 Kubernetes 환경에서 gVisor 런타임을 사용하여 파드를 생성하는 방법에 대해 알아보겠습니다. gVisor는 Google에서 개발한 컨테이너 격리 솔루션으로, 보안을 강화하고 리소스 격리를 보장하는 데 유용합니다.먼저, gVisor 런타임을 사용
이번 글에서는 상호 TLS(Transport Layer Security) 및 mTLS(Mutual TLS)의 기본 개념과 이를 사용하여 두 시스템 간의 트래픽을 안전하게 암호화하는 방법에 대해 알아보겠습니다.TLS는 네트워크 통신에서 데이터를 안전하게 전송하기 위한 프
Kubernetes 클러스터 내에서 Pod 간 통신은 기본적으로 암호화되지 않습니다. 이는 네트워크를 감시하는 공격자가 평문으로 전송되는 메시지를 볼 수 있어 민감한 정보가 노출될 위험이 있습니다. 이 문제를 해결하기 위해 우리는 mTLS(Mutual Transport
이번 글에서는 Docker 이미지의 크기를 최소화하는 방법에 대해 다뤄보겠습니다. 베이스 이미지는 다른 이미지의 기반이 되는 이미지로, 모든 Docker 이미지의 출발점이 됩니다. 예를 들어, 여러분의 커스텀 웹 애플리케이션이 httpd 이미지로부터 빌드된다면, 이 h
이번 글에선 이미지 보호의 중요성과 private 레지스트리를 통한 안전한 이미지 관리에 대해 알아보겠습니다. 이미지 보호는 모든 애플리케이션 배포에서 핵심적인 부분이며, Docker와 Kubernetes 환경에서 어떻게 이를 구현할 수 있는지 살펴볼 것입니다.Dock
이번 글에서는 Kubernetes 클러스터에서 이미지 레지스트리를 화이트리스트로 설정하는 방법에 대해 알아보겠습니다. 이미지 레지스트리 화이트리스트는 클러스터 보안을 강화하고, 허가되지 않은 이미지의 사용을 방지하는 중요한 요소입니다. 허용되지 않은 이미지를 사용할 경
Kubernetes 클러스터에서 Pod를 생성하는 과정은 여러 단계를 거쳐 이루어집니다. 설정된 어드미션 컨트롤러 유형에 따라 Pod가 생성되거나 거부되지만, 이 모든 과정은 사용자가 정의 파일을 작성하고 kubectl 명령어를 실행하여 요청을 만든 후에 발생합니다.
이번 글에서는 컨테이너 이미지의 보안 취약점을 식별하고 관리하는 방법에 대해 소개하겠습니다. 특히, Aqua Security에서 개발한 Trivy라는 도구를 사용하여 CVE(Common Vulnerabilities and Exposures) 스캔을 어떻게 수행하는지에
Kubernetes는 현대적인 클라우드 인프라를 구축하는 데 매우 유용하지만, 이는 동시에 새로운 보안 도전 과제 제기를 의미합니다. 클러스터 내에서의 비정상적인 활동을 모니터링하고 방어하는 것이 중요합니다. 이번 글에서는 Kubernetes 클러스터의 보안 강화와 모
Kubernetes 클러스터에서 보안은 매우 중요한 요소입니다. 이번 글에서는 Kubernetes 클러스터에 Falco를 설치하고 이를 통해 위협을 탐지하고 분석하는 방법에 대해 다룰 것입니다. Falco를 설치하고 사용하기 전에, Falco가 어떻게 작동하는지에 대한
Kubernetes 클러스터의 보안을 유지하는 것은 매우 중요한 과제입니다. Falco는 이런 보안을 강화하는 도구로, 클러스터 내에서 발생하는 의심스러운 활동을 실시간으로 감지하고 경고를 생성해줍니다. 이번 글에서는 Falco가 정상적으로 실행 중인지 확인하고, 실제
이전 글에서 Falco의 간단한 규칙 작성 방법을 배웠다면, 이번 글에서는 Falco를 사용하여 구성 파일을 살펴보고 기존 규칙을 업데이트하고 직접 규칙을 추가하는 방법에 대해 알아보겠습니다.주요 Falco 구성 파일은 /etc/falco/falco.yaml에 위치한
이번 글에서는 인프라의 두 가지 접근 방식인 가변 인프라와 불변 인프라에 대해 알아보겠습니다. 이 두 개념을 이해하면 시스템 관리와 운영을 보다 효율적이고 안전하게 할 수 있습니다. 예제를 통해 알아보겠습니다.가변 인프라는 시스템의 구성 요소가 시간에 따라 변경될 수
컨테이너화된 애플리케이션 환경에서 불변성은 중요한 개념입니다. 컨테이너는 본질적으로 불변성을 갖도록 설계되었지만, 실제 운영에서는 컨테이너를 직접 수정할 수 있는 여러 방법이 존재합니다. 이번 글에서는 쿠버네티스(Kubernetes) 파드가 불변성을 유지하도록 하는 다
Kubernetes는 컨테이너 오케스트레이션을 위한 강력한 도구입니다. 그러나 보안 및 컴플라이언스를 위해 클러스터 내에서 발생하는 모든 이벤트를 감사하는 것도 중요합니다. Kubernetes는 기본적으로 감사 기능을 제공하며, 이를 통해 어떤 객체가 생성되었는지, 누