Jak uzyskać dostęp do konta AWS

(Nicolo Marchesi) (3 grudnia 2020 r.)

Jak uzyskać dostęp do konta AWS

Cześć. Właśnie utworzyłeś swoje pierwsze konto AWS i nie możesz się doczekać, aby zagłębić się we wszystkie ekscytujące usługi i technologie, które ma do zaoferowania AWS, i zacząć tworzyć kolejną wielką rzecz. Ale poczekaj chwilę… czy zamierzasz zalogować się przy użyciu poświadczeń konta roota? A może lepiej jest wygenerować nowego użytkownika? A może skorzystaj z roli?

Zwolnij chwilę i obiecuję, że pod koniec postu na blogu będziesz mógł wybrać najlepszy sposób aby uzyskać bezpieczny dostęp do konta AWS .

Uważaj jednak, rozważymy dostęp do jednego konta aws, ponieważ następnym razem omówimy strategie wielu kont . Musimy chodzić, zanim będziemy mogli biec, prawda?

Konta i zasoby

Każda niesamowita podróż z AWS zaczyna się od kont i zasobów, a konto jest jak puste pudełko.

Rzeczy, które możesz umieścić na swoim koncie, mogą być dowolnymi elementami związanymi z usługami AWS, na przykład sieciami, maszynami wirtualnymi, kontenerami itp.

Ale najważniejsze jest to, że domyślnie żadne konto nie udostępnia żadnych zasobów, więc nic nie może wchodzić ani wychodzić między dwoma różnymi kontami AWS. Świetnie jest podzielić swoje zadania i mieć pewność, że dostęp do wszystkiego mają tylko właściwe osoby.

IAM – Tożsamość & Zarządzanie dostępem

W ramach każdego konta IAM służy do ochrony zasobów na Twoim koncie poprzez zarządzanie podmiotami, które mogą wykonywać na nich pewne działania:

  • KTO – które tożsamości
  • CO – może wykonać pewne czynności
  • GDZIE – w niektórych zasobach
  • JAK – i spełniłem pewne warunki

Definiuję je jako 4W , a na razie musimy skupić się tylko na pierwszym 3.

Na początku – użytkownik root

Gdy zalogowałeś się po utworzeniu konta AWS, użyłeś tego konta użytkownik root .

To różni się od innych, które możesz utworzyć, ponieważ:

  • Utworzono podczas rejestracji konta
  • Ty można zalogować się przy użyciu adresu e-mail i hasła użytego do utworzenia konta
  • Możesz uzyskać dostęp do informacji rozliczeniowych
  • Ma nieograniczony dostęp do wszystkich zasobów na Twoim koncie

Ten użytkownik jest bardzo ważny i należy go chronić w najlepszy możliwy sposób. Jest superadministratorem sterydów, ponieważ może przeglądać informacje rozliczeniowe i robić wszystko ze wszystkimi swoimi zasobami.

Pierwszą rzeczą do zrobienia powinno być:

  • Włącz uwierzytelnianie wieloskładnikowe (MFA) i zapisz kod QR w bezpiecznym miejscu
  • Usuń wszystkie klucze dostępu związane z tym użytkownikiem, aby wyłączyć dostęp programowy (i tak nie będziesz tego potrzebować!)

Następną rzeczą powinna być decyzja, w jaki sposób będziesz od teraz uzyskiwać dostęp do tego konta.

Od wewnątrz AWS

Skoncentrujmy się na tym, co daje nam AWS bez polegania na firmach trzecich. Jest to szczególnie przydatne, jeśli skupiamy się na tym pojedynczym koncie, ponieważ musimy opanować trzy elementy składowe uprawnień: użytkownika, grupy i role.

Użytkownicy

Pamiętasz użytkownika root? Użytkownicy uprawnień to ten sam typ jednostki, ale różni się od użytkownika root. Nie mają domyślnych uprawnień do rozliczeń i dostępu administratora (chyba że dasz im… czego nie powinieneś).

Wraz z użytkownikiem możemy stworzyć podmiot, który będzie mógł logować się do konsoli internetowej AWS lub z dostępem programowym za pośrednictwem zestawu poświadczeń (klucz dostępu i tajny klucz dostępu), które są stałe i nie zmieniają się w czasie. Wraz z kluczami SSH / HTTPS dla AWS CodeCommit lub poświadczeniami dla Amazon Keyspaces (dla Apache Cassandra)

  • Dane logowania do konsoli internetowej
  • Dostęp i dane uwierzytelniające klucza tajnego do programowego dostępu do interfejsów API, CLI i SDK
  • klucze SSH / HTTPS dla AWS CodeCommit
  • Poświadczenia dla Amazon Keyspaces (dla Apache Cassandra)

Granularny dostęp

Z uprawnieniami użytkownika jest całkowicie możliwe włączenie jednego lub więcej kluczy dostępu w zależności od tego, jak ma się zachowywać.Na przykład:

  • Analityk danych, który musi sprawdzać tylko dane analityczne w konsoli internetowej, ale bez dostępu programistycznego
  • Bezserwerowe DevOps, które musi wykonywać działania na konsola i użycie interfejsu wiersza polecenia w celu udostępnienia niektórych zasobów będzie potrzebować obu tych uprawnień.
  • Programista pracujący na jednym repozytorium i nie wymagający interakcji z zasobami AWS będzie miał klucze SSH / HTTPS dla AWS CodeCommit.

Pamiętaj, że udostępniasz poświadczenia użytkownika IAM to wielkie nie-nie, , ponieważ jest to pierwszy krok do utraty danych uwierzytelniających i zarządzania oraz narażenia się na zagrożenia bezpieczeństwa.

Nie Czy chcesz, aby Twoje konto produkcyjne zostało całkowicie usunięte na korzyść pełnego zestawu kopaczy bitcoinów, prawda?

Wymuś bezpieczeństwo

Kolejną fajną funkcją użytkowników AWS IAM jest możliwość wymuszania hasła złożoność (która jest domyślnie dość duża i ma długość między 8–128 znaków cters, minimum 3 znaki specjalne, a nie identyczne z nazwą konta AWS lub adresem e-mail) i czas wygaśnięcia hasła, aby zapewnić, że po pewnym czasie użytkownicy zmienią hasło.

Na górze tego, możesz włączyć MFA na różnych urządzeniach:

  • Wirtualne urządzenie MFA z aplikacją uwierzytelniającą zainstalowaną na urządzeniu mobilnym lub komputerze
  • Klucz bezpieczeństwa U2F, taki jak YubiKey lub dowolne inne zgodne urządzenie U2F
  • Inne sprzętowe urządzenie MFA, takie jak token Gemalto

Ogólnie rzecz biorąc, istnieje szczegółowe podejście, ponieważ można mieć określone środki dla każdego użytkownika IAM .

Kiedy używać

Jeśli masz bardzo niewielu użytkowników (między 1-5) z precyzyjnymi uprawnieniami przypisanymi do każdego z nich, użytkownicy IAM mogą zaoszczędzić trochę czasu na początkowej konfiguracji i dostępie do konsoli. Uważaj na statyczne dane uwierzytelniające , ponieważ są to poważne problemy z bezpieczeństwem, więc postępuj z najwyższą ostrożnością. Lub użyj tokenu AWS CLI get-session-token, aby wygenerować tymczasowe poświadczenia ze statycznych.

Grupy

Nie jest to jednostka jako taka, ale grupy IAM są po to, aby łączyć użytkowników IAM razem i nadaj ten sam zestaw uprawnień grupie użytkowników. To trochę wygładza szorstkie krawędzie użytkowników uprawnień, ale ogólnie mają zastosowanie te same rzeczy, które widzieliśmy w przypadku użytkowników uprawnień.

Warto pamiętać, że użytkownik uprawnień może nadal mieć przypisane osobiste zasady z grupą, z uzyskanym uprawnieniem równa się połączeniu grupowych i osobistych.

Powinno to być raczej wyjątkiem niż typowym przepływem pracy. Przy zbyt wielu indywidualnych uprawnieniach tworzymy wiele niemożliwych do utrzymania zasad i tracimy ogólny przegląd uprawnień na koncie.

Kiedy używać

Jeśli masz niewielu użytkowników (między 5 a 15), grupy uprawnień mogą zaoszczędzić na kłopotach związanych z zarządzaniem i konfigurowaniem każdego użytkownika uprawnień. Ale należy wziąć pod uwagę te same kwestie, co użytkownicy IAM, więc jeśli to możliwe, unikaj ich, chyba że pracujesz tylko na jednym koncie.

Role

A oto role AWS. Role IAM mogą mieć uprawnienia (podobnie jak użytkownicy) i logować się do konsoli (znowu jak użytkownicy…). Zamiast być jednoznacznie powiązanym z jedną osobą, każdy, kto tego potrzebuje, może przyjąć rolę.

Zatem osoba nosi czapkę roli, którą chce pełnić, oraz

Logo roli IAM właśnie zyskał o wiele więcej sensu, prawda?

Tymczasowe poświadczenia

Kolejną kluczową różnicą w porównaniu z użytkownikami uprawnień jest to, że role uprawnień nie mają statycznych poświadczeń. Kiedy ktoś przejmuje role, jest generowany i podawany zestaw tymczasowych danych uwierzytelniających . Można dostosować, jak długo te dane uwierzytelniające będą trwać i dodatkowo ograniczyć dostęp w razie potrzeby.

Czas można ustawić od 900 sekund (15 minut) do 12 godzin, ale moim zdaniem ustawienie jednej godziny- długie wygaśnięcie to najlepszy kompromis między bezpieczeństwem a wydajnością.

Monitorowanie CloudTrail

Wspomnę o tym, ponieważ niektórzy ludzie nie używają ról, ponieważ uważają, że nie mogą kontrolować tego, co role mogą zrobić. Prawda jest taka, że ​​możesz i powinieneś. Włączając monitorowanie Cloudtrail, możesz zobaczyć wszystkie działania wykonywane na swoim koncie, dzięki czemu zawsze możesz wiedzieć, co się dzieje.

Cross Account

Zostanie to omówione bardziej szczegółowo na innym blogu post, ponieważ skupiamy się na pojedynczych kontach, ale na razie pamiętaj, że role IAM mogą być używane do udzielania dostępu innym rolom IAM lub użytkownikom IAM.

I to jest niezwykle przydatne.

Wymagany punkt wejścia

A teraz wady. Niestety nie możesz przyznać bezpośredniego dostępu do konsoli i tymczasowych danych logowania roli IAM. Najpierw musisz skonfigurować użytkownika lub rolę federacyjną (więcej na ten temat w kilku akapitach), aby nadać dostęp do roli IAM.

Kiedy używać

Zawsze. Jedyny fakt, że role IAM są brak powiązania z poświadczeniami statycznymi sprawia, że ​​są one najlepszym sposobem na dostęp do chmury. Połącz je z możliwością monitorowania działań ról IAM i wymuszania bezpieczeństwa nawet w przypadku usługi MFA. Jedynym minusem jest to, że jest to trochę więcej konfiguracji, ale moim zdaniem jest to niska cena.

Spoza AWS

A teraz zobaczmy, co możemy zrobić, wejdź w obszar tożsamości korporacyjnych. Mam na myśli użycie dostawcy tożsamości jako źródła tożsamości i zalogowanie się za pomocą naszego firmowego adresu e-mail i hasła.

Federacja

Ale co rozumiemy przez federację? Z jednej strony mamy dostawcę tożsamości. Systemy te zawierają katalog użytkowników i oprogramowanie, które może komunikować się za pośrednictwem określonych protokołów federacyjnych. Wszystkie dane naszych użytkowników są przechowywane jako Tożsamości .

Po drugiej stronie jest Twój AWS Konto jako Konsument tożsamości . Zachowuje odniesienie do tożsamości bez ich zapisywania. Po tej stronie generalnie mamy znacznie bardziej szczegółowe poziomy autoryzacji (dzięki, IAM!).

Zatem federacja to relacja zaufania, która umożliwia konsumentowi tożsamości odwoływanie się do tożsamości w dostawcy tożsamości.

Federacja SAML

Najpopularniejsza definicja języka Security Assertion Markup Language (SAML ) to otwarty standard wymiany danych uwierzytelniających i autoryzacyjnych między stronami. Oznacza to, że możemy użyć naszych Tożsamości, aby zalogować się do AWS, a nawet uzyskać tymczasowe dane uwierzytelniające, przyjmując role. Jest to podejście ogólne, które można zastosować do prawie wszystkich dostawców tożsamości.

Relacja zaufania

Aby skonfigurować federację między obiema stronami, musimy utworzyć Dostawca tożsamości IAM . Jest to konieczne, ponieważ reprezentuje prawdziwego dostawcę tożsamości i zawiera wspólny sekret, który umożliwia komunikację obu stronom. Ponadto w ramach każdej roli, jaką mają pełnić nasi użytkownicy, zdefiniujemy politykę zaufania , aby umożliwić podmiotom związanym z uprawnieniem Dostawca tożsamości przejmuje rolę:

Zarządzanie niestandardowe

Chodzi o to, że samodzielne zarządzanie federacją może być początkowo trudne i czasochłonne. Jest kilka pojęć, które należy dobrze zrozumieć, i aby tak się stało, musisz stworzyć kilka obiektów, relacji i niestandardowych rzeczy. Aby się zorientować, możesz znaleźć pełny przykład samouczka tutaj .

Kiedy używać

Ogólnie rzecz biorąc, jest to doskonałe i sprawdzone w boju podejście, które sprawdzi się w prawie wszystkich przypadkach. Mimo to niestandardowe zarządzanie tożsamościami może być trudne i czasochłonne dla niedoświadczonych osób.

Typowe przypadki użycia są wtedy, gdy chcesz zarządzać tym samodzielnie ze względów bezpieczeństwa lub zgodności. Nie masz dostępu do swojej organizacji AWS lub AWS SSO nie obsługuje jeszcze Twojego dostawcy tożsamości.

AWS SSO

To jest oparta na chmurze i zarządzana usługa SSO, która umożliwia połączysz swojego dostawcę tożsamości ze swoim kontem AWS.

Organizacja AWS

Aby skonfigurować AWS SSO, musisz skonfigurować organizacje AWS, a na razie możesz o tym pomyśleć, aby zarządzać wieloma kontami AWS. Krótko mówiąc, musisz wiedzieć, że skonfigurowanie organizacji AWS wymaga szerokich uprawnień (a mianowicie użytkownika root).

Wewnętrzny magazyn tożsamości

Domyślnie AWS SSO zapewnia katalog do przechowywania informacji o użytkowniku i poświadczeń, aby służyć bezpośrednio jako dostawca tożsamości. To wspaniale, jeśli nie masz jeszcze dostawcy tożsamości lub nie chcesz kłopotać się konfigurowaniem go.

Zewnętrzny magazyn tożsamości

Ale przypuśćmy, że Twoja organizacja już używa Katalog użytkownika, taki jak Microsoft Active Directory. W takim przypadku możesz podłączyć go do logowania jednokrotnego AWS, eliminując potrzebę utrzymywania dwóch odrębnych katalogów z automatyczną obsługą administracyjną .

Uważaj jednak, że ta funkcja jest obsługiwana tylko w przypadku ograniczonej liczby dostawców tożsamości:

Wieloskładnikowe uwierzytelnianie

W przypadku logowania jednokrotnego AWS możesz skonfigurować urządzenie MFA dla użytkowników w usłudze. Obecnie obsługuje aplikacje Authenticator, takie jak Google Authenticator i klucze bezpieczeństwa, takie jak Yubikey. Rozwiązanie wewnętrzne jest ekscytujące, ale nie obsługuje usługi MFA, jeśli jest skonfigurowane po stronie zewnętrznego dostawcy tożsamości.

Kiedy używać

Jest to standard sugerowany przez AWS i może to być domyślny sposób postępowania, jeśli nie masz pewności, jak postępować. Jest jednak co najmniej kilka wymagań, które musisz zaznaczyć, aby jak najlepiej wykorzystać to rozwiązanie:

Twoja organizacja AWS została już skonfigurowana, i masz dostęp do konta root. Chcesz zachować swoje Tożsamości w ramach jednokrotnego logowania AWS lub skorzystać z dostawcy tożsamości obsługiwanego przez automatyczne udostępnianie.

Uwagi końcowe

Dlatego przygotowaliśmy podstawy dostępu do pojedynczego konta AWS, a teraz powinieneś mieć elementy, aby wybrać najlepszą metodę dla twojego konkretnego przypadku użycia. Wykorzystamy to, aby omówić podstawy zarządzania wieloma kontami i organizacjami AWS w następnym poście na blogu.

Leapp

Na koniec zdecydowanie radzę wszystkim skorzystać z narzędzia, które pomaga im przechowywać wszystkie dane potrzebne do połączenia się z ich kontem AWS. Razem z moim zespołem opracowujemy narzędzie open source, które obsługuje wszystkie te przypadki użycia, więc zachęcamy do sprawdzenia:

Noovolari / leapp

Leapp to Twój codzienny towarzysz w dostępie do chmury; zaprojektowane do pracy z interfejsami API, CLI i SDK dostawców chmury. To…

github.com

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *