Skip to content

Commit 5677cbe

Browse files
committed
[ko] Translate the Metrics section of Concepts/Security/Cloud Native Security into Korean
[ko] Translate the Metrics section of Concepts/Security/Cloud Native Security into Korean [ko] Translate the Metrics section of Concepts/Security/Cloud Native Security into Korean [ko] Translate the Metrics section of Concepts/Security/Cloud Native Security into Korean [ko] Translate the Metrics section of Concepts/Security/Cloud Native Security into Korean [ko] Translate the Metrics section of Concepts/Security/Cloud Native Security into Korean [ko] Translate the Metrics section of Concepts/Security/Cloud Native Security into Korean [ko] Translate the Metrics section of Concepts/Security/Cloud Native Security into Korean
1 parent ecd74d3 commit 5677cbe

1 file changed

Lines changed: 224 additions & 0 deletions

File tree

Lines changed: 224 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,224 @@
1+
---
2+
title: "클라우드 네이티브 보안과 쿠버네티스"
3+
linkTitle: "클라우드 네이티브 보안"
4+
weight: 10
5+
6+
# The section index lists this explicitly
7+
hide_summary: true
8+
9+
description: >
10+
클라우드 네이티브 워크로드를 안전하게 유지하기 위한 개념
11+
---
12+
13+
쿠버네티스는 클라우드 네이티브 아키텍쳐 기반으로 구성되어 있으며,
14+
클라우드 네이티브 정보보안의 모범 사례에 대해 {{< glossary_tooltip text="CNCF" term_id="cncf" >}}
15+
재단에게 조언을 얻고 있다.
16+
17+
이 페이지를 통해 어떻게 쿠버네티스가 안전한 클라우드 네이티브 플랫폼을 배포할 수 있도록
18+
설계되었는지에 대해 읽어보자.
19+
20+
## 클라우드 네이티브 정보 보안
21+
22+
{{< comment >}}
23+
이 백서는 현지화 버전도 가능하다. 만약에 현지화된 문서를 연결할 수 있으면,
24+
더 좋을 것이다.
25+
{{< /comment >}}
26+
27+
CNCF 클라우드 네이티브 보안
28+
[백서](https://github.com/cncf/tag-security/blob/main/community/resources/security-whitepaper/v2/CNCF_cloud-native-security-whitepaper-May2022-v2.pdf)
29+
에는 각 _생애주기_ 에 따른 보안 통제와 사례를 정의한다.
30+
31+
## _개발_ 라이프사이클 {#lifecycle-phase-develop}
32+
33+
- 개발 환경의 무결성을 유지한다.
34+
- 상황에 맞는 정보보안 모범 사례를 따라
35+
애플리케이션을 디자인한다.
36+
- 솔루션 디자인의 일부분으로서 최종 사용자 보안을 고려한다.
37+
38+
이를 달성하기 위해서 아래와 같이 할 수 있다.
39+
40+
1. 내부 위협까지 포함하여 공격 표면을 최소화할 수 있는
41+
[제로 트러스트](https://glossary.cncf.io/zero-trust-architecture/)와 같은 아키텍처를 채택한다.
42+
1. 보안 관점을 고려할 수 있는 코드 리뷰 과정을 정한다.
43+
1. 시스템이나 애플리케이션의 _위협 모델_ 을 구축하여 신뢰 경계를
44+
식별한다. 이는 위험을 파악하고 해결 방안을 찾는데
45+
도움을 준다.
46+
1. 필요시 _퍼징_ 이나
47+
[보안 카오스 엔지니어링](https://glossary.cncf.io/security-chaos-engineering/)
48+
같은 고급 보안 자동화 시스템을 도입한다.
49+
50+
## _분배_ 라이프사이클 {#lifecycle-phase-distribute}
51+
52+
- 실행하고 있는 컨테이너 이미지의 공급망 보안을 보장한다.
53+
- 애플리케이션을 실행하는 클러스터와 컴포넌트의 공급망 보안을 보장한다.
54+
예로 들어, 클라우드 네이티브 애플리케이션이 영속성을 위해 사용하는 외부 데이터베이스도
55+
그 구성 요소 중 하나일 수 있다.
56+
57+
이를 달성하기 위해서 아래와 같이 할 수 있다.
58+
59+
1. 컨테이너 이미지와 다른 아티팩트를 스캔하여 알려진 취약점을 탐지한다.
60+
1. 소프트웨어 배포 중에 전송 구간 암호화를 사용하여 소프트웨어 소스에
61+
대한 신뢰 체계를 보장한다.
62+
1. 보안 공지에 대응하기 위해 업데이트가 가능할 때마다 의존성을
63+
갱신하는 과정을 도입하고 따른다.
64+
1. 공급망 검증을 위해 디지털 인증서와 같은
65+
유효성 검사 매커니즘을 사용한다.
66+
1. 피드나 다른 매커니즘을 구독하여
67+
보안 위협 관련 알림을 받는다.
68+
1. 아티팩트의 접근을 제한한다. 인증받은 클라이언트만 이미지를 가져올 수 있도록
69+
[프라이빗 레지스트리](/ko/docs/concepts/containers/images/#프라이빗-레지스트리-사용)
70+
컨테이너 이미지를 배치한다.
71+
72+
## _배포_ 라이프사이클 {#lifecycle-phase-deploy}
73+
74+
무엇이 배포될 수 있는지, 누가 배포할 수 있는지,
75+
그리고 어디에 배포할 수 있는지에 대한 적절한 제약을 설정한다.
76+
예를 들어, 컨테이너 이미지 산출물의 암호학적 신원을 검증하며
77+
_분배_ 단계에서 조치를 강화할 수 있다.
78+
79+
쿠버네티스를 배포하면 애플리케이션 런타임 환경의 기반인
80+
쿠버네티스 클러스터(혹은
81+
다중 클러스터)가 구성된다.
82+
해당 IT 인프라는 상위 계층에서 기대하는
83+
보안 보장을 제공해야 한다.
84+
85+
## _런타임_ 라이프사이클 {#lifecycle-phase-runtime}
86+
87+
런타임 단계는 세 가지 핵심 영역으로 구성된다. [접근](#protection-runtime-access)
88+
[컴퓨트](#protection-runtime-compute) 그리고 [스토리지](#protection-runtime-storage).
89+
90+
### 런타임 보호: 접근 권한 {#protection-runtime-access}
91+
92+
쿠버네티스 API는 클러스터가 동작하는 핵심이다. 이 API를 보호하는 것은
93+
효과적인 클러스터 보안을 제공하는 데 핵심적이다.
94+
95+
쿠버네티스 문서의 다른 페이지에서는 접근 제어를 설정하는
96+
구체적인 방법을 다루고 있다. [보안 점검사항](/docs/concepts/security/security-checklist/)
97+
에서 클러스터를 위한 기초적인 점검 항목을 제시한다.
98+
99+
그 이외에도, 클러스터를 안전하게 보호하기 위해서 API 접근에 대해 효과적인
100+
[인증](/ko/docs/concepts/security/controlling-access/#authentication)
101+
[인가](/ko/docs/concepts/security/controlling-access/#authorization)를 구현해야 한다.
102+
워크로드와 클러스터 컴포넌트의 보안 신원을 제공하고 관리하기 위해
103+
[서비스어카운트](/docs/concepts/security/service-accounts/)를 사용한다.
104+
105+
쿠버네티스는 API 트래픽을 보호하기 위해 TLS를 사용한다. 반드시 TLS를 사용하여
106+
클러스터를 배포하거나 (노드와 컨트롤 플레인 사이에 있는 트래픽을 포함한다),
107+
암호화된 키를 보호해야 한다. 만약 [CertificateSigningRequests](/docs/reference/access-authn-authz/certificate-signing-requests/#certificate-signing-requests)를 위해
108+
쿠버네티스의 API를 사용한다면,
109+
오용을 방지하도록 특별히 주의한다.
110+
111+
### 런타임 보호: 컴퓨트 {#protection-runtime-compute}
112+
113+
{{< glossary_tooltip text="컨테이너" term_id="container" >}}는 두 가지를 제공한다.
114+
하나는 서로 다른 애플리케이션 간의 격리이고, 다른 하나는
115+
이러한 격리된 애플리케이션을 결합하여
116+
동일한 호스트 컴퓨터에서 작동하도록 하는 매커니즘이다. 격리와 집합 두 가지 측면에서 런타임 보안은 절충을 식별하여 적절한 균형을 찾는 것이
117+
포함된다는 의미이다.
118+
119+
쿠버네티스는 {{< glossary_tooltip text="컨테이너 런타임" term_id="container-runtime" >}}을 사용하여
120+
컨테이너를 실제로 설치하고 실행한다. 쿠버네티스 프로젝트는
121+
특정 컨테이너 런타임을 권장하지 않으며,
122+
선택한 런타임이 정보 보안 요구 사항을 충족하는지 확인해야 한다.
123+
124+
런타임에 있는 컴퓨트를 보호하기 위해서 아래와 같이 할 수 있다.
125+
126+
1. 애플리케이션에 [파드 보안 표준](/ko/docs/concepts/security/pod-security-standards/)을 적용하여
127+
필요한 권한으로만 실행되도록 강제한다.
128+
1. 컨테이너화된 워크로드 실행을 위해 만들어진 전문화된
129+
운영체제를 노드에서 실행한다. 이는 일반적으로 읽기 전용
130+
운영체제(_불변의 이미지_) 기반이며
131+
오직 컨테이너를 실행하는데 필수적인 서비스만 제공한다.
132+
133+
컨테이너에 특화된 운영체제는 시스템 컴포넌트를 격리하여
134+
컨테이너 탈출과 관련된 공격 표면을 감소시킨다.
135+
1. [리소스 쿼터](/ko/docs/concepts/policy/resource-quotas/)를 정의하여
136+
공유된 리소스를 공정하게 할당하고
137+
[리밋 레인지](/ko/docs/concepts/policy/limit-range/)와 같은 매커니즘을 사용하여
138+
파드가 리소스 요구사항을 지정하도록 한다.
139+
1. 서로 다른 노드들에 워크로드를 분산한다.
140+
쿠버네티스 또는 생태계에서
141+
[노드 격리](/ko/docs/concepts/scheduling-eviction/assign-pod-node/#node-isolation-restriction) 매커니즘을 사용하여
142+
서로 다른 신뢰 컨텍스트를 가진 파드가 별도의 노드 집합에서 실행되도록 한다.
143+
1. 보안 제약사항을 제공하기 위해
144+
{{< glossary_tooltip text="컨테이너 런타임" term_id="container-runtime" >}}을 사용한다.
145+
1. 리눅스 노드에서는 [AppArmor](/ko/docs/tutorials/security/apparmor/)
146+
혹은 [seccomp](/docs/tutorials/security/seccomp/)와 같은 리눅스 보안 모듈을 사용한다.
147+
148+
### 런타임 보호: 스토리지 {#protection-runtime-storage}
149+
150+
클러스터 내에 있는 스토리지나 실행 중인 애플리케이션을 보호하기 위해서는 아래와 같이 할 수 있다.
151+
152+
1. 클러스터를 볼륨 암호화 기능을 제공하는 외부 스토리지 플러그인과 통합한다.
153+
1. API 오브젝트에 [암호화](/docs/tasks/administer-cluster/encrypt-data/)
154+
가능하게 한다.
155+
1. 백업하는 동안 데이터 내구성을 보호한다. 필요할 때마다 복구할 수 있는지
156+
검증한다.
157+
1. 클러스터 노드와 해당 노드가 사용하는 모든 네트워크 스토리지 간의
158+
연결을 인증한다.
159+
1. 자체 애플리케이션 내에 데이터 암호화를 구현한다.
160+
161+
특수 하드웨어 내에서 생성된 암호화 키는 노출 위험으로부터
162+
최상의 보호 효과를 제공한다. _하드웨어 보안 모듈_ 을 사용하면
163+
보안 키를 다른 곳에 복사하지 않고도
164+
암호화 작업을 수행할 수 있다.
165+
166+
### 네트워킹 및 보안
167+
168+
[네트워크 정책](/ko/docs/concepts/services-networking/network-policies/) 혹은
169+
[서비스 메시](https://glossary.cncf.io/service-mesh/)와 같은 네트워크 보안 조치도
170+
고려해야 한다.
171+
일부 쿠버네티스용 네트워크 플러그인은
172+
가상 사설 네트워크 (VPN) 오버레이와 같은 기술을 활용하여
173+
클러스터 네트워크에 암호화를 제공한다.
174+
쿠버네티스는 기본적으로 클러스터에 자체 네트워크 플러그인을 사용할 수 있도록 설계되었다.
175+
(만약 당신이 관리형 쿠버네티스를 사용한다면, 클러스터를 관리하는 개인 혹은 조직은
176+
원하는 네트워크 플러그인을 선택했을 수 있다).
177+
178+
선택한 네트워크 플러그인과 통합하는 방식은
179+
전송 중의 정보 보안에 큰 영향을 줄 수 있다.
180+
181+
### 관찰가능성과 런타임 보안
182+
183+
쿠버네티스에 추가 도구를 사용하여 클러스터를 확장할 수 있다. 애플리케이션과 실행 중인 쿠버네티스를
184+
모니터링하거나 문제 해결을 도와주는 써드파티 솔루션을 설치할 수 있다.
185+
또한, 쿠버네티스 자체에 기본으로 내장된 몇 가지 기본적인 관찰가능성 기능을 사용할 수 있다.
186+
컨테이너 내에 실행 중인 코드는 로그를 생성할 수 있으며, 메트릭을 발행하거나
187+
다른 관찰 가능성 데이터를 제공할 수 있다. 배포 시점에는
188+
클러스터가 적절한 수준의 보호를 제공하는지 확인해야 한다.
189+
190+
메트릭 대시보드 또는 이와 유사한 기능을 설정하는 경우, 대시보드에 데이터를 입력하는
191+
구성 요소 체인과 대시보드 자체를 검토해야 한다. 전체적으로
192+
클러스터의 품질이 저하되는 사고가 발생하는 동안에도 의존할 수 있는
193+
충분한 탄력성과 무결성 보호 기능을 갖춘 채로 설계되었는지 확인한다.
194+
195+
필요한 경우 암호화 기반 측정 부팅이나 인증된 시간 전달
196+
(로그 및 감사 기록의 정확성을 보장하는 데 도움을 준다) 처럼
197+
쿠버네티스 자체 수준에서 보안 조치를 시행한다.
198+
199+
높은 신뢰가 요구되는 환경을 위해서는 암호화 보호 기능을 구축하여
200+
로그가 변조되지 않고 기밀성이 보장될 수 있도록 한다.
201+
202+
## {{% heading "whatsnext" %}}
203+
204+
### 클라우드 네이티브 보안 {#further-reading-cloud-native}
205+
206+
- 클라우드 네이티브 보안과 관련된
207+
CNCF [백서](https://github.com/cncf/tag-security/blob/main/community/resources/security-whitepaper/v2/CNCF_cloud-native-security-whitepaper-May2022-v2.pdf)
208+
- 소프트웨어 공급망을 보호하기 위한 모범 사례가 있는
209+
CNCF [백서](https://github.com/cncf/tag-security/blob/f80844baaea22a358f5b20dca52cd6f72a32b066/supply-chain-security/supply-chain-security-paper/CNCF_SSCP_v1.pdf)
210+
- [쿠버네티스 보안 대혼란 해결하기: 커널에서부터 이해하는 보안](https://archive.fosdem.org/2020/schedule/event/kubernetes/) (FOSDEM 2020)
211+
- [쿠버네티스 보안 모범 사례](https://www.youtube.com/watch?v=wqsUfvRyYpw) (Kubernetes Forum Seoul 2019)
212+
- [기본적으로 사용할 수 있는 측정 부트를 향하여](https://www.youtube.com/watch?v=EzSkU3Oecuw) (Linux Security Summit 2016)
213+
214+
### 쿠버네티스와 정보 보안 {#further-reading-k8s}
215+
216+
- [쿠버네티스 보안](/ko/docs/concepts/security/)
217+
- [클러스터 보호하기](/docs/tasks/administer-cluster/securing-a-cluster/)
218+
- 컨트롤 플레인을 위한 [전송 중 데이터 암호화](/ko/docs/tasks/tls/managing-tls-in-a-cluster/)
219+
- [저장된 데이터 암호화](/docs/tasks/administer-cluster/encrypt-data/)
220+
- [쿠버네티스 시크릿](/ko/docs/concepts/configuration/secret/)
221+
- [쿠버네티스 API 접근 제어하기](/ko/docs/concepts/security/controlling-access)
222+
- 파드를 위한 [네트워크 정책](/ko/docs/concepts/services-networking/network-policies/)
223+
- [파드 시큐리티 스탠다드](/ko/docs/concepts/security/pod-security-standards/)
224+
- [런타임클래스](/ko/docs/concepts/containers/runtime-class)

0 commit comments

Comments
 (0)