Chmura hybrydowa w praktyce: jak połączyć AWS, Azure i Google Cloud w jednej infrastrukturze

0
3
Rate this post

Nawigacja po artykule:

Czym naprawdę jest chmura hybrydowa i kiedy ma sens

Hybryda a multi‑cloud – dwa różne porządki

Pojęcia „chmura hybrydowa” i „multi‑cloud” są nagminnie wrzucane do jednego worka, co później mści się na architekturze i kosztach. Hybryda oznacza połączenie środowiska on‑premises (własne data center, serwery kolokowane, prywatna chmura na VMware/OpenStack/Kubernetes) z jedną lub wieloma chmurami publicznymi. Multi‑cloud to natomiast jednoczesne korzystanie z więcej niż jednego dostawcy chmury publicznej, np. AWS + Azure + Google Cloud.

W praktyce bardzo wiele firm kończy z czymś, co można nazwać hybrid multi‑cloud: trzymają krytyczne systemy lub dane w swojej serwerowni, a jednocześnie korzystają z usług AWS, Azure i GCP. Architektura natychmiast się komplikuje, bo zamiast dwóch światów (on‑prem + jedna chmura), mamy cztery konteksty naraz: własne DC, AWS, Azure, Google Cloud. Każdy z innym modelem sieciowym, IAM, billingiem i narzędziami bezpieczeństwa.

Kluczowa różnica jest taka, że hybryda rozwiązuje problem „co zostaje u mnie, a co wynoszę”, a multi‑cloud rozwiązuje problem „jak uniknąć zależności od jednego dostawcy i dobrać najlepsze usługi z różnych platform”. Gdy łączy się jedno z drugim, trzeba świadomie decydować, gdzie kończy się scenariusz „łączę światy”, a gdzie zaczyna „gram na wielu boiskach jednocześnie”.

Scenariusze, w których chmura hybrydowa faktycznie działa

Hybryda nie jest złotym młotkiem do każdej architektonicznej śrubki. Są jednak scenariusze, gdzie łączenie AWS, Azure, Google Cloud i on‑prem ma bardzo konkretny sens:

  • Legacy on‑prem + nowoczesny front w chmurze – aplikacja monolityczna działa w twoim data center, ale frontend webowy, API lub kanał mobilny działają już w Kubernetesie w GCP czy Azure App Service i komunikują się po VPN lub łączach dedykowanych z zapleczem on‑prem.
  • Wymogi prawne i lokalizacja danych – dane medyczne, finansowe lub krytyczne dane obywateli muszą być przechowywane w ściśle kontrolowanym środowisku (np. prywatna chmura), podczas gdy warstwa analityczna lub systemy pomocnicze działają w AWS/Azure/GCP.
  • Cloud bursting – podstawowe, przewidywalne obciążenie utrzymujesz w infrastrukturze własnej lub w jednej chmurze, a w szczytach (sezon sprzedażowy, kampania marketingowa, premiery gier MMO) dynamicznie skalujesz workloady do drugiej chmury.
  • Wysoka niezawodność i odporność na awarie – kluczowe systemy utrzymujesz równolegle: primary w AWS, DR w Azure, backup i archiwa w Google Cloud, plus minimalna, ale działająca kopia danych on‑prem.

W każdym z tych scenariuszy łączenie trzech dostawców ma sens tylko wtedy, gdy istnieje świadomy podział ról. Przykładowo: Azure jako platforma dla usług Microsoft 365 i integracji z Active Directory, AWS jako główna platforma dla backendu i mikroserwisów, GCP jako silnik analityczny (BigQuery, Vertex AI). On‑prem pełni rolę „źródła prawdy” dla krytycznych baz lub systemów, które jeszcze długo nie zostaną zmodernizowane.

Mit „hybryda zawsze taniej i bezpieczniej niż jedna chmura”

Często powtarzany mit: „weźmiemy po trochu z każdej chmury, zostawimy trochę on‑prem – będzie taniej i bezpieczniej”. Rzeczywistość bywa dokładnie odwrotna. Trzy chmury to trzy osobne rachunki, trzy zestawy kompetencji, trzy modele sieci, trzy modele IAM i trzy sposoby monitoringu. Do tego dochodzi koszt utrzymania własnej infrastruktury: energia, chłodzenie, serwis, licencje, obsługa.

Bez twardej dyscypliny architektonicznej hybryda staje się zbiorem ad‑hocowych tuneli VPN, kont bez właścicieli i kopii danych w kilku miejscach. Łatwiej wtedy o incydent bezpieczeństwa, utratę spójności danych lub zwyczajne marnotrawstwo kosztów. Bez zintegrowanego monitoringu i centralnego podejścia do bezpieczeństwa „shared responsibility” razy trzy zamienia się w „trzy razy nikt nie wie, kto za co odpowiada”.

Bezpieczniej i taniej bywa czasem pozostać w jednym dobrze opanowanym środowisku publicznej chmury plus minimalny on‑prem (np. backup offline, systemy specjalistyczne), niż rozpraszać się na trzech dostawców tylko po to, by móc wpisać „multi‑cloud” w prezentację dla zarządu.

Mapa mentalna warstw w hybrydzie AWS + Azure + GCP

Utrzymanie porządku zaczyna się od jasnego myślenia o warstwach. Niezależnie od dostawcy, w infrastrukturze hybrydowej można wyróżnić te same elementy:

  • Sieć – VPC w AWS, VNet w Azure, VPC w GCP, plus on‑prem (VLAN, VXLAN, SD‑WAN). Do tego łącza: Direct Connect, ExpressRoute, Cloud Interconnect, VPN site‑to‑site, ewentualnie mesh VPN między chmurami.
  • Tożsamość i dostęp (IAM) – użytkownicy, konta serwisowe, role, grupy, polityki; centralne IdP (np. Entra ID / Azure AD, AD on‑prem) i federacja z AWS IAM, Google Cloud IAM.
  • Zarządzanie i governance – konta, subskrypcje, projekty, landing zones, organizacje (AWS Organizations, Azure Management Groups, Google Cloud Organization), polityki (AWS SCP, Azure Policy, GCP Policy Controller).
  • Aplikacje i workloady – maszyny wirtualne, kontenery (EKS, AKS, GKE), PaaS (App Service, Cloud Run, Lambda, Functions), usługi integracyjne (API Gateway, Service Bus, Pub/Sub, EventBridge).
  • Dane – bazy relacyjne (RDS, Azure SQL, Cloud SQL), NoSQL (DynamoDB, Cosmos DB, Firestore), obiekty (S3, Blob Storage, Cloud Storage), hurtownie i analityka (Redshift, Synapse, BigQuery).

Użyteczne podejście: dla każdej warstwy określić głównego dostawcę i rolę pozostałych. Na przykład: sieć – on‑prem jako centralny hub, AWS jako rozszerzenie przez Direct Connect, Azure i GCP spięte przez VPN; tożsamość – Entra ID jako źródło prawdy, federacja do AWS i GCP; dane – BigQuery jako główna hurtownia, pozostałe chmury jako warstwy operacyjne.

Nowoczesny wieżowiec z pojedynczą chmurą na tle błękitnego nieba
Źródło: Pexels | Autor: Nothing Ahead

Od czego zacząć: analiza stanu obecnego i wybór strategii

Inwentaryzacja: co zostaje on‑prem, co idzie do chmury

Przed pierwszym VPN‑em do AWS czy VNetem w Azure warto wykonać porządny spis majątku. Hybryda jest po coś, nie dla samego faktu jej posiadania. Dobrze zrobiona inwentaryzacja obejmuje:

  • Systemy i aplikacje – monolity, mikroserwisy, aplikacje desktopowe, systemy ERP/CRM, systemy produkcyjne, systemy raportowe.
  • Zależności – bazy danych, brokerzy kolejki, integracje z systemami partnerów, integracje z systemami legacy.
  • Parametry niefunkcjonalne – SLA, wymagany uptime, RTO/RPO, sezony szczytów obciążenia.
  • Wymogi regulacyjne – RODO, sektor finansowy, medyczny, publiczny, lokalne regulacje branżowe.

Na tej podstawie można wskazać aplikacje, które:

  • pozostają on‑prem, bo migracja byłaby kosztowna lub nierealna (np. urządzenia produkcyjne, specjalistyczne kontrolery, systemy z twardym vendor lock‑in sprzętowym);
  • migrują w formie „lift & shift” do jednej z chmur (np. maszyny wirtualne na VMware przeniesione na EC2 lub Azure VM);
  • powstają od nowa w modelu cloud‑native (Kubernetes, serverless, managed databases).

Mit bywa taki: „przenieśmy wszystko, co się da, do chmury – resztę zostawimy na później”. Rzeczywistość: bez twardych kryteriów priorytetyzacji kończy się chaosem, w którym mało krytyczne aplikacje lądują w trzech chmurach, a te najbardziej ważne dalej tkwią na jednym serwerze w piwnicy.

Kluczowe ograniczenia: prawo, SLA, integracje

Hybrydę warto projektować wokół ograniczeń, a nie wokół technologicznych zachcianek. Kilka pytań, które znacząco zawężają opcje:

  • Czy istnieje wymóg lokalizacji danych (konkretny kraj, region)?
  • Jakie są minimalne SLA dla systemów krytycznych i jak będą liczone w środowisku rozproszonym?
  • Czy któryś dostawca chmury ma specjalne certyfikaty i zgodności wymagane przez regulatora (np. sektor finansowy)?
  • Jak wyglądają integracje z systemami zewnętrznymi – czy partnerzy łączą się przez VPN do twojego DC, czy wystawiasz API publicznie?

Przykład: firma z sektora medycznego może z powodów regulacyjnych przechowywać dane pacjentów tylko w określonej lokalizacji. Rozwiązanie: system transakcyjny i dane główne w Azure (region lokalny), moduł analityczny i uczenia maszynowego w GCP, który otrzymuje zanonimizowane dane; kopia DR w AWS w innym regionie, ale z dodatkowymi zabezpieczeniami kontraktowymi.

Takie ograniczenia często determinują cloud-of-choice – główną chmurę, do której doklejane są pozostałe jako wyspecjalizowane rozszerzenia, a nie równorzędne byty.

Cloud-of-choice czy pełny multi‑cloud?

Strategia „cloud-of-choice” zakłada, że jedna chmura staje się domyślną platformą dla większości workloadów, a pozostałe wykorzystywane są punktowo, tam gdzie mają przewagę funkcjonalną. AWS może być główną platformą dla mikroserwisów, Azure – dla integracji z usługami Microsoft 365 i AD, GCP – dla analityki danych i AI.

Pełny multi‑cloud to podejście, w którym stara się rozkładać obciążenia równomiernie na trzech dostawców, często z myślą o uniknięciu lock‑inu. Na papierze wygląda to atrakcyjnie, ale zderza się z:

  • koniecznością zbudowania narzędziowego i procesowego „nadbudowania” nad trzema platformami,
  • zwiększonym kosztem szkoleń i utrzymania kompetencji w trzech ekosystemach,
  • dużo większą złożonością debugowania, zabezpieczeń i fakturowania.

W praktyce sprawdza się zwykle model mieszany: główna chmura + dwie pomocnicze, przy czym na poziomie architektury promuje się neutralne standardy (Kubernetes, Terraform, OpenID Connect, S3‑compatible API), aby nie zabetonować się całkowicie u jednego dostawcy. To nie ucieczka przed lock‑inem za wszelką cenę, ale raczej ograniczanie najbardziej bolesnych punktów zależności.

Priorytetyzacja: które aplikacje migrują jako pierwsze

Zamiast „migrujmy to, co najmniej boli”, lepiej zastosować prosty podział:

  • Aplikacje krytyczne – systemy finansowe, produkcyjne, medyczne; wymagają dokładnego planu, często korzystają z hybrydy (on‑prem + chmura) w fazie przejściowej.
  • Aplikacje o zmiennym obciążeniu – kampanie marketingowe, systemy sprzedażowe z sezonowością; świetni kandydaci do skalowania w chmurze publicznej.
  • Aplikacje brzegowe – systemy działające blisko urządzeń IoT, maszyn, sklepów; często w modelu edge + centralna chmura.
  • Systemy o stabilnym, przewidywalnym obciążeniu – idealni kandydaci do rozważenia modelu rezerwacji instancji, planowania pojemności lub nawet pozostania on‑prem, jeśli ekonomia przemawia za tym rozwiązaniem.

Ten podział pomaga określić, które workloady powinny trafić do jakiej chmury. Na przykład: silnie sezonowe systemy e‑commerce w AWS (Lambda, ECS), systemy wewnętrzne, mocno związane z AD i Office 365 – w Azure, a analityka logów z całej organizacji – w BigQuery.

Lekcja z praktyki: POC w jednej chmurze, później reszta

Częsty scenariusz: organizacja startuje z niewielkim projektem w jednej chmurze – choćby w Azure ze względu na istniejącą umowę na licencje Microsoft. Po udanym POC (np. przeniesienie jednego systemu CRM do Azure) pojawia się apetyt na więcej. Wtedy inne działy zaczynają „testować” AWS (bo świetne wsparcie dla DevOps i narzędzi open‑source) lub GCP (bo zespół data science zna BigQuery).

Plusy takiej ścieżki:

  • łatwiejsze zdobycie pierwszych doświadczeń i „szybkich zwycięstw”,
  • szansa na wypracowanie standardów IaC, monitoringu i bezpieczeństwa w jednym, bezpiecznym sandboxie,
  • mniej politycznych sporów na starcie – wystarczy jeden wspólny kierunek.

Jak ustrzec się „dzikiego multi‑cloudu”

Jeśli pierwszy POC wypali, kolejne zespoły zaczną naturalnie sięgać po ulubione chmury. Bez wspólnej ramy architektonicznej rodzi się wtedy „dziki multi‑cloud”: każdy projekt tworzy własne VPC, własne podejście do IAM, własne konwencje nazewnicze. Efekt? Podwójne (a często potrójne) koszty i brak kontroli nad przepływem danych.

Dla czytelników, którzy szukają szerszego kontekstu technologicznego poza samą chmurą, przydatne bywają zewnętrzne źródła takie jak praktyczne wskazówki: informatyka, gdzie obok tematyki cloud pojawiają się poradniki o AI, sprzęcie czy bezpieczeństwie.

Prościej jest wprowadzić kilka żelaznych zasad zanim do gry wejdzie druga i trzecia chmura:

  • Centralne zasady nazewnictwa i tagowania – wspólne prefiksy (np. nazwa firmy, środowisko, region), tagi na poziomie projektów i zasobów (owner, cost-center, system, sensitivity).
  • Standard IaC – Terraform lub Pulumi jako minimum, z centralnym repozytorium modułów zatwierdzonych przez architekturę.
  • Minimalny „landing zone” w każdej chmurze – sieć, IAM, podstawowe polityki bezpieczeństwa i logowania skonfigurowane zanim powstaną pierwsze workloady.

Popularny mit: „najpierw zróbmy kilka projektów, a potem to ujednolicimy”. Rzeczywistość jest odwrotna: gdy każdy zespół zdąży wdrożyć własne standardy, konsolidacja bywa droższa niż poprawne zaprojektowanie fundamentów na starcie.

Projektowanie warstwy sieciowej: spinanie AWS, Azure, GCP i on‑prem

Model hub‑and‑spoke zamiast pajęczyny tuneli

Gdy do gry wchodzą trzy chmury i własne data center, pierwszym odruchem bywa łączenie wszystkiego ze wszystkim: VPN z DC do AWS, drugi do Azure, trzeci do GCP, a między chmurami kolejne tunele. Po kilku miesiącach nikt już nie pamięta, którędy tak naprawdę płynie ruch i które połączenie jest krytyczne.

Bardziej skalowalny wzorzec to hub‑and‑spoke:

  • Hub centralny – zwykle data center lub jedna, wskazana chmura (często ta, która ma najlepszą łączność z biurami i DC).
  • Spoke’i – poszczególne VPC/VNet/projekty w chmurach publicznych, łączące się z hubem poprzez VPN lub łącza dedykowane (AWS Direct Connect, Azure ExpressRoute, Cloud Interconnect).
  • Routowanie trans‑cloud – ruch między AWS–Azure–GCP przechodzi przez hub, zamiast bezpośrednio między chmurami.

Taki układ upraszcza routing, monitoring oraz kontrolę, dokąd faktycznie mogą płynąć dane. Kosztem jest większa zależność od huba, ale łatwiej ją opanować redundancją niż walczyć z dziesiątkami przypadkowych tuneli.

Łącza dedykowane czy VPN: gdzie jest realna korzyść

Przy planowaniu połączeń z chmurami pojawia się pytanie: inwestować w Direct Connect/ExpressRoute/Interconnect czy zostać przy IPSec VPN po publicznym internecie?

Przydatne kryteria do decyzji:

  • Wymagania na przepustowość i jitter – integracje czasu rzeczywistego, systemy produkcyjne, niskie opóźnienia często wymagają łączy dedykowanych.
  • Koszt ruchu wychodzącego – przy dużym wolumenie danych egress charges przy VPN potrafią mocno ugryźć; łącza dedykowane często pozwalają lepiej to skalkulować.
  • Wymogi compliance – w niektórych branżach połączenia prywatne (bez routingu po publicznym internecie) są formalnie wymagane lub ułatwiają audyt.

Mit mówi: „łącza dedykowane są zawsze tańsze i bezpieczniejsze”. W praktyce dla średnich organizacji dobrze zaprojektowany VPN site‑to‑site z redundancją i odpowiednim monitoringiem bywa w pełni wystarczający, a cała infrastruktura Direct Connect pojawia się dopiero przy bardzo dużym wolumenie ruchu lub twardych wymaganiach regulacyjnych.

Segmentacja i kontrola ruchu między chmurami

Po spięciu wszystkiego w jedną sieć łatwo wpaść w pułapkę „jeden wielki płaski adresowy worek”. Wtedy kompromitacja jednego VPC lub VNeta może dać atakującemu znacznie szerszy dostęp niż ktokolwiek się spodziewał.

Bezpieczniejszy model przypomina sieć w nowoczesnym data center:

  • Segmentacja logiczna – oddzielne VPC/VNet/projekty dla systemów produkcyjnych, testowych, sandboxów, a także specjalne segmenty dla systemów z danymi wrażliwymi.
  • Filtry ruchu na granicach – w AWS Security Groups i NACL, w Azure NSG i Azure Firewall, w GCP firewall rules; ruch między segmentami przechodzi przez ściśle kontrolowane punkty.
  • Centralne firewalle – fizyczne lub wirtualne, zestawione w hubie; pozwalają stosować spójne polityki między chmurami i on‑prem.

Dobrym kompromisem jest połączenie „mikrosegmentacji” na poziomie chmury z centralną inspekcją ruchu w hubie. Wtedy prosta pomyłka w regule security group nie otworzy całej infrastruktury, bo ruch i tak przechodzi przez dodatkowy filtr.

DNS i nazewnictwo w środowisku wielochmurowym

Przy jednej chmurze i jednym DC zwykle „jakoś to działa”. Przy trzech chmurach bez spójnego DNS zaczyna się festiwal ręcznych wpisów, lokalnych hostów i dziwnych wyjątków w kodzie aplikacji.

Sprawdzone rozwiązanie to:

  • Jeden nadrzędny DNS on‑prem lub w chmurze, z delegacją stref do poszczególnych dostawców (Route 53, Azure DNS, Cloud DNS).
  • Konwencja nazewnicza odzwierciedlająca środowisko i lokalizację (np. app1.prod.eu.company.internal, app1.dev.us.company.internal).
  • Split‑horizon – inne odpowiedzi dla użytkowników z internetu, inne dla ruchu wewnętrznego (np. publiczne FQDN kieruje do WAF, prywatne do wewnętrznego load balancera).

Bez tego kończy się na tym, że zespół A używa adresów IP, zespół B wpisuje dziwne aliasy, a zespół C twierdzi, że „DNS w tej firmie jest nieprzewidywalny”.

Obserwowalność warstwy sieciowej

Nawet najlepiej zaprojektowana sieć multi‑cloud bez porządnej obserwowalności szybko staje się zagadką. CloudWatch, Azure Monitor i Cloud Logging, każdy osobno, nie opowiedzą spójnej historii o tym, co dzieje się między chmurami i DC.

Dlatego przyda się wspólny kierunek:

  • Centralne zbieranie logów z urządzeń sieciowych – firewalle, routery, VPN gateways; najlepiej do jednego systemu SIEM lub log management (np. Splunk, Elastic, datalake).
  • Standardowy format metryk i alertów – eksport metryk do jednego systemu (Prometheus, Grafana Cloud, Datadog) i wspólne progi alarmowe.
  • Mapa ścieżek krytycznych – udokumentowane, którędy przebiega ruch do systemów kluczowych (np. od użytkownika w biurze do aplikacji w GCP), z zaznaczonymi punktami pomiaru.

Mit: „problemy sieciowe rozpoznamy po logach aplikacyjnych”. Rzeczywistość: bez spójnego wglądu w warstwę sieciową zespoły spędzają godziny, przerzucając się odpowiedzialnością, zamiast szybko zlokalizować winny segment.

Inżynierka omawia projekt na monitorze w biurze
Źródło: Pexels | Autor: ThisIsEngineering

Tożsamość i dostęp: spójny IAM w świecie trzech chmur

Źródło prawdy: jeden katalog, wiele ról w chmurach

W hybrydzie, w której każdy zespół ma własny sposób zakładania kont w chmurach, powstaje chaos: część użytkowników ma lokalne konta w AWS IAM, część loguje się przez Azure AD, ktoś zakłada ręcznie konta w GCP. Po kilku latach nikt nie wie, kto nadal ma dostęp i gdzie.

Bezpieczniejszy model opiera się na jednym źródle tożsamości, najczęściej:

  • Microsoft Entra ID (Azure AD) lub klasyczne AD on‑prem z synchronizacją do Entra ID,
  • rzadziej zewnętrzny dostawca IdP (Okta, Ping, Keycloak), jeśli firma już ma taki standard.

Chmury publiczne nie trzymają wtedy użytkowników na stałe – wykorzystują federację:

  • W AWS – SSO oparte o SAML/OIDC, role przypisywane użytkownikom i grupom z IdP.
  • W Azure – natywna integracja z Entra ID, dodatkowe role w RBAC przypisane grupom.
  • W GCP – Cloud Identity lub federacja z Entra ID, mapowanie grup na role IAM.

Zamiast tworzyć tożsamości per chmura, tworzy się je tylko raz w IdP i jedynie przydziela odpowiednie role/atrybuty. Przy odejściu pracownika wyłącza się jedno konto – dostęp do wszystkich chmur gaśnie automatycznie.

RBAC, ABAC i podejście „least privilege”

Trzy chmury oznaczają trzy różne smaki IAM. AWS opiera się silnie na politykach JSON, Azure na RBAC z predefiniowanymi rolami, GCP ma własne role IAM oraz możliwość tworzenia ról niestandardowych. Łatwo w tym zgubić spójność.

Praktyczny kierunek to połączenie dwóch podejść:

  • RBAC (role‑based) – zestaw ról technicznych (np. developer‑appX, ops‑network, data‑analyst), definiowanych centralnie i odzwierciedlanych w każdej chmurze.
  • ABAC (attribute‑based) – dodatkowe warunki w politykach (tagi zasobów, atrybuty użytkownika), które zawężają dostęp do konkretnych projektów, środowisk czy regionów.

W praktyce oznacza to na przykład: grupa dev‑crm pozwala wejść do AWS i Azure, ale polityki ograniczają widoczność do zasobów oznaczonych tagiem system=crm i environment=dev. Taka kombinacja ułatwia utrzymanie zasady najmniejszych uprawnień bez ręcznego dopasowywania ról do każdego zasobu.

Dostęp uprzywilejowany i just‑in‑time

Stały dostęp administratora do wszystkich subskrypcji, kont i projektów bywa wygodny, dopóki nie zdarzy się incydent bezpieczeństwa. W hybrydzie efekty są potrójne: jeden skompromitowany laptop może otworzyć drogę do trzech chmur i on‑prem jednocześnie.

Bezpieczniejszą praktyką jest model just‑in‑time (JIT) i privileged access management (PAM):

  • Uprawnienia administracyjne przydzielane są tymczasowo, na czas wykonywania zadania (np. 1–2 godziny).
  • Wnioski o podniesienie uprawnień przechodzą przez prostą aprobatę (automatyczną lub manualną) i są logowane.
  • Dostęp do najwrażliwszych zasobów (np. kont root, subscription owner, organization admin) przechodzi przez narzędzia PAM, z pełnym nagrywaniem sesji.

Tu dobrze pasują narzędzia takie jak Entra ID PIM, rozwiązania CyberArk, BeyondTrust czy autorskie mechanizmy oparte o API chmur. Ważniejsze od konkretnego produktu jest to, żeby przestać myśleć o adminie jako o roli, którą ma się „na stałe”.

Dostęp dla aplikacji: service accounts i managed identities

Ręczne wklejanie kluczy API w konfigurację aplikacji to prosty przepis na wyciek – szczególnie w świecie gitów, CI/CD i wielu zespołów. Zamiast tego, w hybrydzie opłaca się postawić na tożsamości zarządzane i konta serwisowe z rotacją kluczy.

W tym miejscu przyda się jeszcze jeden praktyczny punkt odniesienia: Najlepsze darmowe gry MMO na PC w 2024 roku: porównanie, wymagania sprzętowe i porady dla początkujących.

Przykładowe wzorce:

  • W Azure – managed identities dla VM, App Service, AKS; aplikacja łączy się z usługami (Key Vault, Storage, SQL) bez posiadania stałych sekretów.
  • W AWS – role IAM przypisane do instancji EC2, zadań ECS, funkcji Lambda, kontenerów EKS; aplikacja używa tymczasowych tokenów.
  • W GCP – service accounts powiązane z GCE, GKE, Cloud Run; klucze generowane tylko tam, gdzie naprawdę nie da się użyć natywnej integracji.

Mit: „secret manager rozwiązuje problem”. Gdy do sejfu z sekretami daje się dostęp przy użyciu twardych, rzadko rotowanych kluczy, problem jedynie zmienia kształt. Bez wzorców opartych o tożsamość workloadu i krótkotrwałe tokeny, multi‑cloud staje się tylko większym magazynem stałych haseł.

SSO, MFA i kontekst logowania

Użytkownik, który musi pamiętać trzy różne loginy i hasła do trzech chmur, szybciej czy później zacznie naginać zasady bezpieczeństwa. Zapisane dane dostępowe w przeglądarce, notatnikach czy plikach konfiguracyjnych to prosta droga do incydentu.

Dużo bezpieczniejszy i wygodniejszy model to:

  • Single Sign‑On (SSO) – jedno logowanie do IdP, z którego użytkownik przechodzi do AWS, Azure i GCP.
  • Multi‑Factor Authentication (MFA) – wymuszona na poziomie IdP dla ról administracyjnych i dostępu do produkcji.
  • Access policies zależne od kontekstu – różne wymogi przy logowaniu z biura, VPN, nowego urządzenia czy innego kraju (Conditional Access, context‑aware access).

Audyt i ślad dostępu w trzech chmurach

Bez centralnego śladu, kto, kiedy i do czego sięgnął, IAM w multi‑cloudzie jest tylko ładnym slajdem. AWS CloudTrail, Azure Activity Log i Cloud Audit Logs działają dobrze, ale każdy po swojemu. Przy incydencie nikt nie ma czasu ręcznie składać historii działań z trzech konsol.

Rozsądny wzorzec to:

  • Wymuszone logowanie wszystkich akcji administracyjnych – włączone CloudTrail we wszystkich regionach i kontach, Azure Activity/Diagnostic Logs dla wszystkich subskrypcji oraz Admin Activity Logs w GCP na poziomie organizacji.
  • Eksport do jednego magazynu – np. S3/datalake + narzędzie typu SIEM, gdzie logi są normalizowane i da się je przeszukiwać w jednym zapytaniu.
  • Wspólne korelacje – reguły alertów, które łączą zdarzenia z IdP (logowanie, podniesienie uprawnień) z akcjami w chmurach (tworzenie nowych kluczy, zmianą ról, wyłączenie logowania).

Mit: „wystarczy native’owy audyt każdej chmury, jak będzie incydent, to się doklika”. Rzeczywistość jest taka, że bez centralizacji i czasu retencji liczonego w miesiącach, znajdzie się tylko część historii, a najciekawsze fragmenty po prostu wygasną.

Bezpieczeństwo w chmurze hybrydowej: model „shared responsibility” razy trzy

Shared responsibility, ale konkretnie

Marketingowe diagramy mówią, że dostawca „zabezpiecza chmurę”, a klient „to, co w chmurze”. Przy trzech dostawcach w praktyce wychodzi z tego trójkąt nieporozumień. Przy prostych usługach typu IaaS jeszcze da się to ogarnąć, przy zarządzanych bazach, Kubernetesach i funkcjach serverless granica przestaje być oczywista.

Dobrym krokiem jest stworzenie macierzy odpowiedzialności, ale nie w PowerPoincie, tylko w formie rzeczywistych zadań:

  • Dla każdej klasy usługi (VM, PaaS, DBaaS, funkcje, storage) jasno opisane: kto odpowiada za patchowanie, backup, konfigurację sieci, logowanie i dostęp.
  • Oznaczenie, gdzie odpowiedzialność jest współdzielona – np. WAF zarządzany przez cloud providera, ale reguły i wyjątki ustala zespół bezpieczeństwa klienta.
  • Uwzględnienie elementów on‑prem: firewalle, backup, monitoring – bo przy awarii linku hybrydowego nikt nie chce słyszeć „to problem chmury”.

W praktyce najlepiej działa prosty artefakt w repozytorium (np. YAML/MD), do którego odwołują się wszystkie zespoły. Dzięki temu dyskusja „czy to robi provider, czy my?” kończy się szybciej niż zwykle.

Standaryzacja konfiguracji bezpieczeństwa

Każdy provider ma swoje „best practices”: AWS Well‑Architected, Azure Security Benchmark, Google Security Foundations. Jeżeli każda platforma jest oceniana inną miarą, to zarządzanie ryzykiem zamienia się w trzy oddzielne projekty.

Lepsze rezultaty przynosi wspólna, prostsza warstwa: standard bezpieczeństwa organizacji, a dopiero pod spodem mapowanie na specyfikę chmur.

Praktyczne elementy takiego standardu:

  • Minimalne wymagania dla kont/subskrypcji/projektów – centralne logowanie, wymuszone szyfrowanie w spoczynku, polityka haseł, MFA dla adminów.
  • Polityki sieciowe – brak publicznych IP dla baz danych, zakaz otwierania portów administracyjnych na świat, używanie prywatnych endpointów tam, gdzie to możliwe.
  • Składnia w postaci kodu – reguły opisane w formie OPA/Rego, Sentinel, Kyverno, Azure Policy czy AWS Config Rules i wersjonowane w Git.

Mit, który często pojawia się w rozmowach: „w AWS mamy bardzo wysoki poziom security, w pozostałych chmurach zrobimy to później”. Takie „później” ciągnie się latami, a atakujący wybierze najsłabsze konto, nie to z najładniejszą dokumentacją.

Security as Code i policy enforcement

Kiedy reguły bezpieczeństwa istnieją tylko w regulaminie i prezentacjach, zawsze przegrają z terminami biznesowymi. W multi‑cloudzie nie ma innej drogi niż przeniesienie zasad do kodu i zautomatyzowanie ich egzekwowania.

W praktyce oznacza to trzy poziomy:

  1. Pre‑deploy – skanowanie szablonów IaC (Terraform, Bicep, CloudFormation, Helm) pod kątem błędów bezpieczeństwa: otwartych portów, braku szyfrowania, braku logów. Narzędzia typu Checkov, tfsec, Terrascan, KICS da się wpiąć w CI.
  2. On‑deploy – polityki natywne (Azure Policy, AWS Service Control Policies, GCP Organization Policy), które blokują wdrożenie naruszające standard – np. tworzenie publicznych bucketów czy wyłączanie logowania.
  3. Post‑deploy – cykliczne skanowanie konfiguracji (CSPM) i automatyczna remediacja prostych odchyleń.

Kluczowe jest, żeby ten sam zestaw reguł biznesowych był interpretowany w każdej chmurze. Np. zasada „żadnych publicznych baz danych” ma swoje techniczne odpowiedniki w postaci konkretnych polityk u każdego dostawcy, ale jej sens biznesowy pozostaje wspólny.

Zarządzanie sekretami i kluczami kryptograficznymi

Przy trzech chmurach ilość miejsc, w których można zostawić hasło lub klucz API, rośnie lawinowo. Do tego dochodzą jeszcze serwery on‑prem i stanowiska deweloperskie. W takim środowisku nawet pojedynczy nieszyfrowany plik konfiguracyjny potrafi otworzyć sporą dziurę.

Jeśli chcesz pójść krok dalej, pomocny może być też wpis: Jak przygotować mieszkanie na szczeniaka – praktyczny poradnik dla początkujących opiekunów.

Najbezpieczniejsze podejście opiera się na kilku zasadach:

  • Jeden standard, wiele implementacji – decyzja, że sekretów nie trzyma się w kodzie i configach, tylko wyłącznie w dedykowanych sejfach (AWS Secrets Manager/SSM Parameter Store, Azure Key Vault, GCP Secret Manager) albo w centralnym narzędziu (HashiCorp Vault).
  • Integracja z tożsamością workloadu – dostęp aplikacji do sekretów wyłącznie poprzez role/managed identities/service accounts, bez twardo zakodowanych kluczy.
  • Standaryzacja KMS/HSM – klucze szyfrujące zarządzane w KMS każdego providera lub w zewnętrznym HSM, z jasnym podziałem: które klucze są własnością aplikacji, a które służą do integracji z innymi systemami.

W praktyce pada czasem argument: „jak trzymamy sekret w Key Vault, to jesteśmy bezpieczni”. To tylko połowa prawdy. Jeśli dostęp do sejfu jest zorganizowany na zasadzie „shared sekret dla całego zespołu” albo „jeden klucz API w zmiennych środowiskowych każdego podu”, to narzędzie nie nadąża za złymi nawykami.

Vulnerability management i patchowanie w hybrydzie

Patchowanie VM‑ek i systemów on‑prem jest męczące, ale przynajmniej widać, gdzie jest problem. W hybrydzie dochodzą do tego usługi PaaS, kontenery, obrazy bazowe, funkcje serverless i komponenty sieciowe od trzech dostawców. Bez centralnego podejścia lista CVE zamienia się w niekończący się backlog.

Sprawdzony model składa się z kilku elementów:

  • Centralny katalog zasobów – CMDB lub inventory budowane z API chmur (AWS Config, Azure Resource Graph, GCP Asset Inventory) oraz z narzędzi on‑prem.
  • Skany podatności – narzędzia typu Qualys, Tenable, Rapid7 wpięte zarówno w sieć DC, jak i w workloady chmurowe oraz registry obrazów kontenerów (ECR, ACR, GCR/Artifact Registry).
  • Standard cyklu życia obrazu – tylko obrazy VM/kontenerów z pipeline’u, z wbudowanymi aktualizacjami bezpieczeństwa i podpisami, zamiast ręcznego „doinstalowywania” rzeczy na produkcji.

Mit, który ciągle wraca: „w PaaS nie musimy martwić się o patchowanie”. Rzeczywiście, provider łata system operacyjny i runtime, ale biblioteki aplikacyjne, zależności i konfiguracja bezpieczeństwa zawsze pozostają po stronie klienta. To właśnie tam pojawia się większość podatności.

Backup i odzyskiwanie w modelu multi‑cloud

Wiele zespołów zakłada, że wysoka dostępność w ramach regionu równa się backupowi. Dopóki nie trzeba odtworzyć danych po błędzie aplikacji albo po pomyłce operatora, złudzenie działa zaskakująco dobrze. Przy trzech chmurach i DC ilość kombinacji RPO/RTO jest jednak zbyt duża, żeby liczyć na szczęście.

Lepszy kierunek to spójna strategia backupu, a nie trzy oddzielne projekty:

  • Wspólne definicje RPO/RTO – dla każdej kategorii systemów (krytyczne, ważne, pomocnicze) ustalone cele, niezależnie od tego, czy działają w AWS, Azure, GCP czy on‑prem.
  • Automatyzacja backupów – użycie natywnych mechanizmów (snapshoty, backup service, exporty baz) spiętych jednym orkiestratorem lub przynajmniej wspólną konwencją nazw i harmonogramami w Git.
  • Przechowywanie poza domeną awarii – kopie w innym regionie, a przy systemach kluczowych również w innej chmurze lub w DC; szyfrowane, z kontrolą dostępu niezależną od głównej ścieżki.

Najczęściej ignorowany element to testy odtwarzania. Bez regularnego „fire drill” nikt nie wie, ile realnie zajmie przywrócenie systemu z AWS do Azure czy z DC do GCP. Slajdy z DR Planem zwykle są znacznie bardziej optymistyczne niż rzeczywistość pipeline’ów i skryptów.

Bezpieczeństwo pipeline’ów CI/CD i artefaktów

Gdy infrastruktura jest definiowana jako kod, pipeline’y CI/CD stają się nowym „rootem”. Kompromitacja narzędzia CI to dziś często prostsza droga do przejęcia produkcji niż klasyczny atak na serwer. Przy hybrydzie pipeline’y zwykle dotykają wielu chmur naraz, co podnosi stawkę.

Kilka praktyk, które wyraźnie zmniejszają ryzyko:

  • Oddzielne konta/role deploymentowe – pipeline nie powinien działać na prawach użytkownika developera; lepiej użyć technicznych ról z jasno ograniczonym zakresem (per aplikacja, per środowisko).
  • Ograniczony blast radius tokenów – krótkotrwałe tokeny, minimalne uprawnienia i osobne poświadczenia per chmura i per środowisko (dev/test/prod).
  • Bezpieczne registry artefaktów – podpisywanie obrazów kontenerów (Cosign, Notary), walidacja podpisów w klastrach Kubernetes (OPA/Gatekeeper, Kyverno) i skanowanie po każdej zmianie.

W praktyce często spotykany jest wzorzec „jeden super‑token w CI z prawami admina do całej organizacji w AWS i Azure”, bo „tak jest szybciej”. Do pierwszego incydentu bezpieczeństwa faktycznie jest szybciej – później trudno wytłumaczyć, dlaczego narzędzie buildowe miało większe uprawnienia niż zespół operacyjny.

Bezpieczeństwo użytkownika końcowego i urządzeń

Przy hybrydzie „brzeg” przestaje być jednoznaczny. Użytkownik łączy się raz z biura, raz z domu, raz z lotniska, a aplikacja raz trafia do AWS, raz do GCP, raz do DC. Tradycyjne myślenie „mamy VPN, więc jest bezpiecznie” nie wytrzymuje tej dynamiki.

W modelu multi‑cloud lepiej sprawdza się podejście zbliżone do zero trust:

  • Weryfikacja użytkownika i urządzenia – SSO + MFA to dopiero początek; dochodzi ocena stanu urządzenia (MDM, antywirus, szyfrowanie dysku) i poziom zaufania do sieci (biuro/VPN/public Wi‑Fi).
  • Granularny dostęp do aplikacji – rozwiązania typu ZTNA/secured access (np. Azure App Proxy, Cloudflare Access, Zscaler) dają dostęp do konkretnej aplikacji, a nie całej sieci.
  • Jeden punkt wymuszania polityk – niezależnie od tego, czy aplikacja działa w Kubernetesie w AWS, w App Service w Azure czy na VM‑ce w DC, zasady logowania i MFA wymusza IdP.

Zdarza się usłyszeć: „u nas większość ruchu idzie przez biuro, więc jesteśmy pod kontrolą”. Do czasu, aż dojdzie do większego incydentu na stacji roboczej albo wymuszonego przejścia na pracę zdalną – wtedy wszystkie skróty wprowadzane latami w polityce endpointów wychodzą na wierzch jednocześnie.

Najczęściej zadawane pytania (FAQ)

Czym się różni chmura hybrydowa od multi‑cloud w praktyce?

Chmura hybrydowa łączy twoje środowisko on‑premises (własne data center, kolokacja, prywatna chmura) z jedną lub kilkoma chmurami publicznymi. Odpowiada na pytanie: „co trzymam u siebie, a co wynoszę do chmury”. Multi‑cloud to z kolei równoległe korzystanie z więcej niż jednego dostawcy chmury publicznej, np. AWS + Azure + Google Cloud, żeby dobrać najlepsze usługi lub zmniejszyć zależność od jednego vendora.

W praktyce wiele firm ląduje w scenariuszu „hybrid multi‑cloud”: część systemów zostaje on‑prem, a reszta jest rozrzucona po trzech chmurach. Architektura robi się wtedy dużo bardziej złożona, bo trzeba spiąć cztery różne światy – sieci, IAM, billing i bezpieczeństwo – w coś, co da się utrzymać i nadzorować.

Kiedy chmura hybrydowa z AWS, Azure i Google Cloud ma realnie sens?

Hybryda ma sens, gdy rozwiązuje konkretne ograniczenie biznesowe lub prawne, a nie tylko „fajnie wygląda na slajdzie”. Typowe przypadki to: legacy on‑prem z nowoczesnym frontendem w chmurze, wymóg lokalizacji danych (np. medycznych czy finansowych), scenariusze cloud bursting przy sezonowych szczytach oraz wysoka odporność na awarie z rozłożeniem ról między dostawców.

Przykład: backend krytycznego systemu finansowego zostaje w prywatnej chmurze w kraju, Azure obsługuje integrację z Microsoft 365 i AD, AWS prowadzi główne mikroserwisy sprzedażowe, a GCP służy wyłącznie do analityki w BigQuery. Taki układ ma sens, bo każdy dostawca ma jasno zdefiniowaną rolę, zamiast „trochę wszystkiego wszędzie”.

Czy chmura hybrydowa i multi‑cloud są tańsze niż jedna chmura?

Mit: „rozproszymy się na kilka chmur + zostawimy trochę on‑prem, będzie taniej”. Rzeczywistość: najczęściej wychodzi drożej i trudniej w utrzymaniu. Płacisz za trzy zestawy usług, budujesz trzy zestawy kompetencji, utrzymujesz trzy modele sieci i IAM, a do tego dopłacasz do własnego data center (energia, chłodzenie, serwis, licencje, obsługa).

Hybryda zaczyna mieć sens kosztowy dopiero wtedy, gdy architektura jest zdyscyplinowana: wiadomo, które workloady gdzie działają, jak liczone są koszty transferów, kto zarządza jakim kontem i jak wygląda monitoring całości. Bez tego łatwo o sytuację, w której najmniej krytyczne systemy latają po trzech chmurach, a najważniejsze dalej stoją w szafie serwerowej bez planu DR.

Od czego zacząć, jeśli chcę połączyć on‑prem z AWS, Azure i Google Cloud?

Startuje się nie od VPN‑u, tylko od inwentaryzacji. Trzeba spisać systemy, zależności (bazy, kolejki, integracje), parametry niefunkcjonalne (SLA, RTO/RPO, sezony szczytów) i wymagania regulacyjne. Na tej podstawie dzieli się aplikacje na trzy grupy: zostają on‑prem, migrują w trybie „lift & shift” do jednej z chmur lub są budowane od nowa w modelu cloud‑native.

Dopiero potem ma sens planowanie warstw: jak będzie wyglądała sieć (Direct Connect, ExpressRoute, Interconnect, VPN), kto jest „źródłem prawdy” dla tożsamości (np. Entra ID + federacja do AWS/GCP), która chmura ma prowadzić główne workloady, a która pełni rolę uzupełniającą (np. tylko analityka czy DR).

Jak zaprojektować sieć i bezpieczeństwo w hybrydzie AWS + Azure + GCP?

Kluczowe jest wybranie modelu „hub and spoke” zamiast przypadkowej sieci tuneli. Najczęstszy wzorzec to on‑prem jako centralny hub, spięty łączami typu Direct Connect, ExpressRoute i Cloud Interconnect z chmurami, a między samymi chmurami – ewentualnie mesh VPN tam, gdzie to naprawdę potrzebne. Dzięki temu wiadomo, którędy płynie ruch i gdzie zakładać centralne punkty kontroli.

Bezpieczeństwo opiera się na trzech filarach: wspólne podejście do IAM (centralny IdP + role i polityki w chmurach), ujednolicone logowanie i monitoring (np. eksport logów do jednego SIEM‑a) oraz jasny podział odpowiedzialności zgodnie z modelem „shared responsibility”. Mit polega na założeniu, że „skoro mam trzy chmury, to jestem bezpieczniejszy” – bez wspólnego modelu bezpieczeństwa łatwo osiągnąć efekt odwrotny.

Jak uniknąć chaosu przy korzystaniu z trzech chmur jednocześnie?

Najprostszy sposób to narzucić sobie ograniczenia. Dla każdej warstwy (sieć, IAM, governance, aplikacje, dane) wybierz głównego dostawcę i określ, jaką rolę pełnią pozostali. Przykład: BigQuery jako główna hurtownia danych, a bazy operacyjne rozproszone między AWS i Azure; Entra ID jako centrum tożsamości, z federacją do AWS IAM i Google Cloud IAM; AWS jako domyślny runtime dla mikroserwisów, Azure i GCP tylko dla specyficznych usług PaaS.

Dobrym sygnałem ostrzegawczym jest sytuacja, w której ta sama klasa workloadów (np. backend transakcyjny) działa w trzech chmurach z różnych powodów „historycznych”. Jeżeli nie potrafisz w jednym zdaniu odpowiedzieć, dlaczego dany system jest akurat w tej, a nie innej chmurze, to znaczy, że architekturą zaczyna rządzić przypadek, a nie decyzja.

Czy każda firma powinna iść w chmurę hybrydową i multi‑cloud?

Nie. Dla wielu organizacji stabilne środowisko w jednej chmurze + minimalny on‑prem (np. backup offline, pojedyncze systemy specjalistyczne) będzie bezpieczniejsze, tańsze i prostsze w zarządzaniu niż rozproszona hybryda na trzech dostawcach. Szczególnie dotyczy to firm, które nie mają jeszcze dojrzałego zespołu cloudowego i procesów governance.

Argument „robimy multi‑cloud, żeby uniknąć vendor lock‑in” jest często przeszacowany. Realne „uwolnienie się” od jednego dostawcy zapewnia dobra architektura aplikacji (standaryzacja, kontenery, automatyzacja), a nie to, że uruchomisz po jednej usłudze w każdym z trzech cloudów. Multi‑cloud ma sens, gdy naprawdę korzystasz z unikalnych przewag konkretnych platform – a nie tylko odhaczasz modne hasło.

Najważniejsze wnioski

  • Chmura hybrydowa i multi‑cloud to dwa różne modele: hybryda łączy on‑prem z chmurą publiczną, a multi‑cloud rozgrywa kilka chmur naraz; mieszanie tych pojęć kończy się chaosem w architekturze, kosztach i odpowiedzialnościach.
  • Hybrid multi‑cloud (on‑prem + AWS + Azure + GCP) ma sens tylko przy świadomym podziale ról – np. jeden dostawca jako główny backend, inny jako platforma analityczna, kolejny pod usługi Microsoft, a on‑prem jako „źródło prawdy” dla krytycznych danych.
  • Najbardziej praktyczne scenariusze hybrydy to: legacy on‑prem z nowoczesnym frontendem w chmurze, spełnianie wymogów regulacyjnych dot. lokalizacji danych, cloud bursting w szczytach oraz podniesienie odporności na awarie przez rozdzielenie ról między dostawców.
  • Mit „hybryda zawsze taniej i bezpieczniej” nie wytrzymuje zderzenia z praktyką: trzy chmury plus on‑prem oznaczają zwielokrotnione rachunki, kompetencje i narzędzia; bez dyscypliny architektonicznej ryzyko incydentów i marnowania pieniędzy rośnie, zamiast maleć.
  • Brak spójnego podejścia do sieci, IAM, monitoringu i bezpieczeństwa kończy się zbiorem przypadkowych tuneli VPN, kont „sierot” i powielonych danych; w takiej sytuacji model „shared responsibility” zamienia się w stan, w którym nikt dokładnie nie wie, kto za co odpowiada.
  • Bibliografia i źródła

  • NIST Special Publication 800-145: The NIST Definition of Cloud Computing. National Institute of Standards and Technology (2011) – Definicje modeli chmury, w tym private, public, hybrid
  • NIST Cloud Computing Reference Architecture. National Institute of Standards and Technology (2011) – Model referencyjny i role w architekturach chmurowych
  • AWS Hybrid Cloud Architectures. Amazon Web Services – Oficjalne wzorce i scenariusze dla środowisk hybrydowych AWS + on‑prem
  • Azure Hybrid and Multicloud Solutions. Microsoft Azure – Dokumentacja Microsoft nt. chmury hybrydowej i multi‑cloud
  • Google Cloud Hybrid and Multicloud Architecture Patterns. Google Cloud – Wzorce łączenia on‑prem z GCP oraz scenariusze multi‑cloud

Poprzedni artykułRanking materacy dla osób niskich: jak dobrać twardość, by nie „leżeć na desce”
Filip Olszewski
Filip Olszewski na Ecomaterace.pl zajmuje się analizą materacy i materiałów pod kątem zdrowego, ekologicznego snu. Łączy podejście użytkowe z weryfikacją danych: porównuje deklaracje producentów z parametrami, certyfikatami i realną konstrukcją wkładów. W testach zwraca uwagę na ergonomię, strefy podparcia, wentylację oraz trwałość pianek i sprężyn. Pisze prosto, bez marketingowych skrótów, a rekomendacje opiera na powtarzalnych kryteriach i doświadczeniach z różnych typów sypialni, także przy problemach z kręgosłupem i alergiami.