advanced
IAM
Моделируйте least-privilege: users, roles, policies, service principals, временные credentials и границы ресурсов.
IAM определяет, кто что может делать с ресурсами AWS. Типы субъектов: users (люди), roles (для сервисов и federated identity), groups. Policies — JSON-документы allow/deny; явный deny побеждает.
Для Node.js в AWS предпочитайте roles вместо access keys: instance profiles EC2, task roles ECS, execution roles Lambda, IRSA в EKS — временные credentials через STS. Ограничивайте policies ARN ресурсов, conditions (source IP, MFA) и permission boundaries для сторонних интеграций.
| Примитив | Типичное применение | |----------|---------------------| | Role | Runtime-credentials приложений и автоматизации | | Policy | На identity или на ресурс | | Service control policy | Ограничители на уровне организации |
На интервью: least privilege, role chaining, cross-account доступ, resource-based policies (bucket policy S3 vs IAM policy) и почему долгоживущие `AKIA` в `.env` — красный флаг.
Типовые ошибки: `*` на actions и resources; один мощный role на все микросервисы; ключи во frontend bundle; нет аудита break-glass для admin roles.
Компромисс — тонкая безопасность против разрастания policies и медленного онбординга без хороших defaults и IaC.
Чеклист:
- Без статических ключей в коде и логах CI.
- Отдельный role на сервис с минимальными actions.
- IAM Access Analyzer и периодический пересмотр policies.
- MFA и SSO для человеческого доступа.