AWS IAM - zarządzanie rolami


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.

Zobacz też