• CloudPouch NEW!
  • Blog
  • O stronie
  • Home

Uproszczona konfiguracja profili SSO w AWS CLI za pomocą sesji SSO


Od jakiegoś czasu konfiguracja profili Single Sign-On (SSO) w AWS CLI została uproszczona dzięki wprowadzeniu sesji SSO. Tradycyjnie konfiguracja profili SSO wymagała podawania danych endpointu SSO dla każdego profilu z osobna. Nowe podejście wykorzystuje sekcję sso-session w pliku konfiguracyjnym, grupując zmienne endpointu SSO, do której profile się odwołują. Dzięki temu nie powtarzamy tych samych informacji, a sama konfiguracja jest łatwiejsza.

Korzyści z używania sesji SSO

Sesje SSO oferują wiele korzyści w porównaniu z poprzednimi metodami:

  • Uproszczona konfiguracja: Definiowanie sekcji sso-session oraz jej powiązanie z profilem jest łatwiejsze niż ręczne ustawianie wszystkich parametrów.
  • Automatyczne odświeżanie tokenów: Sesje SSO automatycznie odnawiają tokeny dostępu, co eliminuje konieczność ręcznego odświeżania poświadczeń. AWS CLI zarządza procesem odnawiania tokenu w tle, wykorzystując tzw. “refresh token”. Gdy token dostępu wygaśnie (zazwyczaj po godzinie), AWS CLI automatycznie wykorzystuje token odświeżający, aby uzyskać nowy token dostępu, bez potrzeby dodatkowych działań użytkownika. Dzięki temu użytkownik może pracować bez przerw i nie musi co chwilę logować się ponownie, co jest szczególnie przydatne przy długotrwałych operacjach lub skryptach uruchamianych w tle.
  • Wielokrotne wykorzystanie konfiguracji: Konfiguracje sesji SSO mogą być używane w wielu profilach, co ułatwia zarządzanie wieloma kontami i rolami.

Dlaczego warto wybrać sesje SSO zamiast użytkowników IAM?

Korzystanie z sesji SSO (IAM Identity Center) w AWS CLI ma kilka istotnych przewag nad tradycyjnymi użytkownikami IAM:

  • Zwiększone bezpieczeństwo: Uwierzytelnianie poprzez IAM Identity Center eliminuje konieczność zarządzania długoterminowymi kluczami dostępu (Access Keys), które są powszechnie stosowane w przypadku użytkowników IAM. W przypadku sesji SSO poświadczenia są krótkoterminowe i automatycznie odnawiane, co znacząco zmniejsza ryzyko ich wycieku lub nadużycia.
  • Centralne zarządzanie dostępem: IAM Identity Center pozwala na centralne zarządzanie uprawnieniami użytkowników poprzez integrację z istniejącymi dostawcami tożsamości (IdP) takimi jak Microsoft Azure AD lub stworzenie własnej bazy użytkowników (ja wybrałem tę opcję). Dzięki temu organizacje mogą łatwo kontrolować dostęp do wielu kont AWS z jednego miejsca, co ułatwia audyt i zgodność z politykami bezpieczeństwa.
  • Jedno logowanie, wiele kont: Dzięki sesjom SSO użytkownik może uzyskać dostęp do wszystkich kont w organizacji AWS Organizations, do których nadano mu dostęp, używając jednego zestawu poświadczeń. Oznacza to, że użytkownik loguje się tylko raz, aby uzyskać dostęp do wielu kont AWS, bez potrzeby tworzenia osobnych użytkowników IAM na każdym koncie lub tworzenia wielu ról, które trzeba przypisywać do poszczególnych użytkowników. Upraszcza to zarządzanie tożsamościami oraz zwiększa wygodę użytkowników, eliminując konieczność pamiętania wielu haseł.

Konfiguracja profilu przy użyciu kreatora aws configure sso

Najprostszym sposobem konfiguracji profilu SSO z wykorzystaniem sesji SSO jest użycie kreatora aws configure sso. Polecenie to przeprowadza użytkownika przez proces konfiguracji, w tym:

  1. Utworzenie nazwy sesji np. myorg
  2. Podanie adresu URL początkowego IAM Identity Center. np. https://myorg.awsapps.com/start
  3. Wskazanie regionu AWS, w którym znajduje się katalog IAM Identity Center.
  4. Określenie zakresu rejestracji (opcjonalnie).
  5. A następnie pozwala wybrać z listy rozwijanej (tak w konsoli tekstowej) docelowe konto dla którego chcemy skonfigurować dostęp (szary obszar na obrazku poniżej).

Po przejściu całego procesu, w pliku ~/.aws/config będziemy mieli nowy wpis zgodny z poniższą strukturą. Zwróć uwagę, że profil odwołuje się do sesji.

1
2
3
4
5
6
7
8
9
[profile my-new-profile]
sso-session = myorg
sso-account-id = 123456789012
sso-role-name = AdministratorAccess

[sso-session myorg]
sso-start-url = https://myorg.awsapps.com/start
sso-region = us-east-1
sso-registration-scopes = sso:account:access

W praktyce nowy sposób konfiguracji różni się od starego, tym, że sso-session może być użyte przez wiele profili. Po staremu wszystko było definiowane razem i trzeba było duplikować informacje między profilami w tej samej organizacji.

Uprzednio wyglądało to tak:

1
2
3
4
5
6
7
; old config, don't use it
[profile my-old-profile]
sso_start_url = https://myorg.awsapps.com/start
sso_region = us-east-1
sso_account_id = 123456789012
sso_role_name = AdministratorAccess
credential_process = aws-sso-util credential-process --profile my-old-profile

Logowanie i korzystanie z profilu SSO

Po skonfigurowaniu profilu SSO użytkownik może zalogować się za pomocą polecenia aws sso login. Polecenie to otworzy domyślną przeglądarkę, umożliwiając uwierzytelnienie. Po zalogowaniu poświadczenia są buforowane, co pozwala AWS CLI na bezpieczne pobieranie poświadczeń AWS dla określonej roli IAM.

Przykład użycia profilu SSO: aws s3 ls --profile nazwa_profilu_sso

Oczywiście, jeśli używasz zmiennych środowiskowych, to nadal możesz ustawić taki profil jako domyślny.

1
export AWS_PROFILE=nazwa_profilu_sso

Ja w taki sposób działam korzystając z narzędzia direnv, dzięki czemu w różnych katalogach mam ustawione inne profile.

Konfiguracja kolejnych profili SSO

Być może zwróciłeś uwagę, na screenshocie z konsoli, mam do wyboru aż 9 kont AWS. Aby skonfigurować profil dla następnego, znów wywołuję polecenie aws configure sso.

Następnie podaję nazwę uprzednio stworzonej sesji sso. To spowoduje, że znów będę mógł wybrać kolejne konto z listy wyboru bez potrzeby podawania URL do SSO oraz innych danych sesji. Dzięki czemu nie trzeba ręcznie edytować pliku i kopiować numerów kont AWS z konsoli webowej do pliku konfiguracyjnego.

Wylogowanie z sesji SSO

Po zakończeniu korzystania z profilu SSO użytkownik może wylogować się przy użyciu polecenia aws sso logout. Spowoduje to usunięcie zapisanych w pamięci podręcznej poświadczeń.

Moje doświadczenia z IAM Identity Center

We własnej organizacji AWS zdecydowałem się na włączenie IAM Identity Center właśnie po to, aby korzystać z sesji SSO, zamiast użytkowników IAM ze statycznymi kluczami dostępowymi. Przyznam, że przez wiele lat, z powodu wygody i przyzwyczajenia, nie rotowałem regularnie kluczy dostępowych 😱 (patrz obrazek poniżej). Jednak obawy związane z bezpieczeństwem skłoniły mnie do zmiany podejścia. Nowa metoda uwierzytelniania poprzez sesje SSO jest znacznie bezpieczniejsza, eliminując ryzyko związane z długoterminowymi kluczami dostępu. Dzięki temu mogę spać spokojniej, wiedząc, że dostęp do moich kont AWS jest lepiej chroniony.

Stopniowe przechodzenie na SSO i tymczasowa dezaktywacja kluczy IAM

Przechodząc z użytkowników IAM ze statycznymi kluczami dostępowymi na sesje SSO, możesz tymczasowo dezaktywować swoje klucze dostępu (Access Key i Secret Access Key) przypisane do użytkownika IAM. Dezaktywacja kluczy uniemożliwia ich użycie do wykonywania operacji w AWS, ale pozwala na późniejszą reaktywację bez konieczności tworzenia nowych kluczy. Takie podejście daje elastyczność podczas migracji — możesz skonfigurować sesje SSO na swoim komputerze, wyłączając jednocześnie klucze IAM jako środek bezpieczeństwa. W razie potrzeby możesz łatwo powrócić do tradycyjnych kluczy, aktywując je jednym kliknięciem w konsoli AWS. Dzięki temu proces migracji na SSO staje się bezpieczniejszy i mniej ryzykowny, umożliwiając szybki awaryjny powrót do starej konfiguracji, jeśli zajdzie taka potrzeba.

CloudPouch obsługuje nową konfigurację profili SSO

CloudPouch to aplikacja do przeglądania kosztów i automatycznej identyfikacji oszczędności na kontach AWS. Chciałbym poinformować, że od ostatniej wersji 1.36.0 wprowadziłem obsługę nowych profili SSO, dzięki czemu jest ona 100% kompatybilna z konfiguracją ustawioną przez aws configure sso.

Podsumowanie

Sesje SSO upraszczają konfigurację i zarządzanie profilami w AWS CLI. Użytkownicy mogą skorzystać z kreatora aws configure sso, aby szybko i łatwo skonfigurować sesje SSO. Dzięki temu proces zarządzania dostępem do zasobów AWS staje się bardziej efektywny, bezpieczny i przyjazny użytkownikowi.




Cześć

Nazywam się Paweł Zubkiewicz i cieszę się, że tu jesteś!
Od ponad 18 lat profesjonalnie tworzę oprogramowanie, a od 2016 roku pasjonuje się Serverless.
Tą stronę stworzyłem z myślą o Tobie i o nas wszystkich, którzy uważają, że trend serverless trwale zmieni sposób tworzenia oprogramowania.
Więcej o tej stronie...

Kategorie

Pobierz bezpłatny PDF

Poradnik 12 Rzeczy o Serverless

Wybrane artykuły