V roce 2011 Amazon oznámila dostupnost podpory AWS Identity & Access Management (IAM) pro CloudFront. IAM byla spuštěna v roce 2010 a zahrnovala podporu S3. Aplikace AWS Identity & Access Management (IAM) umožňuje mít více uživatelů v rámci účtu AWS. Pokud jste použili službu Amazon Web Services (AWS), víte, že jediný způsob, jak spravovat obsah v AWS, je poskytnutí vašeho uživatelského jména a hesla nebo přístupových klíčů. To je opravdový bezpečnostní problém pro většinu z nás. IAM eliminuje potřebu sdílení hesel a přístupových klíčů.
Neustálé změny našeho hlavního hesla AWS nebo vytváření nových klíčů je jen špinavé řešení, kdy zaměstnanec opustí náš tým. Systém AWS Identity & Access Management (IAM) byl dobrý začátek umožňující jednotlivým uživatelským účtům s jednotlivými klíči. Jsme však uživatelé S3 / CloudFront, takže jsme sledovali, že CloudFront bude přidán do IAM, což se konečně stalo.
Našel jsem dokumentaci o této službě trochu rozptýlená. Existuje několik produktů třetích stran, které nabízejí řadu podpory pro správu identit a přístupu (IAM). Ale vývojáři jsou obvykle šetrní, takže jsem hledal volné řešení pro řízení IAM s naší službou Amazon S3.
Tento článek prochází procesem nastavení rozhraní rozhraní příkazového řádku, které podporuje protokol IAM a nastavení skupiny / uživatele s přístupem S3. Před tím, než začnete s konfigurováním správy identit a přístupu (IAM), musíte mít účet Amazon AWS S3. Můj článek, pomocí služby Amazon Simple Storage (S3), vás provede procesem nastavení účtu AWS S3.
Zde jsou kroky týkající se nastavení a implementace uživatele v IAM. To je napsáno pro systém Windows, ale můžete ji vyladit pro použití v systémech Linux, UNIX a / nebo Mac OSX.
- Instalace a konfigurace rozhraní příkazového řádku (CLI)
- Vytvořte skupinu
- Uveďte skupinový přístup do S3 Bucket a CloudFront
- Vytvořit uživatele a přidat do skupiny
- Vytvořit profil přihlášení a vytvořit klíče
- Přístup ke zkoušce
Instalace a konfigurace rozhraní příkazového řádku (CLI)
IAM Command Line Toolkit je program Java dostupný v nástrojích vývojářů AWS společnosti Amazon. Tento nástroj umožňuje spouštět příkazy IAM API z shellu (DOS for Windows).
- Musíte mít Java 1.6 nebo vyšší. Nejnovější verzi si můžete stáhnout z webu Java.com. Chcete-li zjistit, která verze je nainstalována ve vašem systému Windows, otevřete příkazový řádek a zadejte příkaz java -version. To předpokládá, že java.exe je ve vaší Cesta.
- Stáhněte si sadu nástrojů IAM CLI a rozbalte někde na místní jednotce.
- V kořenovém seznamu nástrojů CLI jsou 2 soubory, které je třeba aktualizovat.
- aws-credential.template: Tento soubor obsahuje vaše pověření AWS. Přidejte své AWSAccessKeyId a AWSSecretKey, uložte a zavřete soubor.
- client-config.template: Tento soubor potřebujete pouze v případě, že potřebujete proxy server. Odstraňte # znaky a aktualizujte ClientProxyHost, ClientProxyPort, ClientProxyUsername a ClientProxyPassword. Uložte a zavřete soubor.
- Dalším krokem je přidání proměnných prostředí. Přejděte na Ovládací panely | Vlastnosti systému Pokročilé nastavení systému Proměnné prostředí. Přidejte následující proměnné:
- AWS_IAM_HOME: Nastavte tuto proměnnou na adresář, kde jste rozbalili sadu nástrojů CLI. Pokud používáte Windows a rozbalíte ji v kořenovém adresáři jednotky C, měla by být proměnná C: IAMCli-1.2.0.
- JAVA_HOME: Nastavte tuto proměnnou na adresář, kde je nainstalována Java. Toto by bylo umístění souboru java.exe. V běžné instalaci systému Windows 7 v jazyce Java by to bylo něco jako C: Program Files (x86) Java jre6.
- AWS_CREDENTIAL_FILE: Nastavte tuto proměnnou na cestu a název souboru aws-credential.template, který jste aktualizovali výše. Pokud používáte Windows a rozbalíte ji v kořenovém adresáři jednotky C, měla by být proměnná C: IAMCli-1.2.0 aws-credential.template.
- CLIENT_CONFIG_FILE: Tuto proměnnou prostředí potřebujete pouze pokud potřebujete proxy server. Pokud používáte systém Windows a rozbalíte ji v kořenovém adresáři jednotky C, měla by být proměnná C: IAMCli-1.2.0 client-config.template. Tuto proměnnou nepřidávejte, pokud ji nepotřebujete.
- Otestujte instalaci tak, že přejdete do příkazového řádku a zadáte seznam uživatelů iam-userbypath. Dokud nedostanete chybu, měli byste být dobré jít.
Všechny příkazy IAM lze spustit z příkazového řádku. Všechny příkazy začínají "iam-".
Vytvořte skupinu
Existuje maximálně 100 skupin, které lze vytvořit pro každý účet AWS. Zatímco můžete nastavit oprávnění v IAM na úrovni uživatelů, použití skupin by bylo nejlepší praxí. Zde je postup pro vytvoření skupiny v IAM.
- Syntaxe pro vytváření skupiny je iam-groupcreate -g GROUPNAME -p PATH -v, kde -p a -v jsou volby. Úplná dokumentace na rozhraní příkazového řádku je k dispozici v dokumentech AWS.
- Pokud byste chtěli vytvořit skupinu s názvem "awesomeusers", měli byste vstoupit, iam-groupcreate-g awesomeusers na příkazovém řádku.
- Můžete zkontrolovat, zda byla skupina vytvořena správně zadáním příkazu iam-grouplistbypath v příkazovém řádku. Pokud jste tuto skupinu vytvořili pouze, výstup by byl něco jako "arn: aws: iam: 123456789012: group / awesomeusers", kde číslo je vaše číslo účtu AWS.
Uveďte skupinový přístup do S3 Bucket a CloudFront
Politika řídí, co může vaše skupina dělat v S3 nebo CloudFront. Ve výchozím nastavení by skupina neměla přístup k cokoliv v AWS.Zjistil jsem, že dokumentace o politikách je v pořádku, ale při vytváření hromadných politik jsem udělal trochu pokusů a omylů, abych věci udělal tak, jak jsem chtěl, aby fungovali.
Máte několik možností pro vytváření zásad. Jednou možností je, že je můžete zadat přímo do příkazového řádku. Vzhledem k tomu, že byste mohli vytvářet zásady a vylepšovat je, zdálo se mi snadnější přidat zásady do textového souboru a potom načíst textový soubor jako parametr příkazem iam-groupuploadpolicy. Zde je postup pomocí textového souboru a nahrávání do IAM.
- Použijte něco podobného programu Notepad a zadejte následující text a uložte soubor:
- {
- "Prohlášení":{
- "Efekt": "Povolit",
- "Akce": "s3: *",
- "Zdroj":
- "arn: aws: s3 ::: BUCKETNAME",
- "arn: aws: s3 ::: BUCKETNAME / *"
- },
- {
- "Efekt": "Povolit",
- "Akce": "s3: ListAllMyBuckets",
- "Zdroj": "arn: aws: s3 ::: *"
- },
- {
- "Efekt": "Povolit",
- "Akce": "cloudfront: *",
- "Zdroj": "*"
- }
- }
- K těmto zásadám patří 3 sekce. Efekt slouží k povolení nebo odmítnutí určitého typu přístupu. Akce jsou specifické věci, které skupina může dělat. Prostředek by byl použit k poskytnutí přístupu k jednotlivým vědram.
- Akce můžete omezit jednotlivě. V tomto příkladu "Akce": "s3: GetObject", "s3: ListBucket", "s3: GetObjectVersion" by skupina mohla obsahovat obsah košíku a stahovat objekty.
- První část "Umožňuje" skupině provádět všechny akce S3 pro bucket "BUCKETNAME".
- Druhá část "Umožňuje" skupině vypsat všechny koše v S3. Potřebujete to tak, abyste mohli skutečně vidět seznam věží, pokud používáte něco jako AWS Console.
- Třetí část poskytuje skupině plný přístup ke službě CloudFront.
Existuje spousta možností, pokud jde o zásady IAM. Amazon má opravdu skvělý nástroj k dispozici nazvaný AWS Policy Generator. Tento nástroj poskytuje grafické uživatelské rozhraní, ve kterém můžete vytvořit své zásady a vygenerovat skutečný kód, který potřebujete provést. Můžete také zkontrolovat část Jazyky zásad přístupu v dokumentaci pomocí online dokumentace AWS Identity and Access Management.
Vytvořit uživatele a přidat do skupiny
Proces vytváření nového uživatele a přidání do skupiny, která mu poskytuje přístup, zahrnuje několik kroků.
- Syntaxe pro vytváření uživatele je iam-usercreate -u USERNAME -p PATH -g SKUPINY … -k -v, kde -p, -g, -k a -v jsou volby. Úplná dokumentace na rozhraní příkazového řádku je k dispozici v dokumentech AWS.
- Pokud byste chtěli vytvořit uživatele "bob", měli byste zadat příkaz iam-usercreate -u bob -g awesomeusers na příkazovém řádku.
- Můžete zkontrolovat, zda byl uživatel vytvořen správně zadáním příkazu iam-grouplistusers -g awesomeusers na příkazovém řádku. Pokud jste vytvořili pouze tohoto uživatele, výstup by byl něco jako "arn: aws: iam :: 123456789012: user / bob", kde číslo je vaše číslo účtu AWS.
Vytvořit profil přihlašování a vytvořit klíče
V tomto okamžiku jste vytvořili uživatele, ale musíte jim poskytnout způsob, jak skutečně přidávat a odstraňovat objekty ze S3. K dispozici jsou 2 možnosti, které uživatelům umožňují přístup k S3 pomocí IAM. Můžete vytvořit profil přihlášení a poskytnout uživatelům heslo. Mohou použít své pověření k přihlášení do konzoly AWS Amazon. Druhou možností je poskytnout uživatelům přístupový klíč a tajný klíč. Mohou používat tyto klávesy v nástrojích třetích stran, jako je S3 Fox, CloudBerry S3 Explorer nebo S3 Browser.
Vytvořit profil přihlášení
Vytvoření profilu přihlášení pro uživatele S3 jim poskytuje uživatelské jméno a heslo, které se mohou přihlásit k konzole AWS Amazon.
- Syntaxe pro vytvoření přihlašovacího profilu je iam-useraddloginprofile -u USERNAME -p PASSWORD. Úplná dokumentace na rozhraní příkazového řádku je k dispozici v dokumentech AWS.
- Pokud jste chtěli vytvořit přihlašovací profil pro uživatele "bob", zadejte příkaz iam-useraddloginprofile -u bob -p PASSWORD na příkazovém řádku.
- Můžete zkontrolovat, zda byl přihlašovací profil vytvořen správně zadáním příkazu iam-usergetloginprofile -u bob v příkazovém řádku. Pokud jste vytvořili přihlašovací profil pro bob, výstup by byl něco jako "Přihlašovací profil existuje pro uživatele bob".
Vytvořte klíče
Vytvoření AWS tajného přístupového klíče a příslušného ID klíče AWS Access Key umožní uživatelům používat software třetích stran, jaký byl dříve popsán. Mějte na paměti, že jako bezpečnostní opatření můžete tyto klíče získat pouze během procesu přidávání profilu uživatele. Ujistěte se, že zkopírujete a vložíte výstup z příkazového řádku a uložíte do textového souboru. Soubor můžete odeslat uživateli.
- Syntaxe pro přidávání klíčů pro uživatele je iam-useraddkey -u USERNAME. Úplná dokumentace na rozhraní příkazového řádku je k dispozici v dokumentech AWS.
- Pokud jste chtěli vytvořit klíče pro uživatele "bob", zadáte příkaz iam-useraddkey -u bob na příkazový řádek.
- Příkaz vyvede klávesy, které by vypadaly takto:
- AKIACOOB5BQVEXAMPLE
- BvQW1IpqVzRdbwPUirD3pK6L8ngoX4PTEXAMPLE
- Prvním řádkem je ID přístupového klíče a druhý řádek je tajný přístupový klíč. Potřebujete jak pro software třetí strany.
Přístup ke zkoušce
Nyní, když jste vytvořili skupiny / uživatele služby IAM a přístup k skupinám povolili pomocí zásad, musíte otestovat přístup.
Přístup konzoly
Uživatelé mohou používat své uživatelské jméno a heslo pro přihlášení do konzoly AWS. Není to však běžná přihlašovací stránka konzoly, která se používá pro hlavní účet AWS. Existuje speciální adresa URL, kterou můžete použít, který poskytne přihlašovací formulář pouze pro váš účet Amazon AWS. Zde je adresa URL pro přihlášení k S3 pro uživatele IAM.
https://AWS-ACCOUNT-NUMBER.signin.aws.amazon.com/console/s3
AWS-ACCOUNT-NUMBER je vaše běžné číslo účtu AWS. Můžete to získat tím, že se přihlásíte do formuláře pro přihlášení služby Amazon Web Service Sign In. Přihlaste se a klikněte na účet | Aktivita účtu. Vaše číslo účtu je v pravém horním rohu. Ujistěte se, že jste odstranili pomlčky. Adresa URL by vypadala něco jako https://123456789012.signin.aws.amazon.com/console/s3.
Použití přístupových kláves
Můžete stáhnout a nainstalovat všechny nástroje třetích stran, které jsou již zmíněny v tomto článku. Zadejte ID přístupového klíče a tajný přístupový klíč na dokumentaci nástroje třetí strany.
Důrazně doporučuji, abyste vytvořili počáteční uživatele a nechali tohoto uživatele plně otestovat, že mohou dělat vše, co potřebují, v S3. Po ověření jednoho ze svých uživatelů můžete pokračovat v nastavení všech uživatelů S3.