Dotychczas w serii artykułow o AWS IAM pod uwagę braliśmy sytuację, w której to człowiek przy pomocy konsoli WWW albo innej aplikacji zarządza poszczególnymi usługiami. Taki użytkownik posiada zbiór uprawnień do wykonywania określonych operacji. Jednak w tym modelu poszczególne usługi AWS i tworzone w ich ramach obiekty, na przykład funkcja Lambda albo instancja EC2, nie mają statusu użytkowników. A jednak do pełnego wykorzystania ich możliwości niezbędne jest prawo do odwoływania się do innych usług. Funkcja Lambda może potrzebować prawa do zapisu logów w serwisie CloudWatch albo odczytu danych z tabeli DynamoDB. W takim przypadku do autoryzowania operacji posługujemy się rolami. W tym artykule przybliżę najważniejsze pojęcia związane z zarządzaniem rolami w serwisie AWS IAM.
Rola IAM
Identyfikator w ramach konta AWS, który ma określone uprawnienia. W odróżnieniu od użytkownika nie jest skojarzona z konkretną osobą. Zamiast tego może się na nią przełączyć każdy, kto potrzebuje określonych uprawnień.
Role mogą być używane przez: * użytkowników zdefiniowanych w ramach tego samego konta * użytkowników zdefiniowanych w ramach innego konta * usługę AWS
AWS service role (rola serwisowa)
Rola używana przez usługę AWS, gdy ta wykonuje czynności w twoim imieniu. Na przykład funkcja Lambda potrzebuje specjalnych uprawnień, by wysłać wiadomość do kolejki SNS.
AWS service-linked role
Rola serwisowa predefiniowana przez usługę, której dotyczy i zawierająca wszystkie uprawnienia potrzebne do działania serwisu. Każda z usług, które wspierają ten typ roli określa w jaki sposób jest ona zarządzana. Usługa może zarządzać rolą automatycznie, lub oczekiwać utworzenia w serwisie IAM.
Następstwo ról (role chaining)
Następstwo ról (role chaning) występuje wtedy, gdy użytkownik przełącza się na rolę i tym samy uzyskuje uprawnienie na przełączenie się na inną rolę z innymi uprawnieniami. W odróżnieniu od typowego przypadku, w którym użytkownik ma jawnie prawo do przełączenia się na rolę A i rolę B, gdy stosuje się następstwo ról, to znaczy użytkownik przełącza się na rolę A i tym samym uzyskuje prawo do roli C, maksymalny czas trwania sesji, w której użytkownik może wykonywać czynności wynosi 1 godzinę.
Delegacja uprawnień
Przyznawanie uprawnień do używania twoich zasobów. Polega na ustanowieniu połączenia między Twoim kontem (trusting account) a kontem zaufanym (trusted account). W celu delegacji uprawnień w sersisie IAM tworzy się rolę, która zawiera dwa dokumenty policy
:
* permission policy - dokument określający uprawnienia związane z rolą
* trust policy - określa jacy członkowie zaufanego konta mogą przełączyć się na rolę
Dodatkowo członek zaufanego konta musi mieć zgodę na przełączenie się na konkretną rolę
Granice uprawnień
Granice uprawnień (Permission boundaries) ustawia się dla użytkownika lub roli, gdy administrator chce określić maksymalny zakres skutecznych uprawnień wynikających z dołączonych dokumentów policy.
Przykład
Użytkownik Kasia ma przypisane policy z uprawnieniami do wszystkich operacji w serwisie S3 (pełen dostęp). Jednocześnie ma ustawione granice uprawnień, które zezwalają tylko na operacje odczytu. Ostatecznie Kasia może wykonywać tylko operacje odczytu mimo tego, że jej policy daje pełen dostęp.
Principal
Serwis lub użytkownik, który może wykonywać akcje lub posiada dostęp do zasobu. Określenie Principal
jest wymagane definiując role albo resource-based policy.