Deo 1 od 3
U 2011. godini Amazon je objavio dostupnost podrške AWS Identity & Access Management (IAM) za CloudFront. IAM je pokrenut 2010. godine i uključio podršku S3. AWS Identity & Access Management (IAM) omogućava vam da imate više korisnika unutar AWS naloga. Ako ste koristili Amazon Web Services (AWS), svjesni ste da je jedini način za upravljanje sadržajem u AWS-u uključivanje dati svoje korisničko ime i lozinku ili pristupne ključeve.
Ovo je prava sigurnost za većinu nas. IAM eliminiše potrebu za deljenjem lozinki i pristupnih ključeva.
Stalno menjanje naše glavne AWS lozinke ili stvaranje novih ključeva je samo neuredno rešenje kada član osoblja napusti naš tim. AWS Identity & Access Management (IAM) je dobar početak koji omogućava pojedinačne korisničke naloge sa pojedinačnim ključevima. Međutim, mi smo korisnik S3 / CloudFronta, tako da smo gledali kako CloudFront bude dodan u IAM koji se konačno dogodio.
Našao sam da je dokumentacija o ovoj službi malo razbacana. Postoji nekoliko proizvoda treće strane koji nude niz podrške za upravljanje identitetom i pristupom (IAM). Ali programeri su obično štedljivi, pa sam tražio besplatno rješenje za upravljanje IAM-om s našom uslugom Amazon S3.
Ovaj članak prolazi kroz proces postavljanja interfejsa komandne linije koja podržava IAM i postavlja grupu / korisnika s pristupom S3. Morate imati Amazon AWS S3 podešavanje naloga pre nego što počnete da konfigurišete Identity & Access Management (IAM).
Moj članak, Korišćenje Amazon Simple Storage Service-a (S3), provjeriće vas kroz proces postavljanja AWS S3 naloga.
Evo koraka u postavljanju i implementaciji korisnika u IAM. Ovo je napisano za Windows, ali možete ga podesiti za korištenje na Linuxu, UNIX i / ili Mac OSX-u.
- Instalirajte i konfigurirajte Interface Command Line (CLI)
- Kreirajte grupu
- Dajte grupni pristup S3 Bucket i CloudFront
- Kreiraj korisnika i Dodaj u grupu
- Kreirajte profil za profil i kreirajte ključeve
- Test pristup
Instalirajte i konfigurirajte Interface Command Line (CLI)
IAM Command Line Toolkit je program Java dostupan u Amazon AWS Developers Tools. Alat vam omogućava da izvršavate IAM API komande iz uslužnog programa (DOS za Windows).
- Morate da koristite Java 1.6 ili noviju verziju. Možete preuzeti najnoviju verziju sa Java.com-a. Da biste videli koja je verzija instalirana na vašem Windows sistemu, otvorite komandni poziv i unesite java-verziju. Ovo pretpostavlja da je java.exe u vašem PATH.
- Preuzmite IAM CLI alatku i odštampajte negde na lokalnom uređaju.
- Postoje 2 datoteke u korenu CLI skupa alatki koje morate ažurirati.
- aws-credential.template: Ova datoteka sadrži vaše AWS akreditive. Dodajte svoj AWSAccessKeyId i vaš AWSSecretKey, sačuvajte i zatvorite datoteku.
- client-config.template : Potrebno je samo da ažurirate ovu datoteku ako vam je potreban proxy server. Uklonite znakove # i ažurirajte ClientProxyHost, ClientProxyPort, ClientProxyUsername i ClientProxyPassword. Sačuvaj i zatvorite datoteku.
- Sledeći korak uključuje dodavanje Environment Variables. Idite na kontrolnu tablu | Svojstva sistema | Napredna sistemska podešavanja | Varijable okoline. Dodajte sljedeće varijable:
- AWS_IAM_HOME : Podesite ovu varijablu u direktorijum u kome ste otpustili CLI alat. Ako koristite Windows i unzipirate je u koren vašeg C diska, varijabla bi bila C: \ IAMCli-1.2.0.
- JAVA_HOME : Podesite ovu varijablu u direktorijum u kojem je Java instaliran. Ovo bi bila lokacija datoteke java.exe. U normalnoj instalaciji Windows 7 Java, ovo bi bilo nešto poput C: \ Program Files (x86) \ Java \ jre6.
- AWS_CREDENTIAL_FILE : Podesite ovu varijablu na putanje i ime datoteke aws-credential.template koju ste ažurirali iznad. Ako pokrećete operativni sistem Windows i unzipirate ga u koren vašeg pogona C, varijabla bi bila C: \ IAMCli-1.2.0 \ aws-credential.template.
- CLIENT_CONFIG_FILE : Potrebno je samo dodati ovu varijablu okoline ako vam je potreban proxy server. Ako koristite Windows i unzipirate je u koren vašeg C pogona, varijabla bi bila C: \ IAMCli-1.2.0 \ client-config.template. Ne dodajte ovu varijablu ako je ne trebate.
- Testirajte instalaciju tako što ćete otići na komandni poziv i uneti iam-userlistbypath. Sve dok ne dobijete grešku, trebalo bi da budete dobri.
Sve IAM naredbe mogu se pokrenuti iz komandnog poziva. Sve komande počinju sa "iam-".
Kreirajte grupu
Postoji maksimalno 100 grupa koje se mogu kreirati za svaki AWS nalog. Iako možete postaviti dozvole u IAM na korisničkom nivou, korišćenje grupa bi bila najbolja praksa. Evo procesa kreiranja grupe u IAM-u.
- Sintaksa za kreiranje grupe je iam-groupcreate -g GROUPNAME [-p PATH] [-v] gdje su -p i -v opcije. Potpuna dokumentacija na interfejsu komandne linije dostupna je na AWS dokumentima.
- Ako ste želeli da kreirate grupu pod nazivom "awesomeusers", uneli ste, iam-groupcreate -g awesomeusers na Command Prompt.
- Možete proveriti da li je grupa kreirana ispravno unosom iam-grouplistbypath u komandnom pozivu. Ako ste samo stvorili ovu grupu, izlaz bi bio nešto poput "arn: aws: iam: 123456789012: group / awesomeusers", gdje je broj vaš AWS broj računa.
Dajte grupni pristup S3 Bucket i CloudFront
Politike kontrolišu šta vaša grupa može da uradi u S3 ili CloudFront. Podrazumevano, vaša grupa ne bi imala pristup bilo čemu u AWS-u. Našao sam dokumentaciju o pravilima kako bih bila u redu, ali u kreiranju nekoliko pravila, učinio sam malo probnog i grešaka kako bih stvari postigao način na koji sam želeo da rade.
Imate nekoliko opcija za kreiranje smernica.
Jedna od opcija je da ih možete unijeti direktno u komandni poziv. S obzirom da možda kreirate politiku i tweaking, za mene je bilo lakše dodati politiku u tekstualnu datoteku, a potom upload datoteku teksta kao parametar pomoću naredbe iam-groupuploadpolicy. Ovde je proces koji koristi tekstualnu datoteku i otpremljuje na IAM.
- Koristite nešto poput Beležnice i unesite sledeći tekst i sačuvajte datoteku:
{
"Izjava": [
"Efekat": "Dozvoli",
"Akcija": "s3: *",
"Resource": [
"arn: aws: s3 ::: BUCKETNAME",
"arn: aws: s3 ::: BUCKETNAME / *"]
},
{
"Efekat": "Dozvoli",
"Akcija": "s3: ListAllMyBuckets",
"Resource": "arn: aws: s3 ::: *"
},
{
"Efekat": "Dozvoli",
"Akcija": ["cloudfront: *"],
"Resurs": "*"
}
]
} - U ovu politiku postoje 3 sekcije. Efekat se koristi za dozvoljavanje ili odbijanje neke vrste pristupa. Akcija je specifična stvar koju grupa može učiniti. Resurs bi se koristio za davanje pristupa pojedinačnim korpi.
- Akcije možete ograničiti pojedinačno. U ovom primjeru, "Akcija": ["s3: GetObject", "s3: ListBucket", "s3: GetObjectVersion"], grupa bi mogla popisati sadržaj kante i download predmetima.
- Prvi odeljak "Dozvoljava" grupi da obavlja sve S3 radnje za kašiku "BUCKETNAME".
- Drugi odeljak "Omogućava" grupi da popiše sve kante u S3. To vam je potrebno da biste zapravo videli listu kanti ako koristite nešto poput AWS konzole.
- Treći odeljak daje grupi pun pristup CloudFront-u.
Postoji puno opcija kada dolazi na IAM politike. Amazon ima stvarno cool alat koji se zove AWS Policy Generator. Ovaj alat pruža GUI gde možete kreirati svoje smernice i generisati stvarni kôd koji vam je potreban za implementaciju politike. Takođe možete pogledati odjeljak Jezik politike pristupa koristeći online dokumentaciju AWS Identity i Access Management.
Kreiraj korisnika i Dodaj u grupu
Proces stvaranja novog korisnika i dodavanja grupe da im obezbedi pristup podrazumeva nekoliko koraka.
- Sintaksa za stvaranje korisnika je iam-usercreate -u USERNAME [-p PATH] [-g GROUPS ...] [-k] [-v] gdje su -p, -g, -k i -v opcije. Potpuna dokumentacija na interfejsu komandne linije dostupna je na AWS dokumentima.
- Ako ste hteli da kreirate korisnika "bob", uneli ste, iam-usercreate -u bob -g awesomeusers na komandnom pozivu.
- Možete proveriti da li je korisnik ispravno kreiran unosom iam-grouplistusers -g awesomeusers na komandni poziv. Ako ste samo stvorili ovog korisnika, izlaz bi bio nešto poput "arn: aws: iam: 123456789012: user / bob", gdje je broj vaš AWS broj računa.
Kreirajte Logon profil i Kreirajte ključeve
U ovom trenutku ste kreirali korisnika, ali morate im dati način za stvarno dodavanje i uklanjanje objekata iz S3.
Na raspolaganju su 2 opcije koje korisnicima omogućavaju pristup S3 pomoću IAM-a. Možete kreirati profil prijave i svojim korisnicima dati lozinku. Oni mogu koristiti svoje akreditive za prijavljivanje na Amazon AWS konzolu. Druga opcija je dati korisnicima pristupni ključ i tajni ključ. Oni mogu da koriste ove ključeve u instrumentima treće strane kao što su S3 Fox, CloudBerry S3 Explorer ili S3 Browser.
Kreirajte profil za prijavu
Kreiranje profila prijave za svoje korisnike S3 pruža im korisničko ime i lozinku koju mogu koristiti za prijavljivanje na Amazon AWS konzolu.
- Sintaksa za kreiranje profila za prijavu je iam-useraddloginprofile -u USERNAME -p PASSWORD. Potpuna dokumentacija na interfejsu komandne linije dostupna je na AWS dokumentima.
- Ako ste želeli da kreirate profil za prijavu za korisnika "bob", upisali biste iam-useraddloginprofile -u bob -p PASSWORD na komandnom pozivu.
- Možete proveriti da li je profil za prijavu kreiran ispravno unosom iam-usergetloginprofile -u bob na komandnom pozivu. Ako ste stvorili profil za prijavu za bob, izlaz bi bio nešto poput "Login Profile exists for user bob".
Kreirajte ključeve
Kreiranje AWS Secret Access ključa i odgovarajući AWS Access Key ID će omogućiti vašim korisnicima da koriste softver treće strane kao što su prethodno pomenuti. Imajte na umu da kao mjeru sigurnosti možete dobiti samo ove ključeve tokom procesa dodavanja korisničkog profila. Uverite se da kopirate i nalepite izlaz iz komandnog poziva i sačuvate u tekstualnoj datoteki. Možete poslati datoteku svom korisniku.
- Sintaksa za dodavanje ključeva za korisnika je iam-useraddkey [-u USERNAME]. Potpuna dokumentacija na interfejsu komandne linije dostupna je na AWS dokumentima.
- Ako ste hteli da kreirate ključeve za korisnika "bob", vi biste uneli iam-useraddkey -u bob na komandnom pozivu.
- Komanda će izlaziti ključeve koji bi izgledali ovako:
AKIACOOB5BQVEXAMPLE
BvQW1IpqVzRdbwPUirD3pK6L8ngoX4PTEXAMPLE
Prva linija je Access Key ID, a druga linija je Tajni pristupni ključ. Za obostrani softver potrebni su vam i drugi.
Test pristup
Sada kada ste kreirali IAM grupe / korisnike i dali grupi pristupiti koristeći smernice, potrebno je da testirate pristup.
Pristup konzolu
Korisnici mogu koristiti svoje korisničko ime i lozinku za prijavljivanje na AWS konzolu. Međutim, ovo nije regularna stranica za prijavljivanje konzola koja se koristi za glavni AWS nalog.
Postoji poseban URL koji možete koristiti koji će vam dati formular za prijavu samo za svoj Amazon AWS nalog. Evo URL-a za prijavljivanje na S3 za korisnike IAM-a.
https://AWS-ACCOUNT-NUMBER.signin.aws.amazon.com/console/s3
AWS-ACCOUNT-NUMBER je vaš redovni AWS broj računa. Ovo možete dobiti tako što ćete se prijaviti u Amazon Web Service Sign In formu. Prijavite se i kliknite na Račun | Aktivnost na računu. Broj vašeg računa je u gornjem desnom uglu. Uverite se da uklonite crtice. URL će izgledati nešto poput https://123456789012.signin.aws.amazon.com/console/s3.
Korišćenje Access Keys
Možete preuzeti i instalirati bilo koji od 3rd party programa koji su već navedeni u ovom članku. Unesite ID ključa za pristup i ključ za taj pristup pomoću dokumentacije alata treće strane.
Ja preporučujem da kreirate početnog korisnika i da taj korisnik u potpunosti testira da mogu učiniti sve što trebaju u S3. Kada potvrdite jednog od vaših korisnika, možete nastaviti sa podešavanjem svih vaših S3 korisnika.
Resursi
Evo nekoliko resursa koji vam omogućavaju bolje razumijevanje upravljanja identitetom i pristupom (IAM).
- Početak rada sa IAM-om
- IAM Command Line Toolkit
- Amazon AWS konzola
- AWS Policy Generator
- Koristeći AWS identitet i upravljanje pristupom
- Napomene o izdanju IAM-a
- IAM diskusioni forumi
- IAM najčešće postavljana pitanja