advanced

IAM

Least privilege через identities, roles, policies, временные credentials, audit trail и разделение людей и workloads.

Cloud IAM определяет, кто что может делать с какими ресурсами. FullStack JS-команды сталкиваются с IAM, когда CI деплоит в AWS/GCP/Azure, когда Lambda или Cloud Run вызывают S3 или Pub/Sub, и когда люди заходят в консоли через SSO. Сильный дизайн разделяет human и workload identities и даёт least privilege через scoped roles.

| Принцип | Практика | |---------|----------| | Least privilege | Узкие policies на сервис и окружение | | Short-lived creds | OIDC из GitHub Actions, не долгие keys | | Separation | Dev-роли не меняют production data | | Audit | CloudTrail / audit logs на смену policies |

Предпочитайте role assumption и managed identities вместо access keys в `.env` или слоях Docker. Ротируйте секреты и проверяйте wildcard `*` в policies runtime-сервисов.

На интервью: human vs workload identity, OIDC federation для CI, permission boundaries, break-glass admin и риски слишком широких S3 или DynamoDB policies.

Типовые ошибки: общие admin keys в CI; одна mega-role на все microservices; IAM user keys во frontend-репозиториях; отсутствие тестов deny-сценариев и recovery при lock-out.

Компромисс — трение деплоя (много мелких roles) против blast radius при утечке credentials или компрометации сервиса.

Чеклист:

  • Workload roles на каждый deploy target и сервис.
  • CI через OIDC federation без static keys.
  • Регулярный review policies; убирайте wildcards.
  • Логи и алерты на privilege escalation.