Quick Answer
AWS IAM Access Control: Polityki, role i najlepsze praktyki AWS Identity and Access Management (IAM) to usługa, która zarządza uwierzytelnianiem i autoryzacją...
Key Topics Covered
AWS IAM Access Control: Polityki, role i najlepsze praktyki
AWS Identity and Access Management (IAM) to usługa, która zarządza uwierzytelnianiem i autoryzacją dla każdego wywołania API w Twoim środowisku AWS. Określa, kto może się zalogować, jakie akcje może wykonać i na jakich zasobach — w każdej usłudze AWS, w każdym regionie, dla każdego konta. Prawidłowa konfiguracja IAM nie jest opcjonalna; zgodnie z własnymi analizami incydentów AWS, błędnie skonfigurowane polityki IAM są powiązane z większością naruszeń bezpieczeństwa chmury, które trafiają do publicznej wiadomości. W tym artykule omawiamy architekturę IAM, logikę ewaluacji polityk, praktyczne wzorce skalowania kontroli dostępu oraz błędy operacyjne, na które SOC Opsio regularnie trafia, zarządzając setkami kont AWS.
Kluczowe wnioski
- AWS IAM to fundamentalna usługa kontrolująca, kto i co może robić z każdym zasobem AWS — a błędy w jego konfiguracji są najczęstszą przyczyną incydentów bezpieczeństwa w chmurze.
- Skuteczne zarządzanie IAM wymaga warstwowego stosowania polityk tożsamościowych, polityk zasobów, granic uprawnień i Service Control Policies — samo dołączanie zarządzanych polityk do użytkowników nie wystarczy.
- Organizacje podlegające NIS2 (Ustawa o KSC), RODO czy DPDPA 2023 muszą traktować konfigurację IAM jako kontrolę zgodności, a nie jedynie wygodę operacyjną.
- ABAC (kontrola dostępu oparta na atrybutach) z użyciem tagów jest obecnie zalecanym wzorcem skalowania dla organizacji z więcej niż kilkoma kontami, ale większość zespołów wciąż domyślnie stosuje RBAC.
- Największe awarie IAM, jakie bada SOC Opsio, to nie eskalacje uprawnień — to nieużywane poświadczenia i nadmiernie uprzywilejowane role serwisowe, których nikt nie przeglądał.
Jak działa AWS IAM: Model podstawowy
IAM działa w modelu domyślnej odmowy (default-deny). Każde żądanie do API AWS jest ewaluowane względem zestawu polityk — jeśli ewaluacja nie zwróci jawnego Allow (bez nadpisującego Deny) — żądanie zostanie odrzucone. Zrozumienie tego łańcucha ewaluacji to najważniejsza koncepcja w kontroli dostępu AWS.
Principalowie, akcje, zasoby i warunki
Każda deklaracja (statement) polityki IAM składa się z czterech elementów:
- Principal — podmiot wykonujący żądanie (użytkownik IAM, rola IAM, sfederowana tożsamość, usługa AWS)
- Action — konkretna operacja API (
s3:GetObject,ec2:RunInstances,iam:CreateUser) - Resource — ARN(y) zasobów, których akcja dotyczy
- Condition — opcjonalne ograniczenia (źródłowy adres IP, status MFA, pora dnia, tagi zasobów)
Polityka to dokument JSON zawierający jedną lub więcej deklaracji, z których każda ma Effect o wartości Allow lub Deny. Siła — i złożoność — wynika z tego, jak wiele polityk współdziała podczas ewaluacji.
Łańcuch ewaluacji polityk
Gdy principal wykonuje żądanie w ramach organizacji AWS Organizations, ewaluacja przebiega w następującej kolejności:
1. Service Control Policies (SCP) — zabezpieczenia na poziomie organizacji definiujące maksymalne uprawnienia dla kont członkowskich
2. Polityki zasobów (resource-based policies) — dołączone do samego zasobu (np. polityki bucket S3, polityki kluczy KMS)
3. Granice uprawnień IAM (permission boundaries) — maksymalne uprawnienia, jakie encja IAM może mieć, niezależnie od jej polityk tożsamościowych
4. Polityki sesji (session policies) — przekazywane przy przyjmowaniu roli, dalej ograniczające zakres sesji
5. Polityki oparte na tożsamości (identity-based policies) — polityki dołączone do użytkownika, grupy lub roli IAM
Jawne Deny na dowolnym poziomie nadpisuje wszystkie deklaracje Allow. Ten warstwowy model oznacza, że można wymusić zabezpieczenia na poziomie całej organizacji (za pomocą SCP), nawet jeśli administratorzy poszczególnych kont próbują przyznać szerszy dostęp.
Zrozumienie tego łańcucha to nie teoria — NOC Opsio regularnie namierza błędy access-denied wynikające z ograniczeń SCP, o których administratorzy kont nie wiedzieli. Jeśli rozwiązujesz problem 403 na wywołaniu API, gdzie polityka tożsamościowa wyraźnie wskazuje Allow, sprawdź najpierw SCP.
Potrzebujesz pomocy z cloud?
Zarezerwuj bezpłatne 30-minutowe spotkanie z jednym z naszych specjalistów od cloud. Przeanalizujemy Twoje potrzeby i przedstawimy konkretne rekomendacje — bez zobowiązań.
Elementy składowe IAM w praktyce
Użytkownicy IAM vs. role IAM vs. sfederowane tożsamości
Użytkownicy IAM to długotrwałe tożsamości ze stałymi poświadczeniami. Wciąż istnieją i działają, ale w przypadku ludzkich operatorów należy je traktować jako rozwiązanie przestarzałe. Aktualne wytyczne AWS — i stanowisko operacyjne Opsio — to federacja dostępu ludzkiego przez IAM Identity Center (dawniej AWS SSO), które wydaje tymczasowe poświadczenia przez SAML 2.0 lub OIDC.
Role IAM to kluczowy mechanizm nowoczesnego AWS IAM. Rola nie ma stałych poświadczeń; principalowie przyjmują rolę i otrzymują tymczasowe tokeny bezpieczeństwa (przez AWS STS). Role stosuje się do:
- Dostępu między kontami (workload z Konta A przyjmuje rolę w Koncie B)
- Dostępu serwis-do-serwisu (EC2 instance profile, rola wykonawcza Lambda)
- Ludzkiego dostępu przez federację (przyjęcie roli po uwierzytelnieniu przez IdP)
Sfederowane tożsamości uwierzytelniają się u zewnętrznego dostawcy tożsamości (Okta, Azure AD / Entra ID, Google Workspace) i przyjmują role IAM. Jest to wzorzec, który powinna stosować każda organizacja zatrudniająca więcej niż dziesięciu inżynierów — zarówno do konsoli, jak i CLI.
| Podejście | Poświadczenia | Najlepsze zastosowanie | Profil ryzyka |
|---|---|---|---|
| Użytkownicy IAM | Długotrwałe klucze dostępowe | Systemy legacy, konta serwisowe bez alternatywy | Wysoki — klucze wyciekają, słabo się rotują |
| Role IAM (przyjmowane) | Tymczasowe tokeny STS | Między kontami, EC2/Lambda, CI/CD | Niski — wygasają automatycznie, brak kluczy do wycieku |
| IAM Identity Center | SAML/OIDC + tymczasowe tokeny | Ludzki dostęp do wszystkich kont | Niski — scentralizowane, oparte na SSO |
| Polityki zasobów | N/D (przyznają dostęp zewnętrznym principalom) | S3, KMS, SQS między kontami | Średni — wymaga precyzyjnego określenia zakresu |
Polityki IAM: zarządzane, wbudowane i niestandardowe
Zarządzane polityki AWS (np. ReadOnlyAccess, PowerUserAccess) są utrzymywane przez AWS i obejmują typowe wzorce. Są wygodne, ale często zbyt szerokie do środowisk produkcyjnych. AdministratorAccess to najczęściej dołączana zarządzana polityka, jaką SOC Opsio wykrywa podczas audytów — i prawie nigdy nie jest uzasadniona do codziennych operacji.
Niestandardowe polityki zarządzane przez klienta powinny być domyślnym wyborem. Pisz je samodzielnie, ograniczaj do swoich faktycznych workloadów, wersjonuj w Git i wdrażaj za pomocą Infrastructure as Code (Terraform, CloudFormation lub CDK).
Polityki wbudowane (inline) są osadzone bezpośrednio w użytkowniku, grupie lub roli. Mają ścisłą relację 1:1. Stosuj je wyłącznie wtedy, gdy polityka nie może być przypadkowo dołączona do innej encji — co zdarza się rzadko.
Service Control Policies (SCP)
SCP to najpotężniejsza — i najczęściej niezrozumiana — warstwa w stosie IAM. Nie przyznają uprawnień; definiują maksymalną granicę tego, co jakikolwiek principal w koncie członkowskim może zrobić. SCP odmawiający s3:DeleteBucket oznacza, że nikt na danym koncie nie usunie bucketa, nawet mając AdministratorAccess.
Praktyczne wzorce SCP wdrażane przez Opsio dla klientów:
- Ograniczenie regionów — odmowa wszystkich akcji poza
eu-central-1(Frankfurt),eu-north-1(Stockholm) i „Poland Central" dla Azure (wymuszanie suwerenności danych zgodnie z RODO) - SCP zabezpieczające — zapobieganie wyłączeniu CloudTrail, usuwaniu logów VPC flow logs czy modyfikacji roli audytowej IAM
- Lista blokowanych usług — blokada usług nieużywanych przez organizację (np. Lightsail, GameLift) w celu zmniejszenia powierzchni ataku
RBAC vs. ABAC: Wybór odpowiedniego modelu
RBAC (kontrola dostępu oparta na rolach)
RBAC w AWS oznacza tworzenie odrębnych ról IAM dla każdej funkcji zawodowej — DevOps-Engineer, Data-Analyst, Security-Auditor — i dołączanie polityk do tych ról. Jest intuicyjny i sprawdza się, gdy:
- Masz mniej niż ~20 odrębnych ról
- Zespoły są wyraźnie rozdzielone
- Rozrost kont jest ograniczony
Wadą jest eksplozja kombinatoryczna. Przy 5 funkcjach zawodowych, 4 środowiskach (dev/staging/prod/sandbox) i 3 projektach możesz potrzebować 60 definicji ról — każda z oddzielnymi politykami.
ABAC (kontrola dostępu oparta na atrybutach)
ABAC wykorzystuje tagi zarówno na principalach, jak i na zasobach do podejmowania decyzji autoryzacyjnych. Zamiast 60 ról piszesz mniejszy zestaw polityk z warunkami takimi jak:
```json
"Condition": {
"StringEquals": {
"aws:ResourceTag/Project": "${aws:PrincipalTag/Project}",
"aws:ResourceTag/Environment": "${aws:PrincipalTag/Environment}"
}
}
```
To pozwala deweloperowi otagowanemu Project=payments, Environment=dev na dostęp wyłącznie do zasobów otagowanych w ten sam sposób — bez tworzenia ról specyficznych dla projektu czy środowiska.
Dokumentacja IAM AWS jawnie rekomenduje ABAC jako preferowany model skalowania. W praktyce większość organizacji zarządzanych przez Opsio stosuje podejście hybrydowe: RBAC do szerokiego podziału wg funkcji zawodowych, ABAC do szczegółowego określania zakresu zasobów w ramach tych ról.
Pułapka operacyjna: ABAC działa tylko wtedy, gdy tagowanie jest zdyscyplinowane. Jeśli zespoły nie tagują zasobów konsekwentnie, warunki zawodzą — albo udzielając zbyt szerokiego dostępu, albo blokując go w nieprzewidywalny sposób. Wymuszaj tagowanie za pomocą SCP i reguł AWS Config, zanim postawisz na ABAC.
Najlepsze praktyki IAM: Co naprawdę się liczy
Filar bezpieczeństwa AWS Well-Architected Framework definiuje najlepsze praktyki IAM w pięciu obszarach. Oto, co w praktyce produkcyjnej ma największe znaczenie — nie teoria:
1. Wyeliminuj długotrwałe klucze dostępowe
Każdy klucz dostępowy to poświadczenie, które może zostać wykradzione. SOC Opsio badał incydenty, w których klucze dostępowe commitowane do publicznych repozytoriów GitHub były eksploatowane w ciągu kilku minut przez automatyczne skanery. Rozwiązanie:
- Stosuj role IAM z tymczasowymi poświadczeniami dla wszystkich workloadów (EC2 instance profiles, ECS task roles, rola wykonawcza Lambda)
- Federuj ludzki dostęp przez IAM Identity Center
- W rzadkich przypadkach, gdy klucze dostępowe są nieuniknione (integracje z systemami legacy), wymuszaj rotację za pomocą reguły AWS Config
access-keys-rotatedz maksymalnym czasem życia 90 dni
2. Wymuszaj MFA — wszędzie tam, gdzie to istotne
MFA na koncie root to absolutne minimum. Wymuszaj MFA także dla:
- Wszystkich ludzkich użytkowników IAM (jeśli nadal ich posiadasz)
- Przyjmowania wrażliwych ról (
iam:AssumeRolezCondition: { "Bool": { "aws:MultiFactorAuthPresent": "true" }}) - Procesu uwierzytelniania IAM Identity Center (MFA z powiadomieniem push, nie SMS)
3. Stosuj zasadę minimalnych uprawnień iteracyjnie
Nikt nie osiąga minimalnych uprawnień za pierwszym podejściem. Praktyczne podejście:
1. Zacznij od zarządzanych polityk AWS, które są nieco szersze niż potrzeba
2. Włącz IAM Access Analyzer, aby monitorować, które uprawnienia są faktycznie używane
3. Po 30-90 dniach wygeneruj politykę minimalnych uprawnień na podstawie aktywności w CloudTrail
4. Zastąp szeroką politykę wygenerowaną
5. Powtarzaj kwartalnie
Funkcja generowania polityk IAM Access Analyzer jest naprawdę przydatna i niedostatecznie wykorzystywana. Odczytuje logi CloudTrail i tworzy zawężoną politykę odpowiadającą wyłącznie faktycznie wywoływanym akcjom i zasobom.
4. Stosuj granice uprawnień dla delegowanej administracji
Jeśli pozwalasz deweloperom lub liderom zespołów tworzyć role IAM (np. dla funkcji Lambda), ustaw granicę uprawnień (permission boundary), która ogranicza, co te tworzone role mogą robić. Bez tego deweloper może stworzyć rolę z AdministratorAccess — co stanowi ścieżkę eskalacji uprawnień.
5. Audytuj w trybie ciągłym, nie raz do roku
Roczny przegląd IAM to ćwiczenie „na odczepne". Zamiast tego:
- Uruchom IAM Access Analyzer w trybie ciągłym, aby wykrywać zewnętrzny i nieużywany dostęp
- Monitoruj anomalne wywołania API IAM za pomocą CloudTrail + Amazon GuardDuty
- Wykorzystaj reguły AWS Config do automatycznego flagowania niezgodnych konfiguracji IAM
- Przekazuj wyniki do scentralizowanego SIEM lub pipeline'u alertów Twojego SOC
IAM w wielokontowej organizacji AWS
Jednorazowe środowiska AWS na jednym koncie w produkcji zdarzają się coraz rzadziej. AWS Organizations w połączeniu z IAM Identity Center to standardowy wzorzec zarządzania dostępem w dziesiątkach czy setkach kont.
IAM Identity Center (dawniej AWS SSO)
IAM Identity Center zapewnia jedno centralne miejsce do zarządzania ludzkim dostępem we wszystkich kontach organizacji. Użytkownicy uwierzytelniają się raz (przez korporacyjnego IdP lub wbudowany katalog) i otrzymują tymczasowe poświadczenia do wybranego konta i zestawu uprawnień.
Zestawy uprawnień (permission sets) w IAM Identity Center to abstrakcje tworzące role IAM w każdym koncie docelowym. Definiujesz je raz centralnie i przypisujesz użytkownikom lub grupom per konto. To drastycznie prostsze niż niezależne zarządzanie rolami IAM w każdym koncie.
Przyjmowanie ról między kontami (cross-account role assumption)
Dla dostępu serwis-do-serwisu między kontami (np. pipeline CI/CD na koncie narzędziowym wdrażający na produkcję) wzorzec wygląda tak:
1. Utwórz rolę na koncie docelowym z polityką zaufania pozwalającą roli z konta źródłowego
2. Workload źródłowy wywołuje sts:AssumeRole, aby uzyskać tymczasowe poświadczenia
3. Stosuj identyfikatory zewnętrzne (external IDs), aby zapobiec atakom confused deputy, gdy w grę wchodzą podmioty trzecie
Opsio konfiguruje dostęp między kontami w modelu hub-and-spoke: centralne konto bezpieczeństwa posiada role audytowe z uprawnieniami do odczytu (ale nie zapisu) we wszystkich kontach członkowskich. Ten projekt wspiera zarówno operacje SOC, jak i zbieranie dowodów na potrzeby zgodności.
Wymiary zgodności: NIS2 (Ustawa o KSC), RODO i DPDPA 2023
Konfiguracja IAM jest bezpośrednio przywoływana w każdym głównym frameworku zgodności, z jakim spotyka się Opsio:
Dyrektywa NIS2 / Ustawa o KSC — Artykuł 21 NIS2 wymaga „polityk kontroli dostępu", w tym zarządzania dostępem uprzywilejowanym. W Polsce NIS2 jest transponowana jako nowelizacja Ustawy o Krajowym Systemie Cyberbezpieczeństwa (KSC), nadzorowana przez odpowiednie organy sektorowe. Organizacje klasyfikowane jako podmioty kluczowe lub ważne muszą wykazać, że kontrole IAM są proporcjonalne do ryzyka, że dostęp uprzywilejowany jest monitorowany, a przeglądy dostępu prowadzone regularnie. W kontekście AWS oznacza to SCP, CloudTrail, IAM Access Analyzer oraz udokumentowane procedury przeglądów dostępu.
RODO (GDPR) — Artykuł 32 wymaga „zdolności do zapewnienia ciągłej poufności, integralności, dostępności i odporności systemów i usług przetwarzania", co organy nadzorcze — w tym polski UODO — interpretują jako obejmujące zarządzanie tożsamościami i dostępem. Administratorzy danych muszą wykazać, że dostęp do danych osobowych jest ograniczony do personelu, który go potrzebuje — co oznacza polityki IAM zawężone do konkretnych tabel DynamoDB, prefiksów S3 czy instancji RDS zawierających PII.
DPDPA 2023 (Indie) — Sekcja 8 nakłada na powierników danych obowiązek wdrożenia „uzasadnionych zabezpieczeń bezpieczeństwa". Dla indyjskich firm uruchamiających workloady w ap-south-1 (Mumbai) lub ap-south-2 (Hyderabad) oznacza to udokumentowane kontrole IAM, ścieżki audytu i dowody okresowego przeglądu — podobne duchem do wymagań Artykułu 32 RODO.
Wspólny mianownik: wszystkie trzy frameworki wymagają nie tylko istnienia kontroli, ale ich monitorowania i przeglądu. Konfiguracja IAM bez logowania CloudTrail i okresowego przeglądu dostępu nie spełnia wymagań żadnego z nich.
Typowe błędy IAM wykrywane przez SOC Opsio
Na podstawie faktycznych incydentów i wyników audytów naszych zarządzanych kont:
1. Wildcardowe ARN zasobów w politykach produkcyjnych — "Resource": "*" jest dopuszczalne podczas prototypowania. W produkcji oznacza, że skompromitowany principal może uzyskać dostęp do każdego zasobu danego typu na koncie.
2. Role serwisowe z AdministratorAccess — Funkcje Lambda i zadania ECS powinny mieć wąsko zakrojone role wykonawcze. Dołączanie uprawnień administratora „bo tak łatwiej" zamienia każdą lukę w aplikacji w pełne przejęcie konta.
3. Brak zabezpieczeń SCP na kontach członkowskich — Bez SCP każdy administrator konta może przyznać sobie dowolne uprawnienia. SCP to jedyny mechanizm, który ogranicza nawet użytkownika root konta (w kontach członkowskich).
4. Nieużywani użytkownicy IAM i klucze dostępowe — Regularnie znajdujemy użytkowników IAM dla pracowników, którzy odeszli z organizacji miesiące lub lata temu. Stosuj regułę AWS Config iam-user-unused-credentials-check z flagowaniem poświadczeń nieużywanych powyżej 45 dni.
5. Ignorowanie polityk zasobów — Polityki bucket S3, polityki kluczy KMS i polityki kolejek SQS mogą przyznawać dostęp niezależnie od polityk tożsamościowych. Bucket S3 z "Principal": "*" w polityce bucket jest publicznie dostępny, niezależnie od tego, jak szczelne są Twoje role IAM.
Od czego zacząć: Praktyczna sekwencja
Dla organizacji, które nie sformalizowały jeszcze zarządzania IAM, oto kolejność dająca najszybsze rezultaty:
1. Włącz CloudTrail na wszystkich kontach, we wszystkich regionach, z logowaniem do scentralizowanego bucketa S3 na koncie archiwum logów
2. Włącz IAM Access Analyzer na każdym koncie (jest bezpłatny)
3. Zmiguj ludzki dostęp z użytkowników IAM do IAM Identity Center z MFA
4. Wdróż bazowe SCP — odmowa nieużywanych regionów (np. zezwalaj tylko na eu-central-1 Frankfurt i „Poland Central" w Azure), ochrona infrastruktury audytowej, wymóg szyfrowania
5. Przeprowadź audyt istniejących ról i polityk IAM — wykorzystaj wyniki Access Analyzera do identyfikacji nieużywanych ról i nadmiernie uprzywilejowanych polityk
6. Wdróż Infrastructure as Code dla wszystkich zasobów IAM — koniec z ClickOps w konsoli IAM
Migracja i modernizacja chmury
Ta sekwencja działa niezależnie od tego, czy masz 2 konta, czy 200. Różnica polega na tym, ile czasu zajmie krok 5.
Najczęściej zadawane pytania
Czym są kontrole dostępu IAM?
Kontrole dostępu IAM to polityki, role i mechanizmy w ramach AWS Identity and Access Management, które określają, którzy principalowie (użytkownicy, role, usługi) mogą wykonywać jakie akcje na jakich zasobach. Działają w modelu domyślnej odmowy: jeśli polityka jawnie nie zezwala na akcję, zostanie ona odrzucona. Kontrole obejmują polityki oparte na tożsamości, polityki zasobów, granice uprawnień, polityki sesji oraz Service Control Policies na poziomie organizacji.
Czy IAM to RBAC czy ABAC?
AWS IAM obsługuje oba modele. Kontrola dostępu oparta na rolach (RBAC) polega na tworzeniu ról IAM z określonymi zestawami uprawnień i przypisywaniu ich użytkownikom lub grupom. Kontrola dostępu oparta na atrybutach (ABAC) wykorzystuje tagi na principalach i zasobach do dynamicznych decyzji autoryzacyjnych. AWS rekomenduje ABAC do skalowania w środowiskach z wieloma kontami, ponieważ zmniejsza liczbę odrębnych polityk do zarządzania. Większość środowisk produkcyjnych stosuje hybrydę obu podejść.
Czym jest dostęp IAM w AWS?
Dostęp IAM w AWS to uwierzytelniona i autoryzowana zdolność principala — użytkownika IAM, sfederowanej tożsamości lub roli IAM — do interakcji z usługami i zasobami AWS. Każde wywołanie API do AWS jest ewaluowane względem polityk IAM. Dostęp jest przyznawany tylko wtedy, gdy obowiązujące polityki zwracają jawne Allow i żadna z nich nie zwraca jawnego Deny.
Jakie są 4 filary IAM?
Cztery filary powszechnie przywoływane w zarządzaniu tożsamością to: uwierzytelnianie (potwierdzenie, kim jesteś), autoryzacja (co wolno ci robić), administracja (zarządzanie tożsamościami i politykami na skalę) oraz audyt (logowanie i przegląd aktywności dostępowej). W kontekście AWS odpowiadają im mechanizmy uwierzytelniania IAM, polityki IAM, AWS Organizations/IAM Identity Center oraz AWS CloudTrail.
Jak AWS IAM odnosi się do zgodności z NIS2?
Dyrektywa NIS2, transponowana w Polsce jako nowelizacja Ustawy o Krajowym Systemie Cyberbezpieczeństwa (KSC), wymaga od podmiotów kluczowych i ważnych wdrożenia polityk kontroli dostępu proporcjonalnych do ryzyka, utrzymania zdolności reagowania na incydenty oraz wykazania rozliczalności w zakresie dostępu uprzywilejowanego. AWS IAM zapewnia kontrole techniczne — MFA, polityki minimalnych uprawnień, SCP, logowanie CloudTrail — ale zgodność wymaga udokumentowanych procesów, okresowych przeglądów dostępu i dowodów aktywnego monitorowania tych kontroli. Zarządzane usługi SOC wypełniają lukę między posiadaniem kontroli a udowodnieniem ich skutecznego działania.
Written By

Country Manager, Sweden at Opsio
Johan leads Opsio's Sweden operations, driving AI adoption, DevOps transformation, security strategy, and cloud solutioning for Nordic enterprises. With 12+ years in enterprise cloud infrastructure, he has delivered 200+ projects across AWS, Azure, and GCP — specialising in Well-Architected reviews, landing zone design, and multi-cloud strategy.
Editorial standards: This article was written by cloud practitioners and peer-reviewed by our engineering team. We update content quarterly for technical accuracy. Opsio maintains editorial independence.