Jak wydajnie pracować z AWS w przeglądarce?


"Jak wydajnie pracować z AWS w przeglądarce?"
Na wstępie chce zaznaczyć, że każdy powinien wykorzystywać w AWS koncepcje Infrastructure as Code i zarządzać zasobami oraz usługami przy pomocy plików konfiguracyjnych i dedykowanych narzędzi np. Serverless Framework, CloudFormation, Terraform, SAM.

Pomimo tego i tak nie da się uciec od przeglądarki i konsoli webowej (strona aws.amazon.com). Dziś chce się z Tobą podzielić kilkoma sposobami i rozwiązaniami, które stosuje, aby praca z AWS przez przeglądarkę internetową była wygodniejsza.

Na początek zastanówmy się

Skąd potrzeba specjalnych rozwiązań?

Może w ogóle zastanawiasz się dlaczego o tym piszę? Być może masz swojego użytkownika IAM na koncie AWS i jak trzeba logujesz się do https://aws.amazon.com i tyle. Nic wielkiego. Zgadza się, nic wielkiego, natomiast sprawy zaczynają się komplikować gdy masz więcej kont AWS oraz… komputerów z których korzystasz.

U mnie to wygląda tak:

  • Na co dzień pracuje u klienta dla którego zarządzam czterema kontami AWS
  • Posiadam również trzy prywatne konta AWS

Z tych zasobów korzystam z dwóch komputerów, a czasem jeszcze mam maszyny wirtualne w VirtualBox do pracy ale to juz pominę.

Rada 1: Osobne przeglądarki

Aby nie mieszać życia prywatnego i kont prywatnych ze służbowymi ustaliłem sobie, że Firefox będzie służył do pracy, a Chrome do prywatnych rzeczy. Wynikiem takiego podziału jest to, że w efekcie mam cztery przeglądarki, po dwie na każdy komputer. To rodzi problemy dotyczące synchronizacji ustawień między nimi i na rozwiązaniu tych problemów skupię się w tym artykule.

Rada 2: Minimalna ilość użytkowników IAM (tożsamości)

To nie moja zasada, a dobra praktyka od AWS. Na każdym koncie AWS możemy założyć dowolną ilość do 5000 użytkowników IAM (tożsamości). Ja pracując z siedmioma kontami AWS miałbym w takim wypadku siedem tożsamości, siedem haseł, siedem tokenów MFA. Kiepska sprawa, ponieważ to bardzo niewygodne. Aby zapobiec takiej nadmiarowości, powinniśmy wykorzystać mechanizm przełączania roli.

Na czym to polega?

Zamiast 7 tożsamości mam tylko dwie. Jedną dla moich 4 kont służbowych i jedną dla 3 prywatnych. Te konfiguracje dla kont służbowych i prywatnych są u mnie analogiczne, więc opiszę tylko jedną z nich. Na koncie “głównym” (bez rożnicy które) tworzymy użytkownika IAM, a na pozostałych tworzymy role IAM, które nasz użytkownik będzie mógł tymczasowo przyjąć za pomocą mechanizmu STS AssumeRole.

Gdy mamy skonfigurowane technikalia, to w przeglądarce internetowej, po zalogowaniu się na konto “główne” wybieramy z menu “Switch Role”

Następnie konfigurujemy szczegóły. Podajemy na jakie konto AWS się chcemy przełączyć, na jaką rolę i jak chcemy nazwać swoje połączenie.

Jak widziałeś na pierwszym obrazku, ja na swoim “głównym” koncie mam zdefiniowane role do przełączania się na konto test oraz serverless. Jest to super wygodny i bezpieczny sposób na dostęp do innych kont kont AWS. Tak samo mam to rozwiązane na kontach służbowych dla siebie oraz pozostałych członków zespołu.
Oczywiście, pomimo tego iż technicznie nie ma przeciwwskazań, nie łączę swoich kont prywatnych ze służbowymi! Naturalnie, gdybym pracował z drugim klientem to jego konta nie mogą być powiązane z kontami mojego pierwszego klienta 😉

Jak skonfigurować to technicznie dowiesz sie tutaj: Tutorial: Delegate Access Across AWS Accounts Using IAM Roles

Przełączanie roli to super sprawa i bardzo ułatwia życie, natomiast AWS ją oparł o ciasteczka i storage przeglądarki. Co za tym idzie, na każdej przeglądarce trzeba ręcznie przejść przez konfigurowanie tego. Dodatkowo, za każdym razem jak wyczyścisz cache przeglądarki to stracisz konfiguracje. Dalej, moje doświadczenia są takie, że średnio co tydzień lub dwa te ciasteczka same się resetują i muszę od nowa wszystko konfigurować. Doprowadza mnie to do szewskiej pasji…

… tym bardziej, że nie tylko role giną (o czym opowiem dalej).

Rada 3: Używaj AWS Extend Switch Roles

Jest to plugin do Firefoxa i Chroma, który pozwala skonfigurować role w przeglądarce za pomocą pliku konfiguracyjnego

Taką konfiguracje możemy sobie zapisać gdziekolwiek w pliku i wygodnie użyć w dowolnej przeglądarce. Oszczędzi to mnóstwo czasu i frustracji, szczególnie przy zmianie komputera na nowy.

Przykładowo taka konfiguracje może wyglądać następująco:

1
2
3
4
5
6
7
8
9
[serverless]
aws_account_id = numer-konta-2
role_name = my-admin-access
color = e83c40

[test]
aws_account_id = numer-konta-3
role_name = my-admin-access
color = 4a8ad9

I daje następujący wynik:

Oczywiście numery kont i nazwę roli musisz zastąpić swoimi, prawdziwymi danymi 🙂 Kliknięcie przełączy nas na inne konto AWS.

W tym miejscu chciałbym podziękować Mariuszowi Preiss, który mi powiedział o tym pluginie. Dzięki 👍😃

Rada 4: Jednolite skróty do usług

Konsola webowa AWS ma bardzo wygodną funkcjonalność, pozwala dodawać skróty do wybranych usług na poziomym pasku u góry. Dla ciekawskich dodam, że ten pasek skrótów w kodzie HTML strony nazywany jest panoramą. Ładna nazwa. Niestety te skróty, tak samo jak role są przechowywane w ciasteczkach i lokalnej pamięci przeglądarki. Przez, co nie sposób ich wygodnie skonfigurować (trzeba jest wyklikać) ani przenieść do innej przeglądarki.

No i oczywiście, co jakiś czaś same znikają. Kto wie, może tylko ja mam takiego pecha, a może po prostu przeglądarki są kiepskie… 🤔

Tak czy inaczej, całkiem niedawno znalazłem idealne rozwiązanie mojego problemu. Istniej plugin Cloud Pegboard AWS Console Enhancer, który pozwala zdefiniować swoją własną listę skrótów, a następnie użyć jej w dowolnej przeglądarce. Już samo to, że działa i nie znika zaoszczędzi mi lata życia. Na dokładkę ma też taką super funkcje jak skracanie nazw usług dzięki czemu możemy na pasku umieścić więcej skrótów. Dla mnie bomba!

A teraz najlepsze. Ponieważ plugin jest dostępny dla Chrome i Firefox to w każdej z moich czterech przeglądarek wreszcie mam ustawione skróty taka samo, co więcej, jak chce je zmienić to robię to tylko w jednym miejscu, czyli w panelu mojego konta Cloud Pegboard i magicznie skróty się aktualizują same w przeglądarce. Niesamowite!

Rada 5: Używaj Session Managera zamiast SSH

Jeśli masz serwery w AWS, to zamiast męczyć się kluczami i logowaniem przez SSH korzystaj z AWS Systems Manager Session Manager. Pozwoli Ci to zalogować się do konsoli linuxowej Twojego serwera prosto ze strony konsoli webowej AWS. To też działa dla Windowsów, wtedy mamy dostęp do Powershell. Ta opcja jest bezpieczna i super wygodna.

Podsumowanie

Przypuszczam, że dla niektórych ten artykuł wyda się zbędny, problemy wydumane, a rady niepotrzebne. Zupełnie się tym nie przejmuje, każdy ustawia swoje stanowisko pracy jak lubi.

Ja lubię mieć swoje narzędzia w pełnej gotowości do pracy i nienawidzę tracić czasu na pierdoły, szczególnie gdy te pierdoły powracają. Powyższe rozwiązania pozwalają mi oszczędzić wiele czasu oraz zachować spójność i porządek bez różnicy na to z którego komputera korzystam. I to sie dla mnie liczy.

Mam nadzieję, że artykuł okazał się dla Ciebie pomocny i skorzystasz z moich rad. Jeśli znasz inne life-hacki dotyczące pracy z AWS to podziel sie nimi w komentarzu. Z góry dzięki.