← [Главная](../README.md)

# Раздел 07 — Безопасность инфраструктуры

Защита **облака, сетей, контейнеров и IaC**: кто имеет доступ, как изолированы сегменты, как harden'ить Kubernetes и образы, и как безопасно описывать инфраструктуру кодом.

## Карта тем

| Тема | Файл | Фокус |
|------|------|-------|
| IAM и least privilege | [iam-least-privilege.md](iam-least-privilege.md) | Пользователи, роли, сервисные аккаунты |
| Сети и сегментация | [seti-segmentaciya.md](seti-segmentaciya.md) | VPC, firewall, zero trust basics |
| Kubernetes security | [kubernetes-security.md](kubernetes-security.md) | RBAC, policies, secrets |
| Container hardening | [container-hardening.md](container-hardening.md) | Образы, runtime, minimal attack surface |
| Terraform security | [terraform-security.md](terraform-security.md) | IaC scan, state, drift |

## Рекомендуемый порядок

```
iam-least-privilege → seti-segmentaciya → container-hardening → kubernetes-security → terraform-security
```

Сначала «кто и откуда», затем «чем упаковано», затем «как описано кодом».

## Цель раздела

Вы сможете провести **lightweight infra security review**: checklist для нового сервиса в K8s с Terraform и пониманием типичных misconfiguration.

## Предварительно

- Базовые понятия: VM/контейнер, API облака, DNS, TLS.
- [Раздел 06](../06-bezopasnost-koda/README.md) — image scan, secrets.

## Время

| Формат | Оценка |
|--------|--------|
| Чтение | 4–5 часов |
| Checklist audit lab | 3–6 часов |

## Shared responsibility model

| Вы отвечаете | Провайдер (AWS/GCP/Azure) |
|--------------|---------------------------|
| Data, IAM policies | Physical DC |
| OS patch (IaaS) / image (containers) | Hypervisor |
| Security groups / K8s RBAC | Managed K8s control plane* |
| App config | Region availability |

*В managed Kubernetes часть control plane — на провайдере; **workloads — ваша зона**.

## Самопроверка

- [ ] Могу объяснить least privilege на примере S3 bucket policy.
- [ ] Знаю разницу NetworkPolicy и cloud security group.
- [ ] Понимаю, зачем non-root container и read-only root FS.

## Defense in depth (слои)

```
[Identity IAM] → [Network segmentation] → [Hardened container]
        → [K8s RBAC & policies] → [IaC scan before apply]
        → [Runtime logs & alerts]
```

Компромисс одного слоя не должен давать полный доступ — см. [раздел 08](../08-runtime-monitoring/README.md).

## Cloud vs on-prem (одинаковые принципы)

| Принцип | AWS пример | On-prem аналог |
|---------|------------|----------------|
| Least privilege | IAM role | AD groups + RBAC |
| Segmentation | VPC subnets | VLAN + firewall |
| Secrets | Secrets Manager | Vault |
| Audit | CloudTrail | Syslog + SIEM |
| Workloads | EKS | Self-managed K8s |

Синтаксис другой — **мышление** одно.

## Чеклист «новый сервис в prod»

- [ ] Service account / IAM role с минимальными правами
- [ ] DB в private subnet, no public IP
- [ ] Container non-root, scanned image
- [ ] K8s namespace с NetworkPolicy + PSS restricted
- [ ] Terraform plan reviewed, tfsec clean
- [ ] Logs → central SIEM, CloudTrail enabled

## Типичные инциденты из misconfig

| Инцидент | Корень | Раздел |
|----------|--------|--------|
| Public S3 bucket | IAM + bucket policy | IAM, Terraform |
| Crypto mining in cluster | Weak RBAC + open egress | K8s, сети |
| Stolen cloud keys in pod | No IRSA | IAM, K8s |
| Open admin panel | SG 0.0.0.0/0 | Сети |

## Практика

1. Нарисуйте схему VPC для 3-tier app на бумаге.
2. Audit один Dockerfile по [container hardening checklist](container-hardening.md).
3. Прогоните `tfsec` или `checkov` на sample Terraform (учебный модуль).

## Самопроверка (раздел)

- [ ] Могу объяснить shared responsibility model на одном примере.
- [ ] Знаю 3 пункта checklist «новый сервис в prod».
- [ ] Понимаю, почему Terraform state — sensitive asset.

## Дальше

[IAM и least privilege](iam-least-privilege.md)
