Jak używać zgody AWS IAM PASSRole

Jak używać zgody AWS IAM PASSRole
W AWS rola IAM to tożsamość AWS jak użytkownik IAM. AWS IAM Service to bardzo skomplikowana usługa, która, jeśli nie jest mądrze skonfigurowana, może prowadzić do potencjalnych problemów bezpieczeństwa. Są one dołączone zasadami decydującymi o tym, co ta tożsamość może zrobić, a nie wolno robić. Nie jest przywiązany do jednej osoby, ale może być przyjęty przez każdy, kto tego wymaga. Zamiast długoterminowych poświadczeń (hasło lub klucze dostępu) jak użytkownik IAM, rola IAM ma tymczasowe poświadczenia bezpieczeństwa. Kiedy użytkownik, aplikacja lub usługa potrzebuje dostępu do zasobów AWS, dla których nie ma uprawnień, używają/przyjmują konkretną rolę w tym celu. Następnie do tego zadania wykorzystywane są tymczasowe poświadczenia bezpieczeństwa.

Co obejmiemy?

W tym przewodniku zobaczymy, jak użyć zgody „IAM PassRole”. Jako konkretny przykład zobaczymy, jak połączyć instancję EC2 z wiadrem S3 za pomocą zgody PASSROLE.

Ważne terminy i koncepcje

Rola usług AWS: Jest to rola przyjęta przez usługę, aby mogła wykonywać zadania w imieniu użytkownika lub posiadacza konta.

Rola usługi AWS dla instancji EC2: Jest to rola przyjęta przez aplikację działającą w instancji Amazon EC2 w celu wykonywania zadań na koncie użytkownika, które są dozwolone przez tę rolę.

Rola powiązana z usługą AWS: Jest to rola, która jest wstępnie zdefiniowana i bezpośrednio dołączona do usługi AWS, takiej jak rola RDS usługi dla uruchomienia RDS DB.

Korzystanie z zgody PASSRole na podłączenie instancji EC2 z S3

Wiele usług AWS potrzebuje roli w konfiguracji, a ta rola jest przekazywana/administrowana przez użytkownika. W ten sposób usługi zakładają/przyjmują rolę i wykonują zadania w imieniu użytkownika. W przypadku większości usług rola musi zostać przekazana raz podczas konfigurowania tej usługi. Użytkownik wymaga uprawnień do przekazania roli do usługi AWS. To dobra rzecz z punktu widzenia bezpieczeństwa, ponieważ administratorzy mogą kontrolować, które użytkownicy mogą przekazać rolę do usługi. Zezwolenie „PassRole” jest przyznawane przez użytkownika dla jego użytkownika, roli lub grupy IAM w celu przekazania roli usługi AWS.

Aby opracować poprzednią koncepcję, rozważ przypadek, gdy aplikacja działająca w instancji EC2 wymaga dostępu do wiadra S3. W tym celu możemy dołączyć rolę IAM w tym przypadku, aby ta aplikacja uzyskała zgodę S3 zdefiniowaną w roli. Ta aplikacja będzie wymagała tymczasowych poświadczeń do celów uwierzytelniania i autoryzacji. EC2 otrzymuje tymczasowe poświadczenia bezpieczeństwa, gdy rola kojarzy się z instancją uruchamiającą naszą aplikację. Te poświadczenia są następnie udostępniane naszemu aplikacji w celu uzyskania dostępu do S3.

Aby przyznać użytkownikowi IAM możliwość przekazania roli usługi EC2 w momencie uruchomienia instancji, potrzebujemy trzech rzeczy:

  1. Polityka uprawnień IAM dla roli, która decyduje o zakresie roli.
  2. Polityka zaufania związana z rolą, która pozwala EC2 przyjąć rolę i wykorzystać uprawnienia zdefiniowane w roli.
  3. Polityka uprawnień IAM dla użytkownika IAM, który wymienia role, które może przejść.

Zróbmy to w bardziej pragmatyczny sposób. Mamy użytkownika IAM o ograniczonym pozwoleniu. Następnie załączamy zasady wbudowane, aby uruchomić instancje EC2 i pozwolenie na przekazanie roli IAM do usługi. Następnie tworzymy rolę dostępu S3; Nazwijmy to „S3Access”. I dołącz do tego politykę IAM. W tej roli zezwalamy jedynie na odczyt danych S3 za pomocą zasady zarządzanej AWS „Amazons3ReadonlyAccess”.

Kroki, aby stworzyć rolę

Krok 1. Z konsoli IAM administratora (root) kliknij „Rola”, a następnie wybierz „Utwórz rolę”.

Krok 2. Na stronie „Wybierz encji zaufanej” wybierz „Usługę AWS” w ramach „typu encji zaufanej”.

Krok 3. W „Case użycia” wybierz przycisk opcji odpowiadający „EC2” dla „Przypadki użycia innych usług AWS”:

Krok 4. Na następnej stronie przypisz zasadę „Amazons3ReadOnlyAccess”:

Krok 5. Podaj nazwę swojej roli (w naszym przypadku „S3Access”). Dodaj opis tej roli. Poniższa polityka zaufania jest tworzona automatycznie za pomocą tej roli:


„Wersja”: „2012-10-17”,
"Oświadczenie": [

„Efekt”: „Pozwól”,
"Działanie": [
„STS: Zakład”
],
"Główny":
"Praca": [
„EC2.Amazonaws.com "
]


]

Krok 6. Kliknij „Utwórz rolę”, aby stworzyć rolę:

Polityka IAM dla użytkownika

Niniejsza polityka zapewnia pełne uprawnienia EC2 i pozwolenia na powiązanie roli „S3Access” z instancją.

Krok 1. Z konsoli IAM kliknij zasady, a następnie „Utwórz zasady”.

Krok 2. Na nowej stronie wybierz kartę JSON i wklej następujący kod:


„Wersja”: „2012-10-17”,
"Oświadczenie": [
„Efekt”: „Pozwól”,
„Action”: [„EC2:*”],
"Ratunek":"*"
,

„Efekt”: „Pozwól”,
„Action”: „IAM: PASSROLE”,
„Zasób”: „ARN: AWS: IAM :: Account_ID: Rola/S3Access”
]

Wymień pogrubiony tekst „ID konta”Z identyfikatorem konta użytkownika.

Krok 3. (Opcjonalnie) Podaj tagi do swojej polityki.

Krok 4. Umieść odpowiednią nazwę dla zasad (w naszym przypadku „IAM-User-Policy”) i kliknij przycisk „Utwórz zasady” i załącz tę zasadę do użytkownika IAM.

Dołączanie roli „S3Access” do instancji EC2

Teraz przywiązujemy tę rolę do naszego instancji. Wybierz swoją instancję z konsoli EC2 i przejdź do „Action> Security> Modyfikuj rolę IAM”. Na nowej stronie wybierz rolę „S3Access” z menu rozwijanego i zapisz ją.

Weryfikacja konfiguracji

Teraz sprawdzimy, czy nasza instancja EC2 jest w stanie uzyskać dostęp do naszego wiadra S3 utworzonego przez administratora. Zaloguj się do instancji EC2 i zainstaluj aplikację AWS CLI. Teraz uruchom następujące polecenie w tej instancji EC2:

$ AWS S3 LS

Ponownie uruchom poprzednie polecenie z konta IAM skonfigurowane na komputerze lokalnym. Zauważysz, że polecenie jest pomyślnie wykonywane w instancji EC2, ale na komputerze lokalnym otrzymaliśmy błąd „Odmówionego dostępu”:

Błąd jest oczywisty, ponieważ udzieliliśmy jedynie zgody S3 dostępu do instancji EC2, ale nie użytkownikowi IAM i jakiejkolwiek innej usłudze AWS. Kolejną ważną rzeczą, na którą należy zwrócić uwagę, jest to, że nie udało nam się publicznie dostępne wiadro i jego obiekty.

Wniosek

W tym przewodniku pokazaliśmy, jak używać zgody PassRole w AWS. Udało nam się połączyć EC2 z S3. Jest to bardzo ważna koncepcja, jeśli zależy Ci na przyznaniu najmniejszych przywilejów użytkownikom IAM.