advanced

IAM

Назначайте права через projects, service accounts, roles, workload identity и organization policies с least privilege.

GCP IAM задаёт, кто что может делать с ресурсом: identities, roles и policies. FullStack-командам важно разделить людей и workloads: инженеры — через группы и короткоживущие credentials, а Cloud Run, pod'ы GKE и CI — через отдельные service account с узкими custom roles.

| Identity | Типичное использование | |----------|------------------------| | User / group | Доступ инженеров через Google groups | | Service account | Runtime и automation | | Workload Identity | Pod Kubernetes → GCP API без JSON-ключей |

					gcloud projects add-iam-policy-binding my-project \
  --member="serviceAccount:api-runner@my-project.iam.gserviceaccount.com" \
  --role="roles/cloudsql.client"
				

Берите predefined roles, где хватает; иначе — custom roles с least privilege. Аудит — Policy Analyzer и Cloud Audit Logs.

На интервью: ключи service account vs Workload Identity; least privilege; иерархия project/folder/org; conditional IAM; CI ломается от слишком широких ролей.

Типовые ошибки: JSON-ключи в репозитории или на ноутбуке; один «супер-admin» SA на все микросервисы; `Editor` вместо роли под задачу.

Компромисс — скорость от широких прав против blast radius, аудируемости и compliance.

Чеклист:

  • Без долгоживущих ключей в коде приложения.
  • Service account на workload с минимальными ролями.
  • Workload Identity в GKE, attached SA в Cloud Run.
  • IAM bindings — в code review как бизнес-логика.