Każda firma funkcjonuje w oparciu o wyraźnie wyodrębnione działy, takie jak IT, marketing, HR czy finanse. Ich zadania i odpowiedzialności znacząco się różnią, dlatego nie powinny korzystać z tych samych zasobów, ani posiadać identycznych uprawnień. Podobny podział należy zachować również w środowisku chmurowym. Brak jasnego rozgraniczenia na role może prowadzić do niekontrolowanego dostępu i zagrożeń bezpieczeństwa.
AWS Organizations to serwis umożliwiający odwzorowanie tej struktury w chmurze poprzez tworzenie jednostek organizacyjnych (OU), które odpowiadają poszczególnym zespołom lub działom.
Pozwala to na logiczne grupowanie kont i zasobów zgodnie z organizacyjnym układem firmy. Jednak samo pogrupowanie nie rozwiązuje problemu właściwego ograniczenia kompetencji — przypisanie odpowiednich uprawnień wymaga zastosowania dodatkowych mechanizmów. Jednym z nich są Service Control Policies (SCP), które pozwalają na precyzyjne definiowanie ograniczeń dostępu na poziomie całej organizacji lub wybranych jednostek.
SCP są jednym z typów polityk dostępnych w AWS Organizations, które działają jak niewidzialna warstwa bezpieczeństwa dla infrastruktury chmurowej. W przeciwieństwie do znanych polityk IAM, które nadają uprawnienia użytkownikom oraz rolom w obrębie wybranego konta AWS, Service Control Policies ograniczają uprawnienia na wyższym poziomie. Określają one maksymalny zakres dostępu dla kont, poszczególnych jednostek organizacyjnych (OU), lub całej organizacji AWS. Ponadto, SCP mają wyższy priorytet niż polityki IAM, co oznacza, że mogą (i będą) one blokować operacje, nawet jeśli IAM na nie zezwala.
Wyobraźmy sobie, że nasz zespół deweloperski posiada rolę IAM, która zezwala na przeglądanie, uruchamianie, zatrzymywanie i usuwanie instancji EC2. To typowy scenariusz, gdy programiści potrzebują swobody w zarządzaniu swoim środowiskiem developerskim.
Jednak w naszej organizacji AWS obowiązuje polityka SCP, która stanowi absolutny zakaz usuwania jakichkolwiek instancji EC2, aby zapobiec utracie potencjalnie krytycznych zasobów.
IAM
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"ec2:DescribeInstances",
"ec2:StartInstance",
"ec2:StopInstances",
"ec2:TerminateInstances"
],
"Resource": "*"
}
]
}
SCP
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Deny",
"Action": [
"ec2:TerminateInstances"
],
"Resource": "*"
}
]
}
Gdy deweloper zaloguje się do konsoli AWS i spróbuje usunąć instancję, mimo że jego rola IAM wyraźnie na to zezwala, system zablokuje tę operację i zwróci komunikat informujący o braku uprawnień. To właśnie potęga SCP - są one ostatecznym filtrem bezpieczeństwa, który nadpisuje nawet najbardziej liberalne uprawnienia użytkowników.
Service Control Policies to nie tylko narzędzie do ograniczania uprawnień, lecz potężny mechanizm umożliwiający świadome i bezpieczne zarządzanie środowiskiem chmurowym w całej organizacji AWS. Odpowiednio napisane i umieszczone polityki przynoszą szereg korzyści – od poprawy bezpieczeństwa, przez kontrolę kosztów, aż po zapewnienie zgodności z wymaganiami regulacyjnymi. SCP pomagają wdrażać dobre praktyki w sposób spójny i przewidywalny, a co za tym idzie – stanowią fundament dobrze zarządzanej przestrzeni chmurowej, niezależnie od skali czy złożoności środowiska.
Aby móc korzystać z Service Control Policies, należy najpierw spełnić kilka podstawowych wymagań:
Fig 1. Widok ustawień organizacji w konsoli AWS Organizations
Po spełnieniu tych warunków można zacząć projektować i przypisywać polityki SCP do jednostek organizacyjnych (OU) lub kont członkowskich.
Choć Service Control Policies zapewniają dużą elastyczność w definiowaniu dostępu w ramach AWS Organizations, ich możliwości są ograniczone przez kilka sztywnych limitów. Warto uwzględnić je już na etapie projektowania struktury organizacyjnej oraz planowania polityk, ponieważ mogą bezpośrednio wpłynąć na skalowalność środowiska i sposób zarządzania uprawnieniami.
Maksymalnie 5 polityk SCP przypisanych do jednego elementu organizacji – dotyczy to zarówno kont członkowskich, jednostek organizacyjnych, jak i samej organizacji. Limit ten odnosi się wyłącznie do polityk przypisanych bezpośrednio (nie dotyczy polityk dziedziczonych z wyższych poziomów)
Maksymalna długość jednej polityki SCP to 5 120 znaków – limit ten obejmuje całą zawartość polityki w formacie JSON, w tym spacje, znaki nowej linii oraz tabulatory.
Maksymalna głębokość hierarchii jednostek organizacyjnych to 5 poziomów – liczonych od poziomu organizacji do najniżej położonego OU.
Łączna liczba polityk SCP w organizacji nie może przekroczyć 2 000 – limit obejmuje wszystkie polityki, niezależnie od tego, czy są aktywne, przypisane, czy też nie.
Ograniczenia te nie powinny stanowić problemu, o ile struktura organizacji i polityki są starannie zaplanowane od samego początku. Dobre przygotowanie pozwala efektywnie zarządzać dostępem i utrzymać elastyczność nawet w rozbudowanych środowiskach.
Service Control Policies działają w oparciu o mechanizm dziedziczenia. W praktyce oznacza to, że polityki przypisane do wyższych poziomów w hierarchii organizacji mają wpływ na wszystkie podrzędne jednostki i konta. Ostateczny zestaw uprawnień na koncie to wynik zsumowania wszystkich polityk przypisanych na ścieżce od organizacji głównej, przez jednostki organizacyjne, aż do konkretnego konta. Oznacza to, że nawet jeśli polityka na poziomie konta coś zezwala, ale wyższy poziom tego nie dopuszcza, operacja i tak zostanie zablokowana. Skuteczne wykorzystanie dziedziczenia pozwala unikać powielania tych samych polityk na różnych poziomach organizacji, co zwiększa efektywność zarządzania i sprawia, że wymienione wcześniej ograniczenia są mniej uciążliwe, nawet w rozbudowanych środowiskach.
Projektując SCP, można przyjąć jedno z dwóch głównych podejść – każde z nich opiera się na innej strategii i pociąga za sobą inne konsekwencje:
Podczas tworzenia jednostek organizacyjnych lub kont w organizacji, AWS automatycznie przypisuje do nich politykę FullAWSAccess, która pozwala na pełen dostęp do wszystkich usług. W tym wariancie polityka ta pozostaje aktywna, a dostęp jest ograniczany stopniowo poprzez dodawanie kolejnych polityk typu Deny – najpierw na poziomie organizacji, następnie na poziomie jednostek organizacyjnych, a w razie potrzeby również bezpośrednio na kontach.
To podejście opiera się na domyślnym zezwoleniu i selektywnym odbieraniu dostępu do wybranych usług, operacji lub regionów. Dzięki temu minimalizuje się ryzyko przypadkowego zablokowania kluczowych funkcji. W AWS dostępnych jest tysiące możliwych akcji w ramach poszczególnych usług — od oczywistych, jak s3:PutObject, po bardzo szczegółowe i rzadko spotykane. Trudno znać je wszystkie, dlatego strategia ograniczania dostępu dopiero wtedy, gdy wiadomo, co dokładnie trzeba zablokować, pozwala uniknąć pomyłek.
W tym modelu domyślna polityka FullAWSAccess jest usuwana na poziomie organizacji, co oznacza, że na start żadne konto nie ma uprawnień do korzystania z usług AWS. Dostęp jest nadawany stopniowo, poprzez przypisywanie polityk typu Allow — najpierw na poziomie organizacji, następnie jednostek organizacyjnych, a na końcu kont członkowskich.
Ważne jest to, że każda operacja wymaga bezpośredniego zezwolenia — jeśli na którymkolwiek poziomie hierarchii organizacji (organizacja główna, jednostka organizacyjna, konto) brak jest takiego zezwolenia, operacja zostanie zablokowana.
To podejście zapewnia maksymalną kontrolę nad uprawnieniami i bezpieczeństwem opierając się na zasadzie “domyślnie brak dostępu” (”deny by default”), ale wymaga precyzyjnego zarządzania politykami i dobrej znajomości dostępnych usług, aby uniknąć niezamierzonych blokad.
Kryterium | Podejście 1: Pełny dostęp i stopniowe ograniczanie | Podejście 2: Brak dostępu i stopniowe nadawanie |
---|---|---|
Domyślna polityka | FullAWSAccess pozostaje aktywna | FullAWSAccess usuwana |
Strategia | Odbieranie uprawnień (Deny) | Nadawanie uprawnień (Allow) |
Ryzyko przypadkowego zablokowania | Niskie – mniej restrykcyjne | Wysokie – wymaga precyzyjnego zarządzania |
Kontrola nad dostępem | Dobra, ale mniej precyzyjna | Bardzo wysoka, ale wymaga pełnej znajomości uprawnień |
Trudność wdrożenia | Niska – łatwiejsze do szybkiego startu | Bardzo wysoka – wymaga dogłębnej analizy i planowania |
Tab 1: porównanie wdrażania SCP w organizacji według wybranych kryteriów
Podejście z pełnym dostępem i stopniowym ograniczaniem jest prostsze do wdrożenia i zmniejsza ryzyko przerw w działaniu, natomiast model z brakiem dostępu i stopniowym nadawaniem uprawnień zapewnia większą kontrolę i bezpieczeństwo, choć wymaga dokładniejszego planowania i lepszego zrozumienia potrzeb organizacji.
Ostateczny wybór zależy od doświadczenia zespołu oraz tego, czy ważniejsza jest elastyczność, czy ścisłe przestrzeganie zasad bezpieczeństwa.
Service Control Policies to fundament bezpieczeństwa i zarządzania dostępem w AWS. Bez nich brak kontroli na poziomie całej organizacji prowadzi do incydentów bezpieczeństwa, wzrostu kosztów oraz ryzyka niespełnienia wymogów compliance. Centralne zarządzanie politykami za pomocą SCP pozwala zachować pełną kontrolę nad środowiskiem i minimalizuje ryzyko nieautoryzowanych działań. To kluczowe narzędzie do ochrony organizacji przed konsekwencjami niekontrolowanego dostępu oraz do utrzymania porządku i bezpieczeństwa.