11 ways not to get hacked

https://kubernetes.io/blog/2018/07/18/11-ways-not-to-get-hacked/ μš”μ•½

pspκ΄€λ ¨ λ‚΄μš©μ€ μ‚­μ œ

Kubernetes λ³΄μ•ˆμ€ ν”„λ‘œμ νŠΈκ°€ μ‹œμž‘λœ μ΄ν›„λ‘œ λ¨Ό 길을 κ±Έμ–΄μ™”μ§€λ§Œ μ—¬μ „νžˆ λͺ‡ κ°€μ§€ λ¬Έμ œκ°€ μžˆμŠ΅λ‹ˆλ‹€. 컨트둀 ν”Œλ ˆμΈμ—μ„œ μ‹œμž‘ν•˜μ—¬ μ›Œν¬λ‘œλ“œ 및 λ„€νŠΈμ›Œν¬ λ³΄μ•ˆμ„ 톡해 κ΅¬μΆ•ν•˜κ³  λ³΄μ•ˆμ˜ λ―Έλž˜μ— λŒ€ν•œ 예츑으둜 λ§ˆλ¬΄λ¦¬ν•˜λŠ” λ‹€μŒμ€ ν΄λŸ¬μŠ€ν„°λ₯Ό κ°•ν™”ν•˜κ³  μ†μƒλœ 경우 볡원λ ₯을 λ†’μ΄λŠ” 데 도움이 λ˜λŠ” μœ μš©ν•œ 팁 λͺ©λ‘μž…λ‹ˆλ‹€.

Part One: The Control Plane

control plane은 Kubernetes의 λ‘λ‡Œμž…λ‹ˆλ‹€. ν΄λŸ¬μŠ€ν„°μ—μ„œ μ‹€ν–‰ 쀑인 λͺ¨λ“  μ»¨ν…Œμ΄λ„ˆμ™€ ν¬λ“œμ— λŒ€ν•œ 전체 보기가 있고 μƒˆ ν¬λ“œ(λΆ€λͺ¨ λ…Έλ“œμ— λŒ€ν•œ 루트 μ•‘μ„ΈμŠ€ κΆŒν•œμ΄ μžˆλŠ” μ»¨ν…Œμ΄λ„ˆλ₯Ό 포함할 수 있음)λ₯Ό μ˜ˆμ•½ν•  수 있으며 ν΄λŸ¬μŠ€ν„°μ— μ €μž₯된 λͺ¨λ“  비밀을 읽을 수 μžˆμŠ΅λ‹ˆλ‹€. 이 κ·€μ€‘ν•œ 것은 μ ‘κ·Όν•  λ•Œλ‚˜, μ €μž₯λ˜μ–΄ μžˆμ„ λ•Œλ‚˜, λ„€νŠΈμ›Œν¬λ₯Ό 톡해 μš΄μ†‘λ  λ•Œλ„ 우발적인 λˆ„μΆœ 및 μ•…μ˜μ μΈ μ˜λ„λ‘œλΆ€ν„° λ³΄ν˜Έν•΄μ•Ό ν•©λ‹ˆλ‹€.

1. TLS Everywhere

νŠΈλž˜ν”½ μŠ€λ‹ˆν•‘μ„ λ°©μ§€ν•˜κ³ , μ„œλ²„μ˜ IDλ₯Ό ν™•μΈν•˜κ³ , (μƒν˜Έ TLS의 경우) ν΄λΌμ΄μ–ΈνŠΈμ˜ IDλ₯Ό ν™•μΈν•˜λ €λ©΄ TLSλ₯Ό μ§€μ›ν•˜λŠ” λͺ¨λ“  ꡬ성 μš”μ†Œμ— λŒ€ν•΄ TLSλ₯Ό ν™œμ„±ν™”ν•΄μ•Ό ν•©λ‹ˆλ‹€.

Source

Lucas KΓ€ldstrΓΆm이 μž‘μ„±ν•œ 이 λ„€νŠΈμ›Œν¬ λ‹€μ΄μ–΄κ·Έλž¨μ€ TLSκ°€ μ΄μƒμ μœΌλ‘œ μ μš©λ˜μ–΄μ•Ό ν•˜λŠ” 일뢀 μœ„μΉ˜, 즉 λ§ˆμŠ€ν„°μ˜ λͺ¨λ“  κ΅¬μ„±μš”μ†Œ 사이, Kubeletκ³Ό API μ„œλ²„ 사이λ₯Ό λ³΄μ—¬μ€λ‹ˆλ‹€.

2. RBACν™œμ„±ν™”(Least Privilege μ΅œμ†Œ κΆŒν•œ λ²•μΉ™μœΌλ‘œ) , ABACλŠ” μ‚¬μš©ν•˜μ§€ μ•ŠκΈ° , 그리고 둜그 λͺ¨λ‹ˆν„°λ§ ν•˜κΈ°

Role-based access control은 λ„€μž„μŠ€νŽ˜μ΄μŠ€ μ•‘μ„ΈμŠ€μ™€ 같은 λ¦¬μ†ŒμŠ€μ— λŒ€ν•œ μ‚¬μš©μž μ•‘μ„ΈμŠ€μ— λŒ€ν•œ μ„ΈλΆ„ν™”λœ μ •μ±… 관리λ₯Ό μ œκ³΅ν•©λ‹ˆλ‹€.

Kubernetes의 ABAC(속성 기반 μ•‘μ„ΈμŠ€ μ œμ–΄)λŠ” 릴리슀 1.6λΆ€ν„° RBAC둜 λŒ€μ²΄λ˜μ—ˆμœΌλ©° API μ„œλ²„μ—μ„œ ν™œμ„±ν™”ν•˜λ©΄ μ•ˆ λ©λ‹ˆλ‹€. λŒ€μ‹  RBACλ₯Ό μ‚¬μš©ν•˜μ‹­μ‹œμ˜€.

μžŠμ§€ λ§ˆμ„Έμš”: μ΄λŸ¬ν•œ 둜그λ₯Ό ν΄λŸ¬μŠ€ν„° 내뢀에 λ³΄κ΄€ν•˜λŠ” 것은 μΉ¨ν•΄ μ‹œ λ³΄μ•ˆ μœ„ν˜‘μ΄ λ©λ‹ˆλ‹€. μ΄λŠ” λ‹€λ₯Έ λͺ¨λ“  λ³΄μ•ˆμ— λ―Όκ°ν•œ λ‘œκ·Έμ™€ λ§ˆμ°¬κ°€μ§€λ‘œ μœ„λ°˜ μ‹œ λ³€μ‘°λ₯Ό λ°©μ§€ν•˜κΈ° μœ„ν•΄ ν΄λŸ¬μŠ€ν„° μ™ΈλΆ€λ‘œ μ „μ†‘λ˜μ–΄μ•Ό ν•©λ‹ˆλ‹€.

3. API μ„œλ²„μ— 타사 인증 μ‚¬μš©

쑰직 μ „μ²΄μ—μ„œ 인증 및 κΆŒν•œ λΆ€μ—¬(Single Sign On이라고도 함)λ₯Ό 쀑앙 μ§‘μ€‘ν™”ν•˜λ©΄ μ‚¬μš©μžμ— λŒ€ν•œ μ˜¨λ³΄λ”©, μ˜€ν”„λ³΄λ”© 및 μΌκ΄€λœ κΆŒν•œμ΄ 도움이 λ©λ‹ˆλ‹€.

Kubernetesλ₯Ό 타사 인증 제곡자(예: Google λ˜λŠ” GitHub)와 ν†΅ν•©ν•˜λ©΄ 원격 ν”Œλž«νΌμ˜ ID 보증(2FA와 같은 κ²ƒμœΌλ‘œ 백업됨)을 μ‚¬μš©ν•˜κ³  κ΄€λ¦¬μžκ°€ μ‚¬μš©μžλ₯Ό μΆ”κ°€ν•˜κ±°λ‚˜ μ œκ±°ν•˜κΈ° μœ„ν•΄ Kubernetes API μ„œλ²„λ₯Ό μž¬κ΅¬μ„±ν•΄μ•Ό ν•˜λŠ” 것을 λ°©μ§€ν•©λ‹ˆλ‹€.

4. etcd ν΄λŸ¬μŠ€ν„° 뢄리 및 λ°©ν™”λ²½

etcdλŠ” μƒνƒœ 및 비밀에 λŒ€ν•œ 정보λ₯Ό μ €μž₯ν•˜λ©° μ€‘μš”ν•œ Kubernetes ꡬ성 μš”μ†Œμž…λ‹ˆλ‹€. ν΄λŸ¬μŠ€ν„°μ˜ λ‚˜λ¨Έμ§€ λΆ€λΆ„κ³Ό λ‹€λ₯΄κ²Œ λ³΄ν˜Έν•΄μ•Ό ν•©λ‹ˆλ‹€.

API μ„œλ²„μ˜ etcd에 λŒ€ν•œ μ“°κΈ° μ•‘μ„ΈμŠ€λŠ” 전체 ν΄λŸ¬μŠ€ν„°μ—μ„œ 루트λ₯Ό μ–»λŠ” 것과 λ™μΌν•˜λ©° 읽기 μ•‘μ„ΈμŠ€λ₯Ό μ‚¬μš©ν•˜μ—¬ κΆŒν•œμ„ μƒλ‹Ήνžˆ μ‰½κ²Œ μ—μŠ€μ»¬λ ˆμ΄μ…˜ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

Kubernetes μŠ€μΌ€μ€„λŸ¬λŠ” λ…Έλ“œκ°€ μ—†λŠ” ν¬λ“œ μ •μ˜μ— λŒ€ν•΄ etcdλ₯Ό κ²€μƒ‰ν•©λ‹ˆλ‹€. 그런 λ‹€μŒ 찾은 ν¬λ“œλ₯Ό μ˜ˆμ•½μ„ μœ„ν•΄ μ‚¬μš© κ°€λŠ₯ν•œ kubelet으둜 λ³΄λƒ…λ‹ˆλ‹€. 제좜된 ν¬λ“œμ— λŒ€ν•œ μœ νš¨μ„± κ²€μ‚¬λŠ” API μ„œλ²„κ°€ etcd에 μ“°κΈ° 전에 μˆ˜ν–‰ν•˜λ―€λ‘œ etcd에 직접 μ“°λŠ” μ•…μ˜μ μΈ μ‚¬μš©μžλŠ” λ§Žμ€ λ³΄μ•ˆ λ©”μ»€λ‹ˆμ¦˜μ„ μš°νšŒν•  수 μžˆμŠ΅λ‹ˆλ‹€. 예)PodSecurityμ •μ±….

etcdλŠ” ν”Όμ–΄ 및 ν΄λΌμ΄μ–ΈνŠΈ TLS μΈμ¦μ„œλ‘œ κ΅¬μ„±ν•˜κ³  μ „μš© λ…Έλ“œμ— 배포해야 ν•©λ‹ˆλ‹€. 개인 ν‚€κ°€ λ„λ‚œλ‹Ήν•˜κ³  μž‘μ—…μž λ…Έλ“œμ—μ„œ μ‚¬μš©λ˜λŠ” 것을 λ°©μ§€ν•˜κΈ° μœ„ν•΄ ν΄λŸ¬μŠ€ν„°λ₯Ό API μ„œλ²„λ‘œ λ°©ν™”λ²½μœΌλ‘œ μ„€μ •ν•  μˆ˜λ„ μžˆμŠ΅λ‹ˆλ‹€.

5. μ•”ν˜Έν™” ν‚€ ꡐ체

λ³΄μ•ˆ λͺ¨λ²” μ‚¬λ‘€λŠ” ν‚€ μ†μƒμ˜ "폭발 반경"을 μ œν•œν•˜κΈ° μœ„ν•΄ μ•”ν˜Έν™” 킀와 μΈμ¦μ„œλ₯Ό μ •κΈ°μ μœΌλ‘œ κ΅μ²΄ν•˜λŠ” κ²ƒμž…λ‹ˆλ‹€.

KubernetesλŠ” κΈ°μ‘΄ 자격 증λͺ…이 만료되면 μƒˆ CSR을 μƒμ„±ν•˜μ—¬ 일뢀 μΈμ¦μ„œ(특히 kubelet ν΄λΌμ΄μ–ΈνŠΈ 및 μ„œλ²„ μΈμ¦μ„œ)λ₯Ό μžλ™μœΌλ‘œ κ΅μ²΄ν•©λ‹ˆλ‹€.

κ·ΈλŸ¬λ‚˜ API μ„œλ²„κ°€ etcd 값을 μ•”ν˜Έν™”ν•˜λŠ” 데 μ‚¬μš©ν•˜λŠ” λŒ€μΉ­ μ•”ν˜Έν™” ν‚€λŠ” μžλ™μœΌλ‘œ μˆœν™˜λ˜μ§€ μ•ŠμœΌλ©° μˆ˜λ™μœΌλ‘œ μˆœν™˜ν•΄μ•Ό ν•©λ‹ˆλ‹€. 이λ₯Ό μœ„ν•΄μ„œλŠ” λ§ˆμŠ€ν„° μ•‘μ„ΈμŠ€κ°€ ν•„μš”ν•˜λ―€λ‘œ 관리 μ„œλΉ„μŠ€(예: GKE λ˜λŠ” AKS)λŠ” μš΄μ˜μžλ‘œλΆ€ν„° 이 문제λ₯Ό μΆ”μƒν™”ν•©λ‹ˆλ‹€.

Part Two: Workloads

컨트둀 ν”Œλ ˆμΈμ—μ„œ μ΅œμ†Œν•œμ˜ μ‹€ν–‰ κ°€λŠ₯ν•œ λ³΄μ•ˆμœΌλ‘œ ν΄λŸ¬μŠ€ν„°λŠ” μ•ˆμ „ν•˜κ²Œ μž‘λ™ν•  수 μžˆμŠ΅λ‹ˆλ‹€. 배포 μ‹œ μ‹ λ’°ν•  수 μžˆμ§€λ§Œ 인터넷에 μ—°κ²°λ˜μ–΄ 있으면 λ‚˜μ€‘μ— μ•…μš©λ  μœ„ν—˜μ΄ 항상 μžˆμŠ΅λ‹ˆλ‹€. μ΅œμ†Œν•œμ˜ κΆŒν•œμœΌλ‘œ μ›Œν¬λ‘œλ“œλ₯Ό μ‹€ν–‰ν•˜κ³  λŸ°νƒ€μž„ ꡬ성을 κ°•ν™”ν•˜λ©΄ μ΄λŸ¬ν•œ μœ„ν—˜μ„ μ™„ν™”ν•˜λŠ” 데 도움이 될 수 μžˆμŠ΅λ‹ˆλ‹€.

6. Use Linux Security Features and PodSecurityPolicies

Linux μ»€λ„μ—λŠ” μ‘μš© ν”„λ‘œκ·Έλž¨μ— μ΅œμ†Œ κΆŒν•œμ„ μ œκ³΅ν•˜λ„λ‘ ꡬ성할 수 μžˆλŠ” μ—¬λŸ¬ 쀑첩 λ³΄μ•ˆ ν™•μž₯(κΈ°λŠ₯, SELinux, AppArmor, seccomp-bpf)이 μžˆμŠ΅λ‹ˆλ‹€.

baneκ³Ό 같은 λ„κ΅¬λŠ” AppArmor ν”„λ‘œν•„μ„ μƒμ„±ν•˜κ³  seccomp ν”„λ‘œν•„μ„ μœ„ν•œ docker-slim을 μƒμ„±ν•˜λŠ” 데 도움이 될 수 μžˆμ§€λ§Œ μ΄λŸ¬ν•œ μ •μ±… 적용의 λΆ€μž‘μš©μ΄ μžˆμŠ΅λ‹ˆλ‹€. μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ˜ 포괄적인 ν…ŒμŠ€νŠΈλ₯Ό μ£Όμ˜ν•˜μ—¬ ν•˜μ‹­μ‹œμ˜€.

7. Statically Analyse YAML

Sensitive information should not be stored in pod-type YAML resource (deployments, pods, sets, etc.), and sensitive configmaps and secrets should be encrypted with tools such as vault (with CoreOS's operator), git-crypt, sealed secrets, or cloud provider KMS.

Static analysis of YAML configuration can be used to establish a baseline for runtime security. kubesec generates risk scores for resources:

And kubetest is a unit test framework for Kubernetes configurations:

8. λ£¨νŠΈκ°€ μ•„λ‹Œ μ‚¬μš©μžλ‘œ μ»¨ν…Œμ΄λ„ˆ μ‹€ν–‰

루트둜 μ‹€ν–‰λ˜λŠ” μ»¨ν…Œμ΄λ„ˆλŠ” μž‘μ—… λΆ€ν•˜κ°€ μš”κ΅¬ν•˜λŠ” 것보닀 훨씬 더 λ§Žμ€ κΆŒν•œμ„ κ°–κ³  있으며, μ΄λŠ” 손상될 경우 κ³΅κ²©μžκ°€ 곡격을 κ³„μ†ν•˜λŠ” 데 도움이 될 수 μžˆμŠ΅λ‹ˆλ‹€.

Kubernetesμ—μ„œ μ‚¬μš©μž λ„€μž„μŠ€νŽ˜μ΄μŠ€κ°€ ν™œμ„±ν™”λ˜μ–΄ μžˆμ§€ μ•ŠμŠ΅λ‹ˆλ‹€. 즉, μ»¨ν…Œμ΄λ„ˆμ˜ μ‚¬μš©μž ID ν…Œμ΄λΈ”μ΄ 호슀트의 μ‚¬μš©μž ν…Œμ΄λΈ”μ— λ§€ν•‘λ˜κ³  μ»¨ν…Œμ΄λ„ˆ λ‚΄μ—μ„œ 루트 μ‚¬μš©μžλ‘œ ν”„λ‘œμ„ΈμŠ€λ₯Ό μ‹€ν–‰ν•˜λ©΄ ν˜ΈμŠ€νŠΈμ—μ„œ 루트둜 μ‹€ν–‰λ©λ‹ˆλ‹€. μ»¨ν…Œμ΄λ„ˆ λΈŒλ ˆμ΄ν¬μ•„μ›ƒμ„ λ°©μ§€ν•˜κΈ° μœ„ν•΄ κ³„μΈ΅ν™”λœ λ³΄μ•ˆ λ©”μ»€λ‹ˆμ¦˜μ΄ μžˆμ§€λ§Œ μ»¨ν…Œμ΄λ„ˆ λ‚΄λΆ€μ—μ„œ 루트둜 μ‹€ν–‰ν•˜λŠ” 것은 μ—¬μ „νžˆ ꢌμž₯λ˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.

λ§Žμ€ μ»¨ν…Œμ΄λ„ˆ μ΄λ―Έμ§€λŠ” 루트 μ‚¬μš©μžλ₯Ό μ‚¬μš©ν•˜μ—¬ PID 1을 μ‹€ν–‰ν•©λ‹ˆλ‹€. ν•΄λ‹Ή ν”„λ‘œμ„ΈμŠ€κ°€ μ†μƒλ˜λ©΄ κ³΅κ²©μžκ°€ μ»¨ν…Œμ΄λ„ˆμ— 루트λ₯Ό κ°–κ²Œ 되며 잘λͺ»λœ ꡬ성을 μ•…μš©ν•˜κΈ°κ°€ 훨씬 μ‰¬μ›Œμ§‘λ‹ˆλ‹€.

λ£¨νŠΈκ°€ μ•„λ‹Œ μ»¨ν…Œμ΄λ„ˆλŠ” 1024 미만의 κΆŒν•œ μžˆλŠ” ν¬νŠΈμ— 바인딩할 수 μ—†μ§€λ§Œ(이것은 CAP_NET_BIND_SERVICE 컀널 κΈ°λŠ₯에 μ˜ν•΄ μ œμ–΄λ¨) μ„œλΉ„μŠ€λ₯Ό μ‚¬μš©ν•˜μ—¬ 이 사싀을 μœ„μž₯ν•  수 μžˆμŠ΅λ‹ˆλ‹€. 이 μ˜ˆμ—μ„œ κ°€μƒμ˜ MyApp μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ€ μ»¨ν…Œμ΄λ„ˆμ˜ 포트 8443에 λ°”μΈλ”©λ˜μ§€λ§Œ μ„œλΉ„μŠ€λŠ” targetPort에 λŒ€ν•œ μš”μ²­μ„ ν”„λ‘μ‹œν•˜μ—¬ 443μ—μ„œ 이λ₯Ό λ…ΈμΆœν•©λ‹ˆλ‹€.

λ£¨νŠΈκ°€ μ•„λ‹Œ μ‚¬μš©μžλ‘œ μ›Œν¬λ‘œλ“œλ₯Ό μ‹€ν–‰ν•΄μ•Ό ν•˜λŠ” 것은 μ‚¬μš©μž λ„€μž„μŠ€νŽ˜μ΄μŠ€λ₯Ό μ‚¬μš©ν•  수 μžˆκ±°λ‚˜ λ£¨νŠΈκ°€ μ—†λŠ” μ»¨ν…Œμ΄λ„ˆλ₯Ό μ‹€ν–‰ν•˜κΈ° μœ„ν•œ 지속적인 μž‘μ—…μ΄ μ»¨ν…Œμ΄λ„ˆ λŸ°νƒ€μž„μ— μžˆμ„ λ•ŒκΉŒμ§€ λ³€κ²½λ˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.

9. Use Network Policies

기본적으둜 Kubernetes λ„€νŠΈμ›Œν‚Ήμ€ λͺ¨λ“  ν¬λ“œ κ°„ νŠΈλž˜ν”½μ„ ν—ˆμš©ν•©λ‹ˆλ‹€. 이것은 `Network Policy`을 μ‚¬μš©ν•˜μ—¬ μ œν•œν•  수 μžˆμŠ΅λ‹ˆλ‹€.

KubernetesλŠ” λͺ¨λ“  μ‹œμŠ€ν…œ μƒνƒœλ₯Ό etcd에 μ €μž₯ν•˜λ―€λ‘œ CNI λ„€νŠΈμ›Œν‚Ή ν”ŒλŸ¬κ·ΈμΈμ—μ„œ μ§€μ›ν•˜λŠ” 경우 동적 방화벽을 ꡬ성할 수 μžˆμŠ΅λ‹ˆλ‹€.

Calico, Cilium, kube-router, Romana 및 Weave Net은 λͺ¨λ‘ Network Policy을 μ§€μ›ν•©λ‹ˆλ‹€.

Kubernetes λ„€νŠΈμ›Œν¬ 정책은 DNS 이름에 μ μš©ν•  수 μ—†μŠ΅λ‹ˆλ‹€. κ³ μ • IP λ˜λŠ” podSelector(동적 Kubernetes IP의 경우)μ—λ§Œ λ„€νŠΈμ›Œν¬ 정책을 μ μš©ν•  수 있기 λ•Œλ¬Έμž…λ‹ˆλ‹€.

λͺ¨λ²” μ‚¬λ‘€λŠ” λ„€μž„μŠ€νŽ˜μ΄μŠ€μ— λŒ€ν•œ λͺ¨λ“  νŠΈλž˜ν”½μ„ κ±°λΆ€ν•˜λŠ” κ²ƒμœΌλ‘œ μ‹œμž‘ν•˜κ³  μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ΄ 수락 ν…ŒμŠ€νŠΈ μ œν’ˆκ΅°μ„ 톡과할 수 μžˆλ„λ‘ 경둜λ₯Ό μ μ§„μ μœΌλ‘œ μΆ”κ°€ν•˜λŠ” κ²ƒμž…λ‹ˆλ‹€.

10. Scan Images and Run IDS(μΉ¨μž… 탐지 μ‹œμŠ€ν…œ)

μ›Ή μ„œλ²„λŠ” μ™ΈλΆ€μ—μ„œ http/httpsλ₯Ό ν†΅ν•΄μ„œ podλ‚΄λΆ€μ½”λ“œλ₯Ό μ‹€ν–‰ν• μˆ˜ 있음

이미지 μŠ€μΊ”ν•˜λ©΄ κ³΅κ²©μžκ°€ μ»¨ν…Œμ΄λ„ˆμ— 원격 μ•‘μ„ΈμŠ€ν•˜κΈ° μœ„ν•΄ μ•…μš©ν•  수 μžˆλŠ” μ•Œλ €μ§„ 취약점이 μ—†λŠ”μ§€ ν™•μΈν•©λ‹ˆλ‹€.

IDS(μΉ¨μž… 탐지 μ‹œμŠ€ν…œ)을 μ‚¬μš©ν•©λ‹ˆλ‹€.

μ΄λŸ¬ν•œ 웹훅은 μ»¨ν…Œμ΄λ„ˆ 이미지 μŠ€μΊ” λ„κ΅¬μ—μ„œ 이미지λ₯Ό ν΄λŸ¬μŠ€ν„°μ— λ°°ν¬ν•˜κΈ° 전에 μœ νš¨μ„±μ„ κ²€μ‚¬ν•˜λŠ” 데 μ‚¬μš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€. 검사에 μ‹€νŒ¨ν•œ μ΄λ―Έμ§€λŠ” μž…μž₯이 거뢀될 수 μžˆμŠ΅λ‹ˆλ‹€.

μ•Œλ €μ§„ 취약점에 λŒ€ν•΄ μ»¨ν…Œμ΄λ„ˆ 이미지λ₯Ό μŠ€μΊ”ν•˜λ©΄ κ³΅κ²©μžκ°€ 곡개된 CVEλ₯Ό μ•…μš©ν•  수 μžˆλŠ” μ‹œκ°„μ„ 쀄일 수 μžˆμŠ΅λ‹ˆλ‹€. CoreOS의 Clair 및 Aqua의 Micro Scanner와 같은 무료 λ„κ΅¬λŠ” 배포 νŒŒμ΄ν”„λΌμΈμ—μ„œ μ‚¬μš©λ˜μ–΄ μ€‘μš”ν•˜κ³  μ•…μš© κ°€λŠ₯ν•œ 취약점이 μžˆλŠ” μ΄λ―Έμ§€μ˜ 배포λ₯Ό λ°©μ§€ν•΄μ•Ό ν•©λ‹ˆλ‹€.

Grafeas와 같은 λ„κ΅¬λŠ” μ»¨ν…Œμ΄λ„ˆμ˜ 고유 μ„œλͺ…(μ½˜ν…μΈ  μ£Όμ†Œ μ§€μ • κ°€λŠ₯ ν•΄μ‹œ)에 λŒ€ν•œ 지속적인 κ·œμ • μ€€μˆ˜ 및 μ·¨μ•½μ„± 검사λ₯Ό μœ„ν•΄ 이미지 메타데이터λ₯Ό μ €μž₯ν•  수 μžˆμŠ΅λ‹ˆλ‹€. 즉, ν•΄λ‹Ή ν•΄μ‹œλ₯Ό μ‚¬μš©ν•˜μ—¬ μ»¨ν…Œμ΄λ„ˆ 이미지λ₯Ό μŠ€μΊ”ν•˜λŠ” 것은 ν”„λ‘œλ•μ…˜μ— 배포된 이미지λ₯Ό μŠ€μΊ”ν•˜λŠ” 것과 λ™μΌν•˜λ©° ν”„λ‘œλ•μ…˜ ν™˜κ²½μ— μ•‘μ„ΈμŠ€ν•  ν•„μš” 없이 계속 μˆ˜ν–‰ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

μ•Œλ €μ§€μ§€ μ•Šμ€ Zero Day 취약점은 항상 μ‘΄μž¬ν•˜λ―€λ‘œ Twistlock, Aqua 및 Sysdig Secure와 같은 μΉ¨μž… 탐지 도ꡬλ₯Ό Kubernetes에 배포해야 ν•©λ‹ˆλ‹€.

IDSλŠ” μ»¨ν…Œμ΄λ„ˆμ—μ„œ 비정상적인 λ™μž‘μ„ κ°μ§€ν•˜κ³  이λ₯Ό μΌμ‹œ μ€‘μ§€ν•˜κ±°λ‚˜ μ’…λ£Œν•©λ‹ˆλ‹€. Sysdig의 FalcoλŠ” μ˜€ν”ˆ μ†ŒμŠ€ κ·œμΉ™ 엔진이며 이 μƒνƒœκ³„μ˜ μΆœλ°œμ μž…λ‹ˆλ‹€.

Part Three: The Future

λ³΄μ•ˆμ˜ "ν΄λΌμš°λ“œ λ„€μ΄ν‹°λΈŒ μ§„ν™”"의 λ‹€μŒ λ‹¨κ³„λŠ” μ„œλΉ„μŠ€ λ©”μ‹œλ‘œ λ³΄μ΄μ§€λ§Œ μ±„νƒμ—λŠ” μ‹œκ°„μ΄ 걸릴 수 μžˆμŠ΅λ‹ˆλ‹€. λ§ˆμ΄κ·Έλ ˆμ΄μ…˜μ—λŠ” μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ—μ„œ λ©”μ‹œ μΈν”„λΌλ‘œμ˜ λ³΅μž‘μ„± 이동이 ν¬ν•¨λ˜λ©° 쑰직은 λͺ¨λ²” 사둀λ₯Ό μ΄ν•΄ν•˜κΈ°λ₯Ό 열망할 κ²ƒμž…λ‹ˆλ‹€.

11. Run a Service Mesh

μ„œλΉ„μŠ€ λ©”μ‹œλŠ” Envoy 및 Linkerd와 같은 κ³ μ„±λŠ₯ "μ‚¬μ΄λ“œμΉ΄" ν”„λ‘μ‹œ μ„œλ²„ 간에 λ§Œλ“€μ–΄μ§„ μ•”ν˜Έν™”λœ 영ꡬ μ—°κ²°μ˜ μ›Ήμž…λ‹ˆλ‹€. λ§ˆμ΄ν¬λ‘œμ„œλΉ„μŠ€ λ³€κ²½ 없이 νŠΈλž˜ν”½ 관리, λͺ¨λ‹ˆν„°λ§ 및 정책을 μΆ”κ°€ν•©λ‹ˆλ‹€.

λ§ˆμ΄ν¬λ‘œμ„œλΉ„μŠ€ λ³΄μ•ˆ 및 λ„€νŠΈμ›Œν‚Ή μ½”λ“œλ₯Ό κ³΅μœ ν•˜κ³  μ „νˆ¬ ν…ŒμŠ€νŠΈλ₯Ό 거친 라이브러리 μ„ΈνŠΈλ‘œ μ˜€ν”„λ‘œλ“œν•˜λŠ” 것은 Linkerdλ₯Ό 톡해 이미 κ°€λŠ₯ν–ˆμœΌλ©° Google, IBM 및 Lyft의 Istio λ„μž…μœΌλ‘œ 이 뢄야에 λŒ€μ•ˆμ΄ μΆ”κ°€λ˜μ—ˆμŠ΅λ‹ˆλ‹€. ν¬λ“œλ‹Ή μ•”ν˜Έν™” IDλ₯Ό μœ„ν•œ SPIFFE 및 기타 λ‹€μ–‘ν•œ κΈ°λŠ₯을 μΆ”κ°€ν•¨μœΌλ‘œμ¨ IstioλŠ” μ°¨μ„ΈλŒ€ λ„€νŠΈμ›Œν¬ λ³΄μ•ˆμ˜ 배포λ₯Ό λ‹¨μˆœν™”ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

"제둜 트러슀트" λ„€νŠΈμ›Œν¬μ—μ„œλŠ” λͺ¨λ“  μƒν˜Έ μž‘μš©μ΄ mTLS(μƒν˜Έ TLS)λ₯Ό 톡해 λ°œμƒν•˜λ―€λ‘œ κΈ°μ‘΄ λ°©ν™”λ²½μ΄λ‚˜ Kubernetes λ„€νŠΈμ›Œν¬ 정책이 ν•„μš”ν•˜μ§€ μ•Šμ„ 수 μžˆμŠ΅λ‹ˆλ‹€.

전톡적인 λ„€νŠΈμ›Œν‚Ήμ—μ„œ ν΄λΌμš°λ“œ λ„€μ΄ν‹°λΈŒ λ³΄μ•ˆ μ›μΉ™μœΌλ‘œμ˜ μ΄λŸ¬ν•œ μ „ν™˜μ€ 전톡적인 λ³΄μ•ˆ 사고방식을 κ°€μ§„ μ‚¬λžŒλ“€μ—κ²Œ 쉽지 μ•Šμ„ κ²ƒμœΌλ‘œ μ˜ˆμƒλ˜λ©° SPIFFE의 Evan Gilman이 μ“΄ Zero Trust Networking 책은 이 λ©‹μ§„ 신세계λ₯Ό μ†Œκ°œν•˜λŠ” 데 적극 ꢌμž₯λ©λ‹ˆλ‹€.

Istio LTSκ°€ μΆœμ‹œλ˜μ—ˆμœΌλ©° ν”„λ‘œμ νŠΈλŠ” 1.0 λ¦΄λ¦¬μŠ€μ— λΉ λ₯΄κ²Œ μ ‘κ·Όν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€. μ•ˆμ •μ„± 버전 κ΄€λ¦¬λŠ” Kubernetes λͺ¨λΈκ³Ό λ™μΌν•©λ‹ˆλ‹€. κ°œλ³„ APIκ°€ 자체 μ•ŒνŒŒ/베타 μ•ˆμ •μ„± λ„€μž„μŠ€νŽ˜μ΄μŠ€μ—μ„œ μžμ‹ μ„ μ‹λ³„ν•˜λŠ” μ•ˆμ •μ μΈ μ½”μ–΄μž…λ‹ˆλ‹€. μ•žμœΌλ‘œ λͺ‡ 달 λ™μ•ˆ Istio 채택이 증가할 κ²ƒμœΌλ‘œ μ˜ˆμƒλ©λ‹ˆλ‹€.

Last updated

Was this helpful?