Wprowadzenie do bezpieczeństwa AWS

Bezpieczeństwo AWS dla deweloperów

Rahul Singh

Technical Product Manager

Wymagania wstępne

 

  • Podstawowa wiedza o bezpieczeństwie AWS
  • Znajomość koncepcji przetwarzania w chmurze
  • AWS Security and Cost Management Concepts

 

 

plansza tytułowa kursu AWS Security and Cost Management Concepts

Bezpieczeństwo AWS dla deweloperów

Cele kursu

 

  1. Tożsamość: kto wysyła żądanie
  2. Autoryzacja: do czego ma dostęp
  3. Sekrety i szyfrowanie: ochrona danych
  4. Dowody: co się wydarzyło, później

Cztery ponumerowane pasy ułożone jeden pod drugim, po jednym dla każdego obszaru omawianego w kursie. Pas pierwszy, Tożsamość, oznaczony jako rozdział 1. Pas drugi, Autoryzacja, oznaczony jako rozdział 2. Pas trzeci, Sekrety i szyfrowanie, oznaczony jako rozdziały 2 i 3. Pas czwarty, Dowody, oznaczony jako rozdział 3. Pomarańczowa strzałka po lewej stronie, podpisana ten materiał, wskazuje na pas pierwszy.

Bezpieczeństwo AWS dla deweloperów

Twój kod przechodzi przez pipeline

Przepływ od lewej do prawej. Krok pierwszy: ramka opisana jako twój pipeline, zawierająca trzy etapy: Build, Test, Deploy. Krok drugi: strzałka opisana jako git push prowadząca do niej z ramki opisanej jako ty. Krok trzeci: pomarańczowa plakietka pod pipeline'em, opisana jako własna tożsamość. Strzałka prowadzi dalej od pipeline'u do ramki opisanej jako AWS.

Najpierw jedno pojęcie

  • Pipeline to automatyzacja, która buduje, testuje i wdraża twój kod
  • Uruchamia się po twoim pushu, bez udziału człowieka
Bezpieczeństwo AWS dla deweloperów

Nieudane wdrożenie z błędnego powodu

Czyje uprawnienia są faktycznie sprawdzane przy zmianie kodu?
  1. Wysyłasz zmianę (push)

Krok pierwszy pionowego przepływu. Ramka opisana jako ty, wysyłająca zmianę kodu.

Bezpieczeństwo AWS dla deweloperów

Nieudane wdrożenie z błędnego powodu

Czyje uprawnienia są faktycznie sprawdzane przy zmianie kodu?
  1. Wysyłasz zmianę (push)

  2. Twój pipeline się uruchamia

Pionowy przepływ. Krok pierwszy: ty, wysyłający zmianę kodu. Strzałka prowadzi w dół do kroku drugiego: twój pipeline, który uruchamia wdrożenie.

Bezpieczeństwo AWS dla deweloperów

Nieudane wdrożenie z błędnego powodu

Czyje uprawnienia są faktycznie sprawdzane przy zmianie kodu?
  1. Wysyłasz zmianę (push)

  2. Twój pipeline się uruchamia

  3. Wdrożenie zatrzymuje się: AccessDenied

Pierwszy odruch: „sprawdźmy moje własne uprawnienia".

Pionowy przepływ. Krok pierwszy: ty, wysyłający zmianę kodu. Krok drugi: twój pipeline uruchamia wdrożenie. Krok trzeci: AWS ocenia żądanie i zwraca AccessDenied.

Bezpieczeństwo AWS dla deweloperów

Co się naprawdę wydarzyło

Krok pierwszy przepływu od lewej do prawej. Ramka opisana jako ty, którego udział kończy się tutaj.

  1. Wysyłasz zmianę. Twój udział kończy się tutaj
Bezpieczeństwo AWS dla deweloperów

Co się naprawdę wydarzyło

Przepływ od lewej do prawej. Ramka opisana jako ty, ze strzałką do ramki opisanej jako twój pipeline. Pod pipeline'em widnieje plakietka deploy-role.

  1. Wysyłasz zmianę. Twój udział kończy się tutaj
  2. Pipeline wdraża kod, działając jako rola utworzona przez twój zespół
Bezpieczeństwo AWS dla deweloperów

Co się naprawdę wydarzyło

Przepływ od lewej do prawej: ty, twój pipeline, AWS. Pod pipeline'em widnieje plakietka deploy-role, a przerywana strzałka opisana jako sprawdza prowadzi od AWS z powrotem do tej plakietki, a nie do ciebie.

  1. Wysyłasz zmianę. Twój udział kończy się tutaj
  2. Pipeline wdraża kod, działając jako rola utworzona przez twój zespół
  3. AWS ocenia tę rolę
Bezpieczeństwo AWS dla deweloperów

Aktor i podmiot główny

Aktor

Ten, kto zainicjował działanie.

Tutaj: ty.

Ikona postaci ludzkiej oznaczająca aktora, który inicjuje działanie.

Bezpieczeństwo AWS dla deweloperów

Aktor i podmiot główny

Aktor

Ten, kto zainicjował działanie.

Tutaj: ty.

Podmiot główny

Tożsamość, którą AWS ocenia po otrzymaniu żądania.

Tutaj: rola pipeline'u.

Ikona postaci ludzkiej oznaczająca aktora, który inicjuje działanie.

Ikona oznaczająca podmiot główny.

Bezpieczeństwo AWS dla deweloperów

Aktor i podmiot główny

Aktor

Ten, kto zainicjował działanie.

Tutaj: ty.

Podmiot główny

Tożsamość, którą AWS ocenia po otrzymaniu żądania.

Tutaj: rola pipeline'u.

  • Lambda: rola wykonawcza. ECS: rola zadania. Inna nazwa, ten sam podmiot główny
  • Wyjątek: długoterminowy klucz w twoim terminalu — wtedy podmiotem głównym jest użytkownik IAM

Ikona postaci ludzkiej oznaczająca aktora, który inicjuje działanie.

Ikona pokazująca, że AWS sprawdza podmiot główny, a nie aktora.

Bezpieczeństwo AWS dla deweloperów

To samo wdrożenie, dwie role

Rola A (odpowiednik AdministratorAccess)

  • Odczyt każdego zasobnika
  • Użycie każdego klucza
  • Aktualizacja każdej funkcji

Rola B

  • Odczyt jednego zasobnika
  • Użycie jednego klucza
  • Aktualizacja jednej funkcji

Prefiks: ścieżka przypominająca folder wewnątrz zasobnika

Obraz przedstawiający rolę z pełnym dostępem do sześciu różnych zasad.

Obraz przedstawiający rolę z wąskim dostępem, ograniczonym do jednej zasady.

Bezpieczeństwo AWS dla deweloperów

Promień rażenia

Szeroka rola

W razie przejęcia: sięga do każdego zasobnika, prefiksu i obiektu na koncie.

Wąska rola

W razie przejęcia: sięga tylko do jednego prefiksu w jednym zasobniku. Nic więcej.

Współśrodkowe pierścienie ilustrujące szeroką rolę, która obejmuje każdy element całego konta.

Współśrodkowe pierścienie ilustrujące wąską rolę, która sięga tylko do najbardziej wewnętrznych pierścieni obiektu i prefiksu, pozostawiając resztę nietkniętą.

Bezpieczeństwo AWS dla deweloperów

Zasada najmniejszych uprawnień w praktyce

Rola powinna robić dokładnie to, czego wymaga jej zadanie, i niewiele więcej.

  • Zarządzane przez AWS, jak AmazonS3ReadOnlyAccess: każdy zasobnik. Zarządzane przez klienta: twoje, ograniczone do jednego prefiksu
  • Ogranicz zasięg i czas trwania: tymczasowe dane uwierzytelniające zamiast długoterminowych kluczy
  • AWS zabezpiecza infrastrukturę
  • To, jak szerokie są twoje role, zależy od ciebie i znajduje odzwierciedlenie w twoim repozytorium

Przykład: rola odczytu zasobnika reports-bucket Dwa zezwolenia. Nic więcej.

  • Żadnych uprawnień do IAM, czyli usługi decydującej o tym, kto może co robić

Lista uprawnień roli, w której trzy zbędne uprawnienia są przekreślone na czerwono, a dwa wymagane pozostają zielone.

Bezpieczeństwo AWS dla deweloperów

Czas na praktykę!

Bezpieczeństwo AWS dla deweloperów

Preparing Video For Download...