IAM i konta usług (service accounts)
IAM w Google Cloud odpowiada na pytanie "kto może co robić na którym zasobie". Model jest spójny w całej hierarchii, a szczególną rolę grają konta usług (service accounts) — to ich ZEUS używa do read-only dostępu.
Trzy elementy: member, role, resource
Polityka IAM to zbiór bindingów łączących:
- member — kto (użytkownik, grupa, konto usługi, domena),
- role — zestaw uprawnień,
- resource — gdzie (organizacja/folder/projekt/zasób).
# Nadaj rolę Viewer użytkownikowi na projekcie
gcloud projects add-iam-policy-binding zeus-prod-4471 \
--member="user:jan@professnet.pl" \
--role="roles/viewer"
# Podejrzyj politykę IAM projektu
gcloud projects get-iam-policy zeus-prod-4471
Rodzaje ról
| Typ roli | Przykład | Uwaga |
|---|---|---|
| Podstawowe (basic) | roles/owner, roles/editor, roles/viewer | zbyt szerokie — unikaj w prod |
| Predefiniowane | roles/compute.viewer | wąskie, per usługa — preferowane |
| Custom | własny zestaw uprawnień | gdy predefiniowane nie pasują |
Wskazówka: role podstawowe (
editor,owner) dają ogromny zakres uprawnień w całym projekcie. ZEUS flaguje ich nadużywanie jako finding — least privilege oznacza role predefiniowane lub custom.
Konta usług (service accounts)
Service account to tożsamość dla aplikacji i automatyzacji (nie dla ludzi).
Identyfikowana adresem typu nazwa@projekt.iam.gserviceaccount.com. Może
przyjmować role tak jak użytkownik.
gcloud iam service-accounts create zeus-reader \
--display-name="ZEUS read-only connector"
gcloud projects add-iam-policy-binding zeus-prod-4471 \
--member="serviceAccount:zeus-reader@zeus-prod-4471.iam.gserviceaccount.com" \
--role="roles/viewer"
Klucze kont usług — ryzyko
Konto usługi może mieć klucz JSON (długoterminowy sekret). To największe źródło incydentów w GCP — wyciekłe klucze service account dają trwały dostęp. Dlatego Google (i ZEUS) rekomendują Workload Identity zamiast kluczy:
# Liczba kluczy konta usługi (im mniej, tym lepiej — najlepiej zero)
gcloud iam service-accounts keys list \
--iam-account=zeus-reader@zeus-prod-4471.iam.gserviceaccount.com
Jak to widzi ZEUS
ZEUS odczytuje pełne polityki IAM (na każdym poziomie hierarchii) i wszystkie konta usług. Szczególnie sprawdza: użycie ról podstawowych, konta usług z nadmiarowymi uprawnieniami oraz istnienie kluczy JSON — bo to materiał na poważny incydent. Sam ZEUS uwierzytelnia się bez klucza, przez Workload Identity Federation (szczegóły w lekcji 06), dając przykład dobrej praktyki.
W następnej lekcji: Compute Engine i Cloud Storage.