SOFTWAREENGINEERVLOG Telegram 2301
Forwarded from S0ER.Arch
🚨 Π’Π°Ρˆ Kubernetes нСбСзопасСн: 3 ошибки, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄Π΅Π»Π°ΡŽΡ‚ всС (ΠΈ ΠΊΠ°ΠΊ ΠΈΡ… ΠΈΡΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ Π·Π° 5 ΠΌΠΈΠ½ΡƒΡ‚)

Π›ΡŽΠ±Π»ΡŽ Docker, K8s ΠΈ ΠΊΠ»ΠΈΠΊΠ±Π΅ΠΉΡ‚Π½Ρ‹Π΅ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΈ. Но Ссли ΡΠ΅Ρ€ΡŒΡ‘Π·Π½ΠΎ, Ρ‚ΠΎ ошибок ΠΏΡ€ΠΈ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ ΠΊΡƒΠ±Π΅Ρ€Π° ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΎΡ‡Π΅Π½ΡŒ ΠΌΠ½ΠΎΠ³ΠΎ.

БСйчас ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΠΈΠ³Ρ€Π°ΡŽΡ‚ с ΠΎΠ±Π»Π°ΠΊΠ°ΠΌΠΈ (ΠΈ я Π² Ρ‚ΠΎΠΌ числС) Π² ΠΌΠΎΠ΅ΠΉ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ ΠΎΠΏΡ‹Ρ‚Π½Ρ‹ΠΉ дСвопс сходу нашСл 3 ошибки, ΠΈΠ·-Π·Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… кластСры Π²Π·Π»Π°ΠΌΡ‹Π²Π°ΡŽΡ‚, майнят ΠΊΡ€ΠΈΠΏΡ‚Ρƒ ΠΈΠ»ΠΈ просто случайно Ρ€ΠΎΠ½ΡΡŽΡ‚ ΠΏΡ€ΠΎΠ΄Π°ΠΊΡˆΠ΅Π½.

πŸ”΄ Ошибка 1: default namespace β€” мусорка, которая соТТёт Π²Π°ΠΌ всё

- ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΠ°: запустил ΠΏΠΎΠ΄Ρ‹ Π² default, Π·Π°Π±Ρ‹Π² ΠΏΡ€ΠΎ ΠΈΠ·ΠΎΠ»ΡΡ†ΠΈΡŽ.

- Π§Π΅ΠΌ опасно: Π’Π·Π»ΠΎΠΌ ΠΎΠ΄Π½ΠΎΠ³ΠΎ сСрвиса = доступ ΠΊΠΎ всСм.

- Как ΠΈΡΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ:

kubectl create namespace my-app
kubectl config set-context --current --namespace=my-app



πŸ”΄ Ошибка 2: ServiceAccount с ΠΏΡ€Π°Π²Π°ΠΌΠΈ Π±ΠΎΠ³Π°

- ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΠ°: сСрвисный Π°ΠΊΠΊΠ°ΡƒΠ½Ρ‚ default:default ΠΈΠΌΠ΅Π΅Ρ‚ ΠΏΡ€Π°Π²Π° cluster-admin (Π΄Π°, Π±Ρ‹Π»ΠΎ лСнь Ρ€Π°Π·Π±ΠΈΡ€Π°Ρ‚ΡŒΡΡ с ΠΏΡ€Π°Π²Π°ΠΌΠΈ).

- Π§Π΅ΠΌ опасно: Π—Π»ΠΎΡƒΠΌΡ‹ΡˆΠ»Π΅Π½Π½ΠΈΠΊ β†’ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ» Ρ‚ΠΎΠΊΠ΅Π½ β†’ ΠΏΠΎΠ»Π½Ρ‹ΠΉ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒ Π½Π°Π΄ кластСром.

- Как ΠΈΡΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ:

kubectl create rolebinding restricted-view \
--clusterrole=view \
--serviceaccount=default:default \
--namespace=default



πŸ”΄ Ошибка 3: НС Π²ΠΊΠ»ΡŽΡ‡Ρ‘Π½ PodSecurityPolicy (ΠΈΠ»ΠΈ Π΅Π³ΠΎ Π°Π½Π°Π»ΠΎΠ³ΠΈ)

- ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΠ°: ΠŸΠΎΠ΄Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒΡΡ ΠΎΡ‚ root, ΠΌΠΎΠ½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ /etc ΠΈ Π΄Π΅Π»Π°Ρ‚ΡŒ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΆΡƒΡ‚ΠΊΠΈΠ΅ Π²Π΅Ρ‰ΠΈ.

- Π§Π΅ΠΌ опасно: Escalation privileges β†’ хостовая систСма ΠΏΠΎΠ΄ ΡƒΠ΄Π°Ρ€ΠΎΠΌ.

- Как ΠΈΡΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ:

# Для Π½ΠΎΠ²Ρ‹Ρ… вСрсий K8s (PSP deprecated, Π½ΠΎ Π΅ΡΡ‚ΡŒ Π·Π°ΠΌΠ΅Π½Ρ‹):
kubectl label ns my-app pod-security.kubernetes.io/enforce=restricted



πŸ’₯ Бонус: Если ваш кластСр ΡƒΠΆΠ΅ ΠΆΠΈΠ²Ρ‘Ρ‚ с этим Π³ΠΎΠ΄Π°ΠΌΠΈ β€” ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ Π΅Π³ΠΎ :

kubectl get pods --all-namespaces -o json | grep "serviceAccount: default"


Π•ΡΡ‚ΡŒ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ошибки, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ я сдСлал, Ссли Ρ‚Π΅ΠΌΠ° интСрСсна, Ρ‚ΠΎ Π½Π°ΠΏΠΈΡˆΠΈΡ‚Π΅ Π² коммСнтариях ΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ΡΡŒ Π»ΠΈ k8s для своих ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ², Ρ‡Ρ‚ΠΎ ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡ΠΈΡ‚Π°Π΅Ρ‚Π΅ manages cluster ΠΈΠ»ΠΈ ΠΊΠΎΠ»Ρ…ΠΎΠ· Π°-ля minicube?
πŸ”₯41πŸ‘143πŸ‘Ž22❀1πŸ‘€1



tgoop.com/softwareengineervlog/2301
Create:
Last Update:

🚨 Π’Π°Ρˆ Kubernetes нСбСзопасСн: 3 ошибки, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄Π΅Π»Π°ΡŽΡ‚ всС (ΠΈ ΠΊΠ°ΠΊ ΠΈΡ… ΠΈΡΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ Π·Π° 5 ΠΌΠΈΠ½ΡƒΡ‚)

Π›ΡŽΠ±Π»ΡŽ Docker, K8s ΠΈ ΠΊΠ»ΠΈΠΊΠ±Π΅ΠΉΡ‚Π½Ρ‹Π΅ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΈ. Но Ссли ΡΠ΅Ρ€ΡŒΡ‘Π·Π½ΠΎ, Ρ‚ΠΎ ошибок ΠΏΡ€ΠΈ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ ΠΊΡƒΠ±Π΅Ρ€Π° ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΎΡ‡Π΅Π½ΡŒ ΠΌΠ½ΠΎΠ³ΠΎ.

БСйчас ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΠΈΠ³Ρ€Π°ΡŽΡ‚ с ΠΎΠ±Π»Π°ΠΊΠ°ΠΌΠΈ (ΠΈ я Π² Ρ‚ΠΎΠΌ числС) Π² ΠΌΠΎΠ΅ΠΉ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ ΠΎΠΏΡ‹Ρ‚Π½Ρ‹ΠΉ дСвопс сходу нашСл 3 ошибки, ΠΈΠ·-Π·Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… кластСры Π²Π·Π»Π°ΠΌΡ‹Π²Π°ΡŽΡ‚, майнят ΠΊΡ€ΠΈΠΏΡ‚Ρƒ ΠΈΠ»ΠΈ просто случайно Ρ€ΠΎΠ½ΡΡŽΡ‚ ΠΏΡ€ΠΎΠ΄Π°ΠΊΡˆΠ΅Π½.

πŸ”΄ Ошибка 1: default namespace β€” мусорка, которая соТТёт Π²Π°ΠΌ всё

- ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΠ°: запустил ΠΏΠΎΠ΄Ρ‹ Π² default, Π·Π°Π±Ρ‹Π² ΠΏΡ€ΠΎ ΠΈΠ·ΠΎΠ»ΡΡ†ΠΈΡŽ.

- Π§Π΅ΠΌ опасно: Π’Π·Π»ΠΎΠΌ ΠΎΠ΄Π½ΠΎΠ³ΠΎ сСрвиса = доступ ΠΊΠΎ всСм.

- Как ΠΈΡΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ:

kubectl create namespace my-app
kubectl config set-context --current --namespace=my-app



πŸ”΄ Ошибка 2: ServiceAccount с ΠΏΡ€Π°Π²Π°ΠΌΠΈ Π±ΠΎΠ³Π°

- ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΠ°: сСрвисный Π°ΠΊΠΊΠ°ΡƒΠ½Ρ‚ default:default ΠΈΠΌΠ΅Π΅Ρ‚ ΠΏΡ€Π°Π²Π° cluster-admin (Π΄Π°, Π±Ρ‹Π»ΠΎ лСнь Ρ€Π°Π·Π±ΠΈΡ€Π°Ρ‚ΡŒΡΡ с ΠΏΡ€Π°Π²Π°ΠΌΠΈ).

- Π§Π΅ΠΌ опасно: Π—Π»ΠΎΡƒΠΌΡ‹ΡˆΠ»Π΅Π½Π½ΠΈΠΊ β†’ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ» Ρ‚ΠΎΠΊΠ΅Π½ β†’ ΠΏΠΎΠ»Π½Ρ‹ΠΉ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒ Π½Π°Π΄ кластСром.

- Как ΠΈΡΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ:

kubectl create rolebinding restricted-view \
--clusterrole=view \
--serviceaccount=default:default \
--namespace=default



πŸ”΄ Ошибка 3: НС Π²ΠΊΠ»ΡŽΡ‡Ρ‘Π½ PodSecurityPolicy (ΠΈΠ»ΠΈ Π΅Π³ΠΎ Π°Π½Π°Π»ΠΎΠ³ΠΈ)

- ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΠ°: ΠŸΠΎΠ΄Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒΡΡ ΠΎΡ‚ root, ΠΌΠΎΠ½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ /etc ΠΈ Π΄Π΅Π»Π°Ρ‚ΡŒ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΆΡƒΡ‚ΠΊΠΈΠ΅ Π²Π΅Ρ‰ΠΈ.

- Π§Π΅ΠΌ опасно: Escalation privileges β†’ хостовая систСма ΠΏΠΎΠ΄ ΡƒΠ΄Π°Ρ€ΠΎΠΌ.

- Как ΠΈΡΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ:

# Для Π½ΠΎΠ²Ρ‹Ρ… вСрсий K8s (PSP deprecated, Π½ΠΎ Π΅ΡΡ‚ΡŒ Π·Π°ΠΌΠ΅Π½Ρ‹):
kubectl label ns my-app pod-security.kubernetes.io/enforce=restricted



πŸ’₯ Бонус: Если ваш кластСр ΡƒΠΆΠ΅ ΠΆΠΈΠ²Ρ‘Ρ‚ с этим Π³ΠΎΠ΄Π°ΠΌΠΈ β€” ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ Π΅Π³ΠΎ :

kubectl get pods --all-namespaces -o json | grep "serviceAccount: default"


Π•ΡΡ‚ΡŒ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ошибки, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ я сдСлал, Ссли Ρ‚Π΅ΠΌΠ° интСрСсна, Ρ‚ΠΎ Π½Π°ΠΏΠΈΡˆΠΈΡ‚Π΅ Π² коммСнтариях ΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ΡΡŒ Π»ΠΈ k8s для своих ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ², Ρ‡Ρ‚ΠΎ ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡ΠΈΡ‚Π°Π΅Ρ‚Π΅ manages cluster ΠΈΠ»ΠΈ ΠΊΠΎΠ»Ρ…ΠΎΠ· Π°-ля minicube?

BY S0ER


Share with your friend now:
tgoop.com/softwareengineervlog/2301

View MORE
Open in Telegram


Telegram News

Date: |

A new window will come up. Enter your channel name and bio. (See the character limits above.) Click β€œCreate.” Healing through screaming therapy Deputy District Judge Peter Hui sentenced computer technician Ng Man-ho on Thursday, a month after the 27-year-old, who ran a Telegram group called SUCK Channel, was found guilty of seven charges of conspiring to incite others to commit illegal acts during the 2019 extradition bill protests and subsequent months. SUCK Channel Telegram End-to-end encryption is an important feature in messaging, as it's the first step in protecting users from surveillance.
from us


Telegram S0ER
FROM American