클라우드 네이티브 보안의 4C가 있다. 클라우드(Cloud), 클러스터(Cluster),. 컨테이너(Container), 코드(Code)이다
클라우드 네티이브 보안 모델의 각 계층은 다음의 가장 바깥쪽 계층을 기반으로 하낟. 코드 계층은 강력한 기본 보안 계층의 이점을 제고앟ㄴ다. 코드 수준에서 보안을 처리하여 기본 계층의 악한 보안 표준을 보호할 수 없다.
클라우드 공급자 보안
자신의 하드웨어 또는 다른 클라우드 공급자에서 쿠버네티스 클러스터를 실행 중인 경우, 보안 모범 사례는 설명서를 참고한다. 다음은 인기있는 클라우드 공급자의 보안 문서 중 일부에 대한 링크이다.
IaaS 공급자
|
링크
|
Alibaba Cloud
|
|
Amazon Web Services
|
|
Google Cloud Platform
|
|
IBM Cloud
|
|
Microsoft Azure
|
|
VMWare VSphere
|
인프라스트럭처 보안
쿠버네티스 인프라의 대한 제안은 다음과 같다.
쿠버네티스 인프라에서 고려할 영역
|
추천
|
API 서버에 대한 네트워크 접근(컨트롤 플레인)
|
쿠버네티스 컨트롤 플레인에 대한 모든 접근은 인터넷에서 공개적으로 허용되지 않으며 클러스터 관리에 필요한 IP 주소 집합으로 제한된 네트워크 접근 제어 목록에 의해 제어된다.
|
노드에 대한 네트워크 접근(노드)
|
지정된 포트의 컨트롤 플레인에서 만 (네트워크 접근 제어 목록을 통한) 연결을 허용하고 NodePort와 LoadBalancer 유형의 쿠버네티스 서비스에 대한 연결을 허용하도록 노드를 구성해야 한다. 가능하면 이러한 노드가 공용 인터넷에 완전히 노출되어서는 안된다.
|
클라우드 공급자 API에 대한 쿠버네티스 접근
|
|
etcd에 대한 접근
|
etcd(쿠버네티스의 데이터 저장소)에 대한 접근은 컨트롤 플레인으로만 제한되어야 한다. 구성에 따라 TLS를 통해 etcd를 사용해야 한다. 자세한 내용은 etcd 문서에서 확인할 수 있다.
|
etcd 암호화
|
가능한 한 모든 드라이브를 암호화하는 것이 좋은 방법이지만, etcd는 전체 클러스터(시크릿 포함)의 상태를 유지하고 있기에 특히 디스크는 암호화되어 있어야 한다.
|
클러스터에 대한 보안은 두가지 영역이 있다.
설정 가능한 클러스터 컴포넌트의 보안
클러스터에서 실행되는 애플리케이션의 보안
컨테이너 보안은 어려우니 다음 기회에 알아보고
코드에 대한 모안은 가장 많은 제어를 할 수 있는 주요 공격영역 중 하나이다. 코드 보안은 쿠버네티스 보안 주제를 벗어나지만 애플리케이션 코드를 보호하기 위한 권장 사항은 다음과 같다.
코드에서 고려할 영역
|
추천
|
TLS를 통한 접근
|
코드가 TCP를 통해 통신해야 한다면, 미리 클라이언트와 TLS 핸드 셰이크를 수행한다. 몇 가지 경우를 제외하고, 전송 중인 모든 것을 암호화한다. 한 걸음 더 나아가, 서비스 간 네트워크 트래픽을 암호화하는 것이 좋다. 이것은 인증서를 가지고 있는 두 서비스의 양방향 검증을 mTLS를 통해 수행할 수 있다.
|
통신 포트 범위 제한
|
이 권장사항은 당연할 수도 있지만, 가능하면 통신이나 메트릭 수집에 꼭 필요한 서비스의 포트만 노출시켜야 한다.
|
타사 종속성 보안
|
애플리케이션의 타사 라이브러리를 정기적으로 스캔하여 현재 알려진 취약점이 없는지 확인하는 것이 좋다. 각 언어에는 이런 검사를 자동으로 수행하는 도구를 가지고 있다.
|
정적 코드 분석
|
대부분 언어에는 잠재적으로 안전하지 않은 코딩 방법에 대해 코드 스니펫을 분석할 수 있는 방법을 제공한다. 가능한 언제든지 일반적인 보안 오류에 대해 코드베이스를 스캔할 수 있는 자동화된 도구를 사용하여 검사를 한다. 도구는 다음에서 찾을 수 있다. https://owasp.org/www-community/Source_Code_Analysis_Tools
|
동적 탐지 공격
|
잘 알려진 공격 중 일부를 서비스에 테스트할 수 있는 자동화된 몇 가지 도구가 있다. 여기에는 SQL 인젝션, CSRF 및 XSS가 포함된다. 가장 널리 사용되는 동적 분석 도구는 OWASP Zed Attack 프록시이다.
|
'INFRA > DevOps' 카테고리의 다른 글
Kubectl 명령어 실습 (0) | 2022.05.02 |
---|---|
[AWS]Kubernetes (0) | 2022.05.01 |
CI/CD 파이프라인 개념과 구축 방법 (0) | 2022.04.29 |
kubectl 명령어 구조 (0) | 2022.04.27 |
DevOps의 핵심 CI/CD란? (0) | 2022.04.22 |
댓글