Generator polityki AWS IAM
Zbuduj dokument JSON z akcjami, zasobami i warunkami — zgodnie z zasadą najmniejszych uprawnień.
-
1Wprowadź dane
Wpisz treść, wklej tekst lub załaduj plik z dysku. -
2Kliknij przycisk
Narzędzie natychmiast przetworzy Twoje dane w przeglądarce. -
3Pobierz wynik
Skopiuj gotowy tekst lub zapisz plik na urządzeniu.
return "Wynik gotowy w 0.1s";
}
Warunek (Condition)
Polityka IAM to dokument JSON opisujący uprawnienia. Zasada najmniejszych uprawnień oznacza dawanie tylko niezbędnych akcji do konkretnych zasobów. Warunki (Condition) pozwalają dodatkowo ograniczyć dostęp, np. do wybranego regionu. Zawsze testuj politykę na środowisku nieprodukcyjnym.
Oceń to narzędzie:
Powiązane narzędzia
Inne narzędzia, które mogą Ci się przydaćGenerator polityki AWS IAM — dokument JSON zgodny z zasadą najmniejszych uprawnień
Generator polityki AWS IAM składa poprawny dokument JSON z pól Effect, Action, Resource i opcjonalnego Condition. Wpisz akcje i ARN-y zasobów, a narzędzie doda właściwą wersję języka polityki i sformatuje wynik gotowy do wklejenia w konsoli AWS lub w Terraformie.
Co dokładnie robi to narzędzie
Formularz przyjmuje listę akcji (po jednej w linii), listę zasobów w postaci ARN-ów, przełącznik Allow/Deny, opcjonalny identyfikator Sid oraz jeden warunek klucz–wartość. Puste linie są pomijane, powtórzenia usuwane, a wynik zawsze przechodzi przez json_encode, więc jest składniowo poprawnym JSON-em — nie zbudujesz tu dokumentu z niedomkniętym nawiasem czy zawieszoną przecinkiem tablicą.
Jedna akcja trafia do Action jako pojedynczy ciąg, kilka — jako tablica; tak samo z Resource. Oba warianty AWS akceptuje. Trzy szablony startowe (S3 read, Lambda invoke, Deny) pokazują typowe kształty polityki i są dobrym punktem wyjścia.
Struktura polityki IAM
Polityka to dokument JSON o ustalonym szkielecie. Najważniejsze pola:
| Pole | Za co odpowiada | Przykład |
|---|---|---|
| Version | Wersja języka polityki — używaj najnowszej | 2012-10-17 |
| Statement | Lista instrukcji; każda opisuje jedno uprawnienie | [ … ] |
| Sid | Opcjonalna etykieta instrukcji (dla czytelności) | S3ReadOnly |
| Effect | Czy instrukcja przyznaje czy odbiera dostęp | Allow / Deny |
| Action | Operacje usługi, których dotyczy | s3:GetObject |
| Resource | ARN zasobu, na którym akcja jest dozwolona | arn:aws:s3:::my-bucket/* |
| Condition | Dodatkowy warunek zawężający regułę | aws:RequestedRegion |
Pole Version to nie wersja Twojej polityki, tylko wersja gramatyki AWS. Wartość 2012-10-17 jest obowiązująca dla wszystkich nowych dokumentów — starsza 2008-10-17 nie obsługuje między innymi zmiennych w politykach. Statement może zawierać wiele instrukcji, a każda z osobna łączy jeden Effect z listami akcji i zasobów.
Zasada najmniejszych uprawnień w praktyce
Najmniejsze uprawnienia to dawanie dokładnie tego, co potrzebne — ani akcji więcej, ani szerszego zakresu zasobów. Zamiast s3:* wypisz konkretne operacje: s3:GetObject i s3:ListBucket dla dostępu tylko do odczytu. Zamiast "Resource": "*" wskaż ARN bucketa i jego zawartości. Dzięki temu skradziony klucz albo błąd w kodzie nie zamieniają się w pełny dostęp do konta.
- Zacznij od jednej akcji i jednego zasobu, potem dokładaj tylko to, co realnie się pojawia w logach odmów.
- Rozdzielaj uprawnienia na osobne instrukcje
Statement, gdy dotyczą różnych usług — łatwiej je później czytać i wycofywać. - Dodaj
Condition, gdy chcesz ograniczyć regułę, np. do jednego regionu (aws:RequestedRegion) albo do żądań po HTTPS. - Przetestuj dokument w IAM Policy Simulator, zanim podepniesz go do roli produkcyjnej.
Dlaczego "Action": "*" na "Resource": "*" jest niebezpieczne
Instrukcja Allow z gwiazdką w obu polach przyznaje każdą operację każdej usługi na każdym zasobie — to odpowiednik roli administratora. Wystarczy jeden wyciek takiego klucza, by ktoś usunął bazy, uruchomił maszyny do kopania kryptowalut albo wyprowadził dane. Narzędzie wykrywa ten układ i wyświetla ostrzeżenie nad wynikiem, żeby taki dokument nie powstał przez przypadek.
Allow ma "Action": "*" oraz "Resource": "*". Jeśli naprawdę potrzebujesz szerokiego dostępu, ogranicz go choćby do jednej usługi (np. s3:*) i wskaż ARN-y zamiast gwiazdki w zasobach.Podobną kontrolę składni znajdziesz w generatorze nagłówka CSP, gdzie ostrzegamy przed 'unsafe-inline' — w obu przypadkach domyślnie „wszystko wolno” jest wygodne, ale kosztuje bezpieczeństwem.
ARN, czyli jak nazywa się zasób
ARN (Amazon Resource Name) jednoznacznie wskazuje zasób i ma stały wzór arn:aws:usługa:region:konto:zasób. Dla S3 region i konto bywają puste (arn:aws:s3:::my-bucket), bo nazwy bucketów są globalne. Zwróć uwagę na dwa różne ARN-y: arn:aws:s3:::my-bucket to sam bucket (dla s3:ListBucket), a arn:aws:s3:::my-bucket/* to obiekty w nim (dla s3:GetObject). Pomylenie ich to najczęstsza przyczyna „AccessDenied” mimo pozornie poprawnej polityki.
Polityki zarządzane a wbudowane (inline)
Ten sam dokument JSON możesz podpiąć na dwa sposoby. Polityka zarządzana istnieje samodzielnie i przypina się do wielu tożsamości — łatwo ją wersjonować i wielokrotnie użyć. Polityka wbudowana (inline) żyje wewnątrz jednej tożsamości i znika razem z nią. Do współdzielonych uprawnień wybieraj zarządzane, do jednorazowych wyjątków — inline.
Jeśli tę samą politykę wdrażasz jako kod, opisz ją w Terraformie: pomoże generator konfiguracji Terraform dla AWS EC2, a szablony CloudFormation sprawdzisz walidatorem szablonów CloudFormation. Do ochrony samych plików na serwerze przydaje się z kolei generator .htpasswd.
Najczęściej zadawane pytania
Czym różni się Allow od Deny?
Domyślnie każda operacja jest zabroniona, dopóki jakaś polityka Allow jej nie przyzna. Deny ma pierwszeństwo: jawna odmowa przebija każdy Allow, więc używa się jej do twardych zakazów, np. blokady operacji poza jednym regionem.
Kiedy podać jeden ARN, a kiedy listę?
Gdy akcja dotyczy jednego zasobu, wystarczy jeden ARN. Przy odczycie z bucketa S3 zwykle podaje się dwa: sam bucket dla s3:ListBucket i wzorzec bucket/* dla akcji na obiektach. Narzędzie przyjmie oba w osobnych liniach.
Do czego służy pole Sid?
Sid to opcjonalna etykieta instrukcji. Nie wpływa na uprawnienia, ale ułatwia czytanie dłuższych polityk i odnajdywanie konkretnej reguły w logach. W jednej polityce identyfikatory Sid powinny być unikalne.
Czy warunek Condition jest obowiązkowy?
Nie. Bez warunku reguła obowiązuje zawsze, gdy zgadzają się akcja i zasób. Condition dokłada dodatkowy test, np. aws:RequestedRegion równe eu-central-1, dzięki czemu ta sama akcja jest dozwolona tylko w wybranym regionie.
Jak sprawdzić, czy polityka działa poprawnie?
Użyj IAM Policy Simulator w konsoli AWS: symuluje decyzję dla wybranej akcji i zasobu bez wywoływania jej naprawdę. Warto też włączyć logi CloudTrail, żeby zobaczyć realne odmowy dostępu i uzupełnić brakujące akcje.