I 2011 annoncerede Amazon tilgængeligheden af AWS Identity & Access Management (IAM) support til CloudFront. IAM blev lanceret i 2010 og omfattede S3-support. AWS Identity & Access Management (IAM) giver dig mulighed for at have flere brugere inden for en AWS-konto. Hvis du har brugt Amazon Web Services (AWS), er du opmærksom på, at den eneste måde at administrere indhold på i AWS involverede, giver dit brugernavn og adgangskode eller adgangstaster. Dette er en reel sikkerhed bekymring for de fleste af os. IAM eliminerer behovet for at dele adgangskoder og adgangstaster.
Vedvarende at ændre vores primære AWS kodeord eller generere nye nøgler er bare en rodet løsning, når en medarbejder ville forlade vores team. AWS Identity & Access Management (IAM) var en god start, der tillod individuelle brugerkonti med individuelle nøgler. Vi er dog en S3 / CloudFront-bruger, så vi har kigget på, at CloudFront skal tilføjes til IAM, som endelig er sket.
Jeg fandt dokumentationen på denne tjeneste for at være lidt spredt. Der er et par produkter fra 3. part, der tilbyder en række support til Identity & Access Management (IAM). Men udviklere er normalt sparsommelige, så jeg søgte en gratis løsning til at styre IAM med vores Amazon S3-service.
Denne artikel går gennem processen med opsætning af kommandolinjegrensesnittet, der understøtter IAM og opsætter en gruppe / bruger med S3-adgang. Du skal have en Amazon AWS S3-kontoopsætning, før du begynder at konfigurere Identity & Access Management (IAM). Min artikel, ved hjælp af Amazon Simple Storage Service (S3), vil lede dig igennem processen med at oprette en AWS S3-konto.
Her er trinnene involveret i oprettelse og implementering af en bruger i IAM. Dette er skrevet til Windows, men du kan tilpasse til brug i Linux, UNIX og / eller Mac OSX.
- Installer og konfigurer Command Line Interface (CLI)
- Opret en gruppe
- Giv gruppen adgang til S3 Bucket og CloudFront
- Opret bruger og tilføj til gruppe
- Opret login profil og opret nøgler
- Test adgang
Installer og konfigurer Command Line Interface (CLI)
IAM Command Line Toolkit er et Java-program tilgængeligt i Amazonas AWS Developers Tools. Værktøjet giver dig mulighed for at udføre IAM API-kommandoer fra et shell-værktøj (DOS til Windows).
- Du skal køre Java 1.6 eller nyere. Du kan downloade den nyeste version fra Java.com. For at se, hvilken version der er installeret på dit Windows-system, skal du åbne kommandoprompt og skrive i java-version. Dette forudsætter, at java.exe er i din PATH.
- Download IAM CLI-værktøjssætet og pakk et sted på dit lokale drev.
- Der er 2 filer i roden af CLI-værktøjssættet, som du skal opdatere.
- AWS-credential.template: Denne fil indeholder dine AWS legitimationsoplysninger. Tilføj din AWSAccessKeyId og din AWSSecretKey, gem og luk filen.
- client-config.template: Du skal kun opdatere denne fil, hvis du har brug for en proxyserver. Fjern # tegnene og opdatér ClientProxyHost, ClientProxyPort, ClientProxyUsername og ClientProxyPassword. Gem og luk filen.
- Det næste trin indebærer at tilføje miljøvariabler. Gå til Kontrolpanel | Systemegenskaber | Avancerede systemindstillinger | Miljøvariabler. Tilføj følgende variabler:
- AWS_IAM_HOME: Indstil denne variabel til den mappe, hvor du udpakket CLI-værktøjssættet. Hvis du kører Windows og unzipped det i roden af dit C-drev, vil variablen være C: IAMCli-1.2.0.
- JAVA_HOME: Indstil denne variabel til den mappe, hvor Java er installeret. Dette ville være placeringen af java.exe-filen. I en normal Windows 7 Java-installation ville dette være noget som C: Program Files (x86) Java jre6.
- AWS_CREDENTIAL_FILE: Indstil denne variabel til stien og filnavnet på den aws-credential.template, som du opdaterede ovenfor. Hvis du kører Windows og unzipped det i roden af dit C-drev, vil variablen være C: IAMCli-1.2.0 aws-credential.template.
- CLIENT_CONFIG_FILE: Du skal kun tilføje denne miljøvariabel, hvis du har brug for en proxyserver. Hvis du kører Windows og udpakket den i roden til dit C-drev, vil variablen være C: IAMCli-1.2.0 client-config.template. Tilføj ikke denne variabel, medmindre du har brug for det.
- Test installationen ved at gå til kommandoprompt og indtaste iam-userlistbypath. Så længe du ikke får en fejl, skal du være god at gå.
Alle IAM-kommandoer kan køres fra kommandoprompt. Alle kommandoer begynder med "iam-".
Opret en gruppe
Der er maksimalt 100 grupper, der kan oprettes for hver AWS-konto. Mens du kan indstille tilladelser i IAM på brugerniveau, ville det være den bedste praksis at bruge grupper. Her er processen for at oprette en gruppe i IAM.
- Syntaxen til oprettelse af en gruppe er iam-groupcreate -g GROUPNAME -p PATH -v hvor -p og -v er indstillinger. Fuld dokumentation på Command Line Interface er tilgængelig på AWS Docs.
- Hvis du ønskede at oprette en gruppe kaldet "awesomeusers", ville du indtaste, iam-groupcreate -g awesomeusers på Command Prompt.
- Du kan kontrollere, at gruppen blev oprettet korrekt ved at indtaste iam-grouplistbypath ved kommandoprompt. Hvis du kun havde oprettet denne gruppe, ville resultatet være noget som "arn: aws: iam :: 123456789012: group / awesomeusers", hvor nummeret er dit AWS kontonummer.
Giv gruppen adgang til S3 Bucket og CloudFront
Politikker styrer, hvad din gruppe kan gøre i S3 eller CloudFront. Som standard har din gruppe ikke adgang til noget i AWS.Jeg fandt dokumentationen om politikker til at være OK, men i at lave en håndfuld politikker gjorde jeg en smule forsøg og fejl for at få ting til at fungere, som jeg ønskede, at de skulle arbejde.
Du har et par muligheder for at oprette politikker. En mulighed er, at du kan indtaste dem direkte i kommandoprompt. Da du måske oprettede en politik og tilpassede det, syntes det mig lettere at tilføje politikken til en tekstfil og derefter uploade tekstfilen som en parameter med kommandoen iam-groupuploadpolicy. Her er processen ved hjælp af en tekstfil og upload til IAM.
- Brug noget som Notesblok og indtast følgende tekst og gem filen:
- {
- "Udmelding":{
- "Effekt": "Tillad",
- "Handling": "s3: *",
- "Resource":
- "Arn: aws: s3 ::: BUCKETNAME",
- "ARN: aws: s3 ::: BUCKETNAME / *"
- },
- {
- "Effekt": "Tillad",
- "Action": "S3: ListAllMyBuckets",
- "Ressource": "ARN: aws: s3 ::: *"
- },
- {
- "Effekt": "Tillad",
- "Handling": "CloudFront: *",
- "Ressource": "*"
- }
- }
- Der er 3 afsnit til denne politik. Effekten bruges til at tillade eller nægte en eller anden form for adgang. Handlingen er de specifikke ting, som gruppen kan gøre. Ressourcen vil blive brugt til at give adgang til individuelle spande.
- Du kan begrænse handlingerne individuelt. I dette eksempel kan "Action": "s3: GetObject", "s3: ListBucket", "s3: GetObjectVersion") gruppere indholdet af en spand og hente objekter.
- Den første sektion "Tillader" gruppen at udføre alle S3-handlinger til bucket "BUCKETNAME".
- Den anden sektion "Tillader" gruppen at liste alle spande i S3. Du har brug for dette, så du kan faktisk se listen over spande, hvis du bruger noget som AWS Console.
- Den tredje sektion giver gruppen fuld adgang til CloudFront.
Der er mange muligheder, når det kommer til IAM-politikker. Amazon har et rigtig cool værktøj til rådighed kaldet AWS Policy Generator. Dette værktøj giver en GUI, hvor du kan oprette dine politikker og generere den egentlige kode, du har brug for til at gennemføre politikken. Du kan også se afsnittet Adgangspolitikssprog i online-dokumentationen til brug af AWS Identity og Access Management.
Opret bruger og tilføj til gruppe
Processen med at oprette en ny bruger og tilføje til en gruppe for at give dem adgang involverer et par trin.
- Syntaxen til oprettelse af en bruger er iam-usercreate -u USERNAME -p PATH -g GRUPPER … -k -v hvor -p, -g, -k og -v er indstillinger. Fuld dokumentation på Command Line Interface er tilgængelig på AWS Docs.
- Hvis du ønskede at oprette en bruger "bob", ville du indtaste, iam-usercreate-du bob -g awesomeusers på Command Prompt.
- Du kan kontrollere, at brugeren blev oprettet korrekt ved at indtaste iam-grouplistusers -g awesomeusers på kommandoprompt. Hvis du kun havde oprettet denne bruger, ville resultatet være noget som "arn: aws: iam :: 123456789012: user / bob", hvor nummeret er dit AWS kontonummer.
Opret Logon Profile og Create Keys
På dette tidspunkt har du oprettet en bruger, men du skal give dem en måde at faktisk tilføje og fjerne objekter fra S3. Der er 2 muligheder for at give dine brugere adgang til S3 ved hjælp af IAM. Du kan oprette en loginprofil og give dine brugere en adgangskode. De kan bruge deres legitimationsoplysninger til at logge ind på Amazon AWS Console. Den anden mulighed er at give dine brugere en adgangstast og en hemmelig nøgle. De kan bruge disse nøgler i 3. parts værktøjer som S3 Fox, CloudBerry S3 Explorer eller S3 Browser.
Opret login profil
Oprettelse af en loginprofil til dine S3-brugere giver dem et brugernavn og adgangskode, som de kan bruge til at logge ind på Amazon AWS Console.
- Syntaxen til oprettelse af en loginprofil er iam-useraddloginprofile -u USERNAME -p PASSWORD. Fuld dokumentation på Command Line Interface er tilgængelig på AWS Docs.
- Hvis du ønskede at oprette en loginprofil for brugeren "bob", ville du indtaste, iam-useraddloginprofile -u bob -p PASSWORD på kommandoprompt.
- Du kan kontrollere, at loginprofilen blev oprettet korrekt ved at indtaste iam-usergetloginprofile -u bob ved kommandoprompt. Hvis du havde oprettet en loginprofil for bob, ville udgangen være noget som "Login Profile exists for user bob".
Opret nøgler
Oprettelse af en AWS Secret Access Key og tilhørende AWS Access Key ID gør det muligt for dine brugere at bruge 3rd party software som dem, der tidligere er nævnt. Husk, at du som sikkerhedsforanstaltning kun kan få disse nøgler under processen med at tilføje brugerprofilen. Sørg for at du kopierer og indsætter output fra kommandoprompt og gemmer i en tekstfil. Du kan sende filen til din bruger.
- Syntaxen for at tilføje nøgler til en bruger er iam-useraddkey -u USERNAME. Fuld dokumentation på Command Line Interface er tilgængelig på AWS Docs.
- Hvis du ønskede at oprette nøgler til brugeren "bob", ville du indtaste iam-useraddkey -u bob ved kommandoprompt.
- Kommandoen vil udlæse nøglerne, som ville se noget sådan ud:
- AKIACOOB5BQVEXAMPLE
- BvQW1IpqVzRdbwPUirD3pK6L8ngoX4PTEXAMPLE
- Den første linje er adgangstast-id, og den anden linje er den hemmelige adgangstast. Du har brug for både til tredjeparts software.
Test adgang
Nu, hvor du har oprettet IAM-grupper / brugere og givet gruppens adgang ved hjælp af politikker, skal du teste adgangen.
Konsoladgang
Dine brugere kan bruge deres brugernavn og adgangskode til at logge ind på AWS Console. Dette er dog ikke den almindelige konsol loginside, som bruges til hoved AWS-kontoen. Der er en særlig webadresse, som du kan bruge, som kun giver en login-formular til din Amazon AWS-konto. Her er URL'en til login til S3 for dine IAM-brugere.
https://AWS-ACCOUNT-NUMBER.signin.aws.amazon.com/console/s3
AWS-ACCOUNT-NUMBER er dit almindelige AWS-kontonummer. Du kan få det ved at logge ind på Amazon Web Service Log In formularen. Log ind og klik på Konto | Kontoaktivitet. Dit kontonummer er øverst til højre. Sørg for at fjerne stregerne. URL'en vil se lidt ud som https://123456789012.signin.aws.amazon.com/console/s3.
Brug af adgangstaster
Du kan downloade og installere et af de 3rd party-værktøjer, der allerede er nævnt i denne artikel. Indtast dit adgangstast-id og den hemmelige adgangsnøgle pr. Tredjeparts værktøjsdokumentation.
Jeg anbefaler kraftigt, at du opretter en første bruger og har den bruger fuldt ud at teste, at de kan gøre alt, hvad de skal gøre i S3. Når du har bekræftet en af dine brugere, kan du fortsætte med at konfigurere alle dine S3-brugere.