AWS IAM - zarządzanie użytkownikami


Koncepcja Użytkownika jest kluczowa dla usługi AWS Identiy and Access Management (IAM). Przy pomocy tego typu obiektu, którym możemy zarządzać z poziomu konsoli WWW, z lini poleceń albo funkcji SDK definiujemy jakie uprawnienia otrzyma klient po uprzednim uwierzytelnieniu. Uprawnienia definiuje się przy pomocy policy, które opisałem w poprzednich artykułach a następnie przypisuje wybranym użytkownikom. Oczywiście najłatwiej utożsamić użytkowników IAM z członkami naszej organizacji, którym w zależności od roli i umiejętności zamierzamy pozwolić na określone działania. Ale w praktyce “użytkownikiem” będzie też aplikacja kliencka, która na przykład wywołuje funkcję lambda.

Uwierzytelnianie

Możemy wyróżnić 2 podstawowe metody uwierzytelnienia, których użyteczność jest zależna od konkretnej sytuacji: * nazwa użytkownika / hasło (+ opcjonalne uwierzytelnianie przy pomocy hasła jednorazowego) - każdemu użytkownikowi, którym zarządzamy w ramach konta AWS możemy umożliwić korzystanie z dostępnych usług po zalogowaniu się przy pomocy nazwy i hasła. Konfiguracja tej opcji w konsoli WWW jest prosta. Uwierzytelnienie przy pomocy hasła konfigurujemy na etapie tworzenia użytkownika - wtedy należy zaznaczyć pole AWS Management Console Access lub włączyć ją dla istniejącego urządzenia - po wyświetleniu szczegółów użytkownika w konsoli IAM przechodzimy do zakładki Security Credentials i klikamy link Manage w wierszu Console Password. Hasło możemy wymyślić samodzielnie lub pozwolić na wygenerowanie przez AWS. Uwierzytelnianie przy pomocy hasła ma ograniczone zastosowanie - nadaje się tylko dla “ludzkich” użytkowników, którzy korzystają z usług AWS przy pomocy konsoli WWWW. Tą metoda nie może być wykorzystywana w lini poleceń albo do wywoływanai funkcj SDK. Użytkownicy utworzeni w ramach konta do logowania używają specjalnej strony, do której prowadzi specjalny adres. Jeżeli numerycznym identyfikatorem naszego konta jest 123456 to adres do strony logowania będzie miał postać https://123456.signin.aws.amazon.com/console.

  • klucze dostępu (AWS Key, AWS Secret Key) - metoda uwierzytelniania, która jest wskazana dla użytkowników korzystających z AWS przy pomocy lini poleceń (AWS CLI) lub aplikacji. Do potwierdzenia tożsamości i uprawnień używa się pary kluczy - publicznego i tajnego.
    Podobnie jak to ma miejsce w przypadku haseł, kluczami można zarządzać w konsoli WWW generując je w chwili tworzenia użytkownika albo przypisując nową parę do istniejącego obiektu. Tutaj warto zaznaczyć, że klucz tajny należy zapisać od razu po jego utworzeniu, gdyż jego odtworzenie jest niemożliwe. Najbardziej uniwersalnym sposobem używania kluczy w lini poleceń albo aplikacji jest ustawienie ich jako zmiennych środowiskowych. W systemie Windows można to wykonać używając poleceń set AWS_ACCESS_KEY_ID=klucz_publiczny oraz set AWS_SECRET_ACCESS_KEY=klucz_tajny.

  • klucze SSH - para kluczy, których używa się zgodnie z protokołem SSH. Są jedyną metodą uwierzytelnienia w dostępie do instancji EC2, mogą być także przydatne w korzystaniu z repozytoriów AWS CodeCommit.

  • użytkownik i hasło GIT - AWS CodeCommit to usługa, w której możemy zarządzać repozytoriami GIT. Dla każdego użytkownika IAM możemy zdefniować uprawnienia jakie mu przysługują w ramach tego serwisu a oprócz tego generujemy nazwę użytkownika i hasło, którego używa w pracy z repozytorium.

Autoryzacja

Określenie dostępu użytkownika do konkretnej usługi lub zasobu, czyli autoryzacja, dokonuje się na podstawie przydzielonych uprawnień. Jak pamiętamy z poprzedniego artykułu, w serwisie IAM uprawnienia grupuje się w dokumenty określane jako policy. I te obiekty wskazuje się, chcąc określić uprawnienia użytkownika.

Zobacz też