W 2011 roku firma Amazon ogłosiła dostępność usługi AWS Identity & Access Management (IAM) dla CloudFront. IAM został wydany w 2010 roku i zawierał obsługę S3. AWS Identity & Access Management (IAM) umożliwia posiadanie wielu użytkowników na koncie AWS. Jeśli korzystałeś z usług Amazon Web Services (AWS), wiesz, że jedynym sposobem zarządzania zawartością w AWS było podanie nazwy użytkownika i hasła lub kluczy dostępu. Dla większości z nas stanowi to prawdziwy problem bezpieczeństwa. IAM eliminuje potrzebę udostępniania haseł i kluczy dostępu.
Ciągłe zmienianie naszego głównego hasła AWS lub generowanie nowych kluczy to po prostu nieuporządkowane rozwiązanie, gdy pracownik opuści nasz zespół. AWS Identity & Access Management (IAM) to dobry początek pozwalający na indywidualne konta użytkowników z poszczególnymi kluczami. Jednak jesteśmy użytkownikiem S3 / CloudFront, więc obserwowaliśmy, jak CloudFront zostanie dodany do IAM, co w końcu się wydarzyło.
Uważam, że dokumentacja w tej usłudze jest nieco rozproszona. Istnieje kilka produktów innych firm oferujących zakres wsparcia dla zarządzania tożsamością i dostępem (IAM). Ale programiści są zwykle oszczędni, więc szukałem darmowego rozwiązania do zarządzania IAM z naszą usługą Amazon S3.
W tym artykule omówiono proces konfigurowania interfejsu wiersza poleceń obsługującego IAM i konfigurowania grupy / użytkownika z dostępem S3. Przed rozpoczęciem konfigurowania zarządzania tożsamością i dostępem (IAM) musisz mieć skonfigurowane konto Amazon AWS S3. Mój artykuł, Korzystanie z usługi Amazon Simple Storage Service (S3), przeprowadzi Cię przez proces zakładania konta AWS S3.
Oto kroki związane z konfigurowaniem i wdrażaniem użytkownika w IAM. Jest to napisane dla systemu Windows, ale możesz dostosować go do użytku w systemach Linux, UNIX i / lub Mac OSX.
- Zainstaluj i skonfiguruj interfejs wiersza poleceń (CLI)
- Tworzyć grupę
- Daj grupie dostęp do S3 Bucket i CloudFront
- Utwórz użytkownika i dodaj do grupy
- Utwórz profil logowania i Utwórz klucze
- Dostęp testowy
Zainstaluj i skonfiguruj interfejs wiersza poleceń (CLI)
IAM Command Line Toolkit to program w języku Java dostępny w narzędziach deweloperskich Amazon AWS. Narzędzie pozwala wykonywać polecenia interfejsu IAM API z narzędzia powłoki (DOS dla Windows).
- Musisz uruchomić Java 1.6 lub nowszą wersję. Możesz pobrać najnowszą wersję z witryny Java.com. Aby zobaczyć, która wersja jest zainstalowana w systemie Windows, otwórz wiersz polecenia i wpisz java -version. Zakłada to, że plik java.exe znajduje się w Twojej zmiennej PATH.
- Pobierz zestaw narzędzi IAM CLI i rozpakuj go gdzieś na dysku lokalnym.
- Istnieją 2 pliki w katalogu głównym zestawu narzędzi CLI, które należy zaktualizować.
- aws-credential.template: Ten plik zawiera twoje poświadczenia AWS. Dodaj swój AWSAccessKeyId i swój AWSSecretKey, zapisz i zamknij plik.
- client-config.template: Musisz zaktualizować ten plik, jeśli potrzebujesz serwera proxy. Usuń # znaki i zaktualizuj ClientProxyHost, ClientProxyPort, ClientProxyUsername i ClientProxyPassword. Zapisz i zamknij plik.
- Kolejny krok polega na dodaniu zmiennych środowiskowych. Idź do Panelu sterowania | Właściwości systemu | Zaawansowane ustawienia systemu | Zmienne środowiska. Dodaj następujące zmienne:
- AWS_IAM_HOME: Ustaw tę zmienną na katalog, w którym rozpakowano zestaw narzędzi CLI. Jeśli używasz systemu Windows i rozpakowałeś go w katalogu głównym dysku C, zmienna będzie miała postać C: IAMCli-1.2.0.
- JAVA_HOME: Ustaw tę zmienną na katalog, w którym zainstalowana jest Java. Będzie to lokalizacja pliku java.exe. W normalnej instalacji Windows 7 Java będzie to coś w stylu C: Program Files (x86) Java jre6.
- AWS_CREDENTIAL_FILE: Ustaw tę zmienną na ścieżkę i nazwę pliku aws-credential.template, który został zaktualizowany powyżej. Jeśli używasz systemu Windows i rozpakowałeś go w katalogu głównym dysku C, zmienna będzie miała postać C: IAMCli-1.2.0 aws-credential.template.
- CLIENT_CONFIG_FILE: Trzeba tylko dodać tę zmienną środowiskową, jeśli potrzebujesz serwera proxy. Jeśli używasz systemu Windows i rozpakowałeś go w katalogu głównym dysku C, zmienna będzie miała postać C: IAMCli-1.2.0 client-config.template. Nie dodawaj tej zmiennej, chyba że jej potrzebujesz.
- Przetestuj instalację, przechodząc do wiersza polecenia i wprowadzając ścieżkę iam-userlist. Dopóki nie otrzymasz błędu, powinieneś być dobry.
Wszystkie polecenia IAM można uruchamiać z poziomu wiersza polecenia. Wszystkie polecenia zaczynają się od "iam-".
Tworzyć grupę
Dla każdego konta AWS można utworzyć maksymalnie 100 grup. Chociaż możesz ustawić uprawnienia w IAM na poziomie użytkownika, najlepiej byłoby używać grup. Oto proces tworzenia grupy w IAM.
- Składnia do utworzenia grupy to iam-groupcreate -g GROUPNAME -p PATH -v, gdzie -p i -v są opcjami. Pełna dokumentacja interfejsu wiersza poleceń jest dostępna w dokumentach AWS.
- Jeśli chcesz utworzyć grupę o nazwie "awesomeusers", wpisz "iam-groupcreate -g awesomeusers" w wierszu polecenia.
- Możesz sprawdzić, czy grupa została utworzona poprawnie, wprowadzając ścieżkę iam-grouplistby w wierszu polecenia. Jeśli utworzono tylko tę grupę, wynik byłby podobny do "arn: aws: iam :: 123456789012: group / awesomeusers", gdzie numer jest numerem konta AWS.
Daj grupie dostęp do S3 Bucket i CloudFront
Zasady kontrolują, co twoja grupa może zrobić w S3 lub CloudFront. Domyślnie twoja grupa nie miałaby dostępu do niczego w AWS.Uważam, że dokumentacja dotycząca zasad jest w porządku, ale przy tworzeniu kilku zasad, zrobiłem trochę prób i błędów, aby wszystko działało tak, jak chciałem, żeby działały.
Masz kilka opcji tworzenia zasad. Jedną z opcji jest wprowadzenie ich bezpośrednio do wiersza polecenia. Ponieważ możesz tworzyć politykę i ją ulepszać, dla mnie łatwiej było dodać politykę do pliku tekstowego, a następnie przesłać plik tekstowy jako parametr za pomocą polecenia iam-groupuploadpolicy. Oto proces korzystania z pliku tekstowego i przesyłania do IAM.
- Użyj czegoś takiego jak Notatnik i wprowadź następujący tekst i zapisz plik:
- {
- "Komunikat":{
- "Efekt": "Zezwól",
- "Akcja": "s3: *",
- "Ratunek":
- "arn: aws: s3 ::: BUCKETNAME",
- "arn: aws: s3 ::: BUCKETNAME / *"
- },
- {
- "Efekt": "Zezwól",
- "Akcja": "s3: ListAllMyBuckets",
- "Zasób": "arn: aws: s3 ::: *"
- },
- {
- "Efekt": "Zezwól",
- "Akcja": "cloudfront: *",
- "Ratunek":"*"
- }
- }
- Istnieją 3 sekcje dla tej polityki. Efekt służy do zezwolenia lub odmowy pewnego rodzaju dostępu. Akcja to konkretne rzeczy, które grupa może zrobić. Zasoby zostaną wykorzystane w celu uzyskania dostępu do poszczególnych wiader.
- Możesz indywidualnie ograniczyć działania. W tym przykładzie "Akcja": "s3: GetObject", "s3: ListBucket", "s3: GetObjectVersion", grupa będzie mogła wyświetlić zawartość wiadra i pobrać obiekty.
- Pierwsza sekcja "Zezwala" grupie na wykonanie wszystkich akcji S3 dla wiadra "BUCKETNAME".
- Druga sekcja "Pozwala" grupie na wylistowanie wszystkich wiader w S3. Potrzebujesz tego, aby rzeczywiście wyświetlić listę segmentów, jeśli używasz czegoś podobnego do konsoli AWS.
- Trzecia sekcja daje grupie pełny dostęp do CloudFront.
Istnieje wiele opcji dotyczących zasad IAM. Amazon ma naprawdę fajne narzędzie dostępne pod nazwą Generator polis AWS. To narzędzie udostępnia graficzny interfejs użytkownika, w którym można tworzyć zasady i generować rzeczywisty kod potrzebny do wdrożenia zasad. Możesz również zapoznać się z sekcją Polityki dostępu w dokumentacji online AWS Identity and Access Management.
Utwórz użytkownika i dodaj do grupy
Proces tworzenia nowego użytkownika i dodawania go do grupy w celu zapewnienia mu dostępu wymaga kilku kroków.
- Składnia do tworzenia użytkownika to iam-usercreate -u USERNAME -p PATH -g GROUPS … -k -v gdzie -p, -g, -k i -v są opcjami. Pełna dokumentacja interfejsu wiersza poleceń jest dostępna w dokumentach AWS.
- Jeśli chcesz utworzyć użytkownika "Bob", wpisz "iam-usercreate -u bob -g awesomeusers" w wierszu polecenia.
- Możesz sprawdzić, czy użytkownik został utworzony poprawnie, wprowadzając iam-grouplistusers -g awesomeusers w wierszu polecenia. Jeśli utworzono tylko tego użytkownika, wynik będzie podobny do "arn: aws: iam :: 123456789012: user / bob", gdzie numer jest numerem konta AWS.
Utwórz profil logowania i Utwórz klucze
W tym momencie utworzyłeś użytkownika, ale musisz zapewnić mu sposób dodawania i usuwania obiektów z S3. Dostępne są dwie opcje zapewnienia użytkownikom dostępu do S3 przy użyciu IAM. Możesz utworzyć profil logowania i podać użytkownikom hasło. Mogą używać swoich poświadczeń, aby zalogować się do konsoli Amazon AWS Console. Drugą opcją jest przyznanie użytkownikom klucza dostępu i tajnego klucza. Mogą używać tych kluczy w narzędziach innych firm, takich jak S3 Fox, CloudBerry S3 Explorer lub S3 Browser.
Utwórz profil logowania
Utworzenie profilu logowania dla użytkowników S3 zapewnia im nazwę użytkownika i hasło, których mogą używać do logowania do konsoli Amazon AWS Console.
- Składnia tworzenia profilu logowania to iam-useraddloginprofile -u USERNAME -p PASSWORD. Pełna dokumentacja interfejsu wiersza poleceń jest dostępna w dokumentach AWS.
- Jeśli chcesz utworzyć profil logowania dla użytkownika "bob", wpisz, iam-useraddloginprofile -u bob -p PASSWORD w wierszu polecenia.
- Możesz sprawdzić, czy profil logowania został utworzony poprawnie, wpisując iam-usergetloginprofile -u bob w wierszu polecenia. Jeśli utworzyłeś profil logowania dla boba, wynik będzie wyglądał jak "Profil logowania istnieje dla użytkownika Bobka".
Utwórz klucze
Utworzenie klucza tajnego dostępu AWS i odpowiedniego identyfikatora klucza dostępu AWS umożliwi użytkownikom korzystanie z oprogramowania innych firm, takiego jak te wcześniej wymienione. Należy pamiętać, że jako środek bezpieczeństwa można uzyskać tylko te klucze podczas procesu dodawania profilu użytkownika. Upewnij się, że kopiujesz i wklejasz dane wyjściowe z wiersza poleceń i zapisujesz w pliku tekstowym. Możesz wysłać plik do swojego użytkownika.
- Składnia dla dodawania kluczy dla użytkownika to iam-useraddkey -u USERNAME. Pełna dokumentacja interfejsu wiersza poleceń jest dostępna w dokumentach AWS.
- Jeśli chcesz utworzyć klucze dla użytkownika "bob", wpisz polecenie iam-useraddkey -u bob w wierszu polecenia.
- Polecenie wypisze klucze, które wyglądałyby tak:
- AKIACOOB5BQVEXAMPLE
- BvQW1IpqVzRdbwPUirD3pK6L8ngoX4PTEXAMPLE
- Pierwsza linia to Identyfikator klucza dostępu, a druga to Tajny klucz dostępu. Potrzebujesz obu programów firm trzecich.
Dostęp testowy
Po utworzeniu grup i użytkowników IAM i nadaniu dostępu do grup za pomocą zasad musisz przetestować dostęp.
Dostęp do konsoli
Twoi użytkownicy mogą używać swojej nazwy użytkownika i hasła, aby zalogować się do konsoli AWS. Jednak nie jest to zwykła strona logowania do konsoli, która jest używana dla głównego konta AWS. Istnieje specjalny adres URL, z którego można uzyskać formularz logowania do konta Amazon AWS. Oto adres URL logowania do S3 dla użytkowników IAM.
https://AWS-ACCOUNT-NUMBER.signin.aws.amazon.com/console/s3
Numer AWS-ACCOUNT-NUMBER to Twój zwykły numer konta AWS. Możesz to uzyskać, logując się do formularza logowania do usługi Amazon Web Service. Zaloguj się i kliknij Konto | Aktywność na koncie. Twój numer konta znajduje się w prawym górnym rogu. Upewnij się, że zostały usunięte kreski. Adres URL będzie wyglądać jak https://123456789012.signin.aws.amazon.com/console/s3.
Używanie kluczy dostępu
Możesz pobrać i zainstalować dowolne z narzędzi innych firm wymienionych w tym artykule. Wprowadź identyfikator klucza dostępu i klucz tajnego dostępu na dokumentację narzędzia innej firmy.
Zdecydowanie zalecamy utworzenie początkowego użytkownika i sprawdzenie, czy użytkownik może wykonać wszystkie czynności w S3. Po zweryfikowaniu jednego z użytkowników możesz kontynuować konfigurowanie wszystkich użytkowników S3.