Bardzo krótkie, teoretyczne wprowadzenie dotyczące usług AWS jest już za nami. W tym wpisie założmy darmowe konto i zaczniemy powoli korzystać z konsoli AWS.
W tej części wykonamy poniższe kroki:
Rejestracja konta AWS;
Utworzenie hasła i dostęp do danych uwierzytelniających konto;
Aktywacja usług.
Tworzenie konta
Amazon oferuje w pełni funkcjonalne, darmowe na rok konto, pozwalające korzystać z wszelkich komponentów architektury AWS. Czas ten pozwoli nam nam zapoznanie się z usługami takimi jak EC2, S3, DynamoDB, itd. Jedyne o czym musimy pamiętać to ograniczenia związane z użyciem zasobów.
Krok 2:
Kolejny formularz to dane kontaktowe używane do rozliczeń oraz fakturowania.
Krok 3:
Podajemy informacje dotyczące płatności. W celu weryfikacji ważności naszej karty dojdzie do pobrania minimalnej kwoty (w moim przypadku: 3.84zł – 1usd) z konta. Kwota ta różni się w zależności od regionu. Warto również mieć na uwadze, że są akceptowane wirtualne karty Revoluta:
Krok 4:
Wskazanie sposobu weryfikacji naszej tożsamości poprzez połączenie telefoniczne lub wiadomość tekstową:
Po wskazaniu wiadomości tekstowej (preferowany wybór zdecydowanej większości) dostaniecie kod weryfikacyjny, który należy wpisać w poniższe pole:
Krok 5:
Wybieramy jeden z dostępnych planów, tj. Basic, Developer lub Business. Plan podstawowy jest bezpłatny ale ma ograniczone zasoby – będzie to jednak idealny wybór do zapoznania się z usługami AWS:
Ostatni krok to potwierdzenie utworzenia naszego konta:
Jedyne o czym tak naprawdę musicie pamiętać (żeby oszczędzić sobie nieco problemów) to posiadanie wystarczających środków na karcie w celu jej weryfikacji. Sam proces nie powinien przynieść żadnych innych problemów.
Po poprawnym zalogowaniu zostaniecie przekierowani do konsoli AWS:
Zanim przejdziemy do eksploracji konsoli zapoznamy się z kluczowymi (z perspektywy programisty) identifykatorami, uwierzytelnianiem wieloetapowym (kwestie bezpieczeństwa naszego konta) oraz zarządzaniem tożsamością i dostępem (IAM).
Identyfikatory kont AWS
W momencie zakładania konta, AWS przypisuje nam dwa unikalne identyfikatory:
Identyfikator konta AWS;
Alfanumeryczny identyfikator użytkownika.
Pierwszy z nich to 12-sto cyfrowy numer, który służy do tworzenia ARN (Amazon Resource Names) pozwalając odróżnić nasze zasoby od zasobów innych użytkowników platformy AWS.
Numer ten dostępny jest poziomu zarządzania naszym użytkownikiem tak jak możecie zobaczyć na poniższym zrzucie ekranu:
Drugi z identyfikatorów to alfanumeryczny ciąg znaków przyjmujący postać podobną do: 79a59df900b949e55d96a1e698fbacedfd6e09d98eacf8f8d5218e7cd47ef2be – jest to zakodowana forma identyfikatora konta AWS. Identyfikator ten jest używany do przyznawania dostępu pomiędzy kontami dla wiader/kubełków i obiektów przechowywanych w S3. Dostęp do niego możemy uzyskać będąc zalogowanym ze swojego konto (jako admin) lub jako użytkownik IAM - o tym w dalszej części wpisu.
Uproszczenie procesu logowania
Alias konta jest adresem URL dla strony logowania, który domyślnie używa ID konta. Adres ten możemy dostosować do naszych potrzeb dodając np. nazwę firmy. Jest to oczywiście powszechna praktyka w firmach gdzie logujemy się jako użytkownicy danej organizacji. Dodatkowo możemy w prosty sposób zalogować się do konsoli zarządzania określonymi środowiskami z określonymi prawami przyznanymi dla kont naszych użytkowników.
Wszelkich zmian dokonujemy z poziomu IAM. Po poprawnym zalogowaniu możecie skorzystać z adresu https://console.aws.amazon.com/iam/home lub wykorzystać wyszukiwarkę usług:
Z poziomu otwartego ekranu klikamy w link Customize:
wprowadzając odpowiedni dla nas alias:
Użytkownicy będący zdefiniowani w ramach naszej organizacji będą mogli korzystać z utworzonego aliasu w celu szybszego zalogowania do konsoli zarządzania usługami. Z poziomu tego widoku możemy również dokonać usunięcia aliasu.
AWS Identity & Access Management (IAM)
Kolejnym krokiem w naszym wpisie jest utworzenie nowego użytkownika, który będzie reprezentował osobę korzystającą z zasobów AWS w ograniczonym zakresie. Do tej pory korzystaliśmy z konta root, który ma nieograniczony dostęp do wszystkich zasobów. Z perspektywy (szeroko pojętego) bezpieczeństwa jest to niezbędny krok w większych organizacjach. O ile pomyłka (np. usunięcie tabeli) na środowisku deweloperskim nie będzie kosztowna to ta sama modyfikacja na środowisku produkcyjnym może doprowadzić do przykrych konsekwnencji. Nie każda z osób powinna mieć pełne uprawienia.
Dodawanie nowych użytkowników jest banalnie proste. Mając otwarty dashboard IAM klikamy link Users i z poziomu tego ekranu klikamy przycisk dodawania nowego użytkownika:
Podajemy nazwę użytkownika oraz rodzaj przydzielonego dostępu. Drugi z nich pozwala nam jedynie na zalogowanie się do konsoli zarządzania (zrzut ekranu poniżej). Pierwszy oferuje znacznie szerszy dostęp a przydzielona para kluczy: dostępu oraz autoryzacji pozwalają na wykorzystanie m.in. AWS API czy CLI. Jeżeli czas będzie po naszej stronie przygotuje kolejny cykl wpisów dotyczący Pulumi - jest to niesamowite narzędzie, które pozwala nam tworzyć infrastrukturę w postaci kodu – przy takim podejściu nie musimy wszystkiego "wyklikiwać" w naszej konsoli. Jest to temat niezwykle ciekawy i interesujący ale równocześnie tak obszerny, że poruszymy go w kolejnym cyklu.
Kolejny krok to przydzielenie uprawnień naszemu użytkownikowi:
Nad tym punktem też moglibyśmy spędzić naprawdę dużo czasu ale postaram się go skrócić do minimum. Polecanym podejściem jest tworzenie grup użytkowników znajdujących się w naszej organizacji: programiści potrzebują nieco innych uprawnień niż testerzy, tech lead to osoba, która będzie miała znacznie szersze uprawnienia niż programista (zwłaszcza na wyższych środowiskach), dla innychch osób wystarczający będzie dostęp typu read na niektórych usługach. Jako, że zaczynamy z pustym kontem wykorzystamy jedną ze zdefiniowanych domyślnie polityk dostarczanych przez AWS:
W następnym kroku możemy dodać znaczniki (są opcjonalne):
Pozwalają na określenie podstawowych informacji o użytkowniku takie jak adres email czy nazwa stanowiska. Znaczniki pozwalają na lepszą organizację uprawnień oraz kontrolę dostępu.
Kolejny widok to podsumowanie konfiguracji, której dokonaliśmy w poprzednich krokach:
Jeżeli wszystko jest w porządku tworzymy nowego użytkownika, który ma ograniczone uprawienia względem naszego głównego konta. W tym momencie warto na chwilę się zatrzymać, pobrać wygenerowane dane oraz przesłać informacje logowania do osoby zainteresowanej.
Podsumowanie
W podsumowaniu warto wspomnieć o jeszcze jednym poziomie dostępu do naszego konta, tj. Multi Factor Authentication. Dla osob, które dbają o swoje bezpieczeństwo, handlują kryptowalutami, etc. to nic nowego. Mechanizm ten zapewnia wyższy poziom bezpieczeństwa poprzez dodatkowe uwierzytelnienie w postaci unikalnego kodu dostarczonego na uwierzytelnione urządzenie (najbardziej popularne rozwiązanie) lub w potaci wiadomości tekstowej wysyłanej na zdefiniowany numer telefonu w trakcie logowania do usług AWS. W tym wpisie nie będę przechodził przez ten mechanizm ponieważ na nasze potrzeby (nauka) nie jest to rozwiązanie wymagane. Jeżeli jednak chcielibyście skorzystać z tego rozwiązania kliknicie na nazwę swojego użytkownika (prawy górny róg) a następnie wybierzcie My Security Credentials. Z poziomu tego widoku będzie mogli dodać MFA do swojego konta:
W kolejnym wpisie zapoznamy się konsolą zarządzania usługami AWS, dokonamy niewielkich zmian w dashboardzie oraz sprawdzimy czy rzeczywiście nie ponosimy żadnych ukrytych opłat.