Ettersom AWS tilbyr flere tjenester og enorme fordeler, er det helt naturlig at sikkerhetsbekymringene ble tatt opp av IT-ekspertene. For å løse disse sikkerhetsproblemene ble IAM-tjenesten introdusert av AWS. AWS IAM er en av kjernenetttjenestene som lar brukere sikre AWS-ressurser. IAM gir funksjonaliteten til sentral tilgangsadministrasjon av AWS-tjenestene ved å definere tillatelsene for forskjellige brukere.
Rask oversikt
I denne artikkelen vil du lære om:
Hva er AWS IAM-rollen?
Hva er påta rollen i AWS?
Hvordan påta seg en IAM-rolle ved å bruke AWS CLI?
Med IAM-roller og -tillatelser kan vi bestemme den autentiserte og autoriserte tilgangen til AWS-tjenestene. Disse rollene og tillatelsene kan bare tildeles av rotbrukeren (eieren) av AWS-kontoen.
Hva er AWS IAM-rollen?
IAM-rollen er en identitet opprettet av root-brukeren i AWS-kontoen. Denne identiteten tildeles spesifikke tillatelser som definerer omfanget av tilgang til IAM-rollen til AWS-ressurser. Disse tillatelsene kan enten være AWS-administrert eller tilpasset definert av rotbrukeren.
En IAM-rolle er veldig lik IAM-brukeren bortsett fra at IAM-rollen er en identitet med visse tillatelser mens brukeren kan påta seg disse rollene for å utføre visse funksjoner. Tillatelsene som er gitt til rollen definerer hvilke handlinger som kan utføres med denne identiteten (IAM-rollen).
Hva er påta rollen i AWS?
Anta at rolle er en av funksjonene til AWS IAM-tjenesten som lar brukeren handle med AWS-tjenester selv om tillatelsene for å få tilgang til eller manipulere ressursen i tjenesten ikke er tildelt brukeren. Disse tillatelsene blir indirekte tildelt brukeren når en rolle antas. Et sett med midlertidig legitimasjon sammen med en øktbasert pålogging brukes for å få tilgang til AWS-ressursene.
Disse midlertidige legitimasjonene inkluderer en hemmelig tilgangsnøkkel, tilgangsnøkkel-ID og sikkerhetstoken. IAM-roller opprettet av AWS-rotbrukeren kan overtas av de andre brukerne i AWS-kontoen eller de brukerne hvis ARN er nevnt i policyen for rollen. Policyen som inneholder ARN for brukerne eller ressursene er kjent som Tillitspolitikk .
Hva er forskjellen mellom tillatelsespolicyen og tillitspolitikken?
Før du implementerer anta-rolle-funksjonaliteten via ulike metoder, er det to kjernekonsepter som må forstås av brukeren. Det er to typer retningslinjer i IAM-tjenesten:
-
- Retningslinjer for tillit: En tillitspolicy bestemmer hvem som kan påta seg en spesifikk IAM-rolle. For at en rolle skal overtas av en bruker, er ARN-en til brukeren nevnt i IAM-rollens tillitspolicy. Denne tillitspolicyen avgjør om brukeren eller ressursene er en klarert enhet for å påta seg denne rollen.
- Tillatelsespolicy: Denne policyen bestemmer hva en bruker kan gjøre eller hvilke handlinger som kan utføres med rollen.
Hvordan påta seg en IAM-rolle ved å bruke AWS CLI?
Å påta seg en rolle ligner på å forkle deg som en annen bruker som er autentisert og autorisert til å utføre visse handlinger. Mens de antar en identitet, har AWS sørget for at sikkerheten forblir intakt.
La oss forstå hvordan Assume-rolle-funksjonen fungerer ved å vurdere følgende eksempel.
For eksempel, Det finnes en bruker i AWS-kontoen som ikke har blitt tildelt noen tillatelser for S3-bøtten. De 'Skrivebeskyttet tilgang' kalles tillatelsespolicyen som er knyttet til en IAM-rolle. For at brukeren skal påta seg denne rollen, er ARN-en til brukeren nevnt i IAM-rollens policy. Denne politikken kalles nå som 'tillitspolitikk' og det er forskjellig fra tillatelsespolicyen. Trust policyen er avgjørende siden den hjelper AWS med å avgjøre om brukeren er en autorisert enhet eller ikke.
Merk at ARN er nevnt i Trust-policyen og ikke i Tillatelsespolicyen for IAM-rollen. Ved å påta seg en rolle kan brukeren utføre noen få administrative handlinger definert av tillatelsespolicyen for rollen. Disse handlingene inkluderer å legge til, slette, endre eller gjenopprette en ressurs, etc.
Følgende er de tre metodene for å påta seg en rolle med AWS CLI:
Metode 1: Bruke STS (Security Token Service)
Brukerne kan påta seg en rolle ved å utføre kommandoene i STS-delen (Secure Token Service) som returnerer et sett med midlertidig legitimasjon. Den midlertidige legitimasjonen brukes til å etablere en øktbasert pålogging for å foreta API-kall til ressursene. Det finnes imidlertid to unntak mens du bruker STS, dvs. GetFederationToken og GetSessionToken.
Brukeren er begrenset fra å få tilgang til disse tokenene for å sikre den konfidensielle informasjonen til Session and Federation Tokens. Slik at sikkerheten ikke under noen omstendigheter kompromitteres. Ved å påta seg en rolle kan en bruker heve sine tildelte privilegier.
I denne delen av artikkelen vil vi be om et sett med midlertidig legitimasjon ved å bruke STS-kommandoene. Nedenfor er trinnene:
-
- Trinn 1: Opprett en bruker- og brukerpolicy
- Trinn 2: Legg ved policy med brukeren
- Trinn 3: Lag en tillitspolicy og en IAM-rolle
- Trinn 4: Lag tilgangsnøkler
- Trinn 5: Konfigurer tilgangsnøkkelen og bekreft IAM-brukeren
- Trinn 6: Anta IAM-rollen
- Trinn 7: Konfigurer miljøvariabler
- Bonustips: Deaktiver miljøvariablene
Trinn 1: Opprett en bruker- og brukerpolicy
Først vil vi opprette en IAM-bruker uten tillatelser. For dette formålet, åpne CMD fra Start-menyen i Windows:
Bare den root-bruker kan skape an IAM-bruker i AWS-kontoen. Logg derfor på AWS-rotkontoen ved å bruke følgende kommando:
Påloggingsinformasjonen er allerede konfigurert i CLI for denne demoen som vist i utdataene til kommandoen:
Lære mer:
Til opprette en IAM-bruker , oppgi følgende kommando til CLI:
aws iam opprette-bruker --brukernavn demo-bruker
Bytt ut demo-bruker med din IAM brukernavn.
Lagre 'Arn' gitt i utgangen av kommandoen slik den vil være nødvendig når skaper de Trust Policy :
Les mer:
Neste steg er å tillate brukeren (demo-bruker ) til innta en rolle . For dette formålet oppretter du en JSON-fil bruker noen tekstredigerer du foretrekker. For denne demoen har vi brukt Notisblokk som spesifisert i kommandoen nedenfor:
For Windows
notepad user-policy.json
Bytt ut brukerpolicy med IAM-policynavnet ditt.
For Linux OS
fordi user-policy.json
For øyeblikket bruker vi Windows-operativsystemet for denne demoen:
Dette vil åpne notisblokken. Lim inn følgende policy i notisblokken og trykk 'CTRL + S' fra tastaturet for å lagre endringer:
'Versjon' : '2012-10-17' ,
'Uttalelse' : [
{
'Effekt' : 'Tillate' ,
'Handling' : [
'ec2:Beskriv*' ,
'iam:ListRoles' ,
'sts:AssumeRole'
] ,
'Ressurs' : '*'
}
]
}
Nedenfor er en kort beskrivelse av den spesifiserte policyen:
-
- ec2:Beskriv: Denne tillatelsen spesifiserer at brukeren kan vise eller liste alle AMI-er, øyeblikksbilder eller EC2-forekomster
- iam:ListRoles: Denne tillatelsen spesifiserer at brukeren kan liste opp alle rollene i IAM-tjenesten.
- sts:AssumeRole: Denne tillatelsen representerer at brukeren kan påta seg en rolle definert i IAM-tjenesten.
Her har policyen blitt redigert i notisblokken og er lagret:
Hver AWS ressurs er tildelt en Tilgangsressursnavn (ARN) hvilken identifiserer unikt ressursen. For å bestemme ARN for policyen, bruk kommandoen nedenfor.
I den ovennevnte kommandoen:
-
- –policy-navn: Bytt ut verdien 'brukerpolicy' med et hvilket som helst policynavn du foretrekker.
- –policy-dokument: I dette feltet erstatter du ' user-policy.json' med json-filens navn som inneholder policyen for brukeren.
Utdataene fra den ovennevnte kommandoen er som følger. Lagre 'Arn' nevnt i utdataene til policyen ettersom den vil være nødvendig når denne policyen skal legges ved brukeren:
Trinn 2: Legg ved policy med brukeren
Denne policyen vil tillate brukeren å liste opp EC2-forekomster , Venner , osv. Når brukeren påtar seg en rolle med en annen tillatelse, vil brukeren kun kunne utføre den spesifikke handlingen som tillatt av tillatelsespolicyen.
For å legge ved policyen med brukeren opprettet tidligere i denne delen, bruk følgende kommando:
aws iam attach-user-policy --brukernavn demo-bruker --policy-arn 'arn:aws:iam::123456789:policy/user-policy'
I den ovennevnte kommandoen:
-
- –brukernavn: Bytt ut 'demo-bruker' i –brukernavn feltet med ditt IAM-brukernavn.
- –policy-arn: Tilsvarende i –policy-arn, spesifiser 'Arn' fra utdata fra forrige kommando, dvs. –create-policy.
Ved å utføre kommandoen etter å ha gjort de nødvendige endringene, har policyen blitt knyttet til brukeren:
For å bekrefte om policyen er knyttet til brukeren, oppgi følgende kommando til CLI:
Bytt ut demo-bruker med din IAM brukernavn spesifisert mens du opprettet brukeren.
Utdataene fra følgende kommando bekrefter at policyen har blitt knyttet til brukeren:
Trinn 3: Lag en tillitspolicy og IAM-rolle
Et tillitsforhold etableres når en ressurs eller en brukers ARN er spesifisert i en policy. Denne funksjonaliteten lar brukerne eller enheten utføre visse handlinger ettersom de anses som pålitelige av policyen.
I dette trinnet vil vi lage en policy som etablerer tillitsforholdet mellom IAM-rollen og brukeren. Denne tillitspolicyen vil bli knyttet til IAM-rollen. IAM-rollen overtas deretter av brukeren, noe som indirekte vil tillate brukeren å utføre handlingene spesifisert i policyen.
For å lage en tillitspolicy, gis kommandoene som følger:
For Windows
notepad trust-role-policy.json
Bytt ut trust-role-policy.json med navnet på din preferanse for polisen.
For Linux OS
fordi trust-role-policy.json
Bytt ut trust-role-policy.json med navnet på din preferanse for polisen.
Tillitspolitikken følger JSON-format som spesifisert av .json utvidelse i følgende kommando:
Dette vil åpne notisblokken. Lim inn følgende Politikk i notisblokken og trykk på 'CTRL + S' knappen fra tastaturet for å lagre endringer. ARN-en til brukeren kan også kopieres fra brukerens dashbord på IAM-konsollen. For dette formålet, gå til IAM-dashbordet og klikk på navnet til brukeren. Fra den viste konfigurasjonen, kopier ARN-en til brukeren som vises i Sammendrag-delen.:
'Versjon' : '2012-10-17' ,
'Uttalelse' : {
'Effekt' : 'Tillate' ,
'Major' : {
'AWS' : 'arn:aws:iam::123456789012:bruker/eksempelbruker'
} ,
'Handling' : 'sts:AssumeRole'
}
}
I den ovennevnte policyen:
-
- AWS: Bytt ut AWS-feltverdi 'arn:aws:iam::123456789012:bruker/eksempelbruker 'med ARN for brukeren som ble vist i utdataene til –create-user-kommandoen.
Brukeren kan begrense andre brukere fra å påta seg IAM-rollen ved å spesifisere ARN for brukeren i 'AWS' felt:
Les mer:
Opprett nå en IAM-rolle og knytt tillitspolitikken til den. For å opprette en IAM-rolle, bruk kommandoen nedenfor:
aws iam skape-rolle --rollenavn brukerrolle --anta-rolle-policy-dokument fil: // trust-role-policy.json
Følgende er beskrivelsen av de ovennevnte feltene:
-
- –rollenavn: Dette feltet brukes til å legge inn navnet som vil bli tildelt denne IAM-rollen. Erstatt 'brukerrolle'-verdien med IAM-rollenavnet du velger.
- – anta-rolle-policy-dokument: I dette feltet spesifiser banen som gitt i kommandoen. Erstatt trust-role-policy.json med policynavnet som spesifisert av deg i forrige avsnitt.
Ved å utføre denne kommandoen, vil den returnere flere deler av informasjonen i utdataene, for eksempel ARN, Path, ID, etc:
Les mer:
Ved å påta seg denne rollen, vil brukeren kunne utføre 'Skrivebeskyttet tilgang' action med S3-skuffen. Kommandoen er gitt som følger:
aws iam attach-rolle-policy --rollenavn brukerrolle --policy-arn 'arn:aws:iam::aws:policy/AmazonS3ReadOnlyAccess'
I kommandoen ovenfor:
-
- –rollenavn: Erstatte ' brukerrolle' i –rollenavn-feltet med IAM-rollens navn som du spesifiserte tidligere i denne opplæringen.
- –policy-arn: Arnen spesifisert i –policy-arn refererer til ReadOnlyAccess-tillatelsen for S3-bøtten.
I dette bildet har rollen blitt tildelt ReadOnlyAccess-tillatelsen for S3-bøtten:
For å bekrefte om tillatelsen er tildelt rollen eller ikke, bruk følgende kommando:
Bytt ut 'brukerrolle' med ditt IAM-rollenavn.
De 'AmazonS3ReadOnly Access' tillatelse er knyttet til IAM-rollen. Utgangen av kommandoen er gitt som følger:
Trinn 4: Lag tilgangsnøkler
I denne delen vil vi lage tilgangsnøklene for brukeren. Tilgangsnøklene vil bli brukt til å logge på AWS-kontoen:
aws iam opprette-tilgangsnøkkel --brukernavn demo-bruker
Bytt ut demo-bruker med ditt IAM-brukernavn oppgitt da du opprettet en bruker.
Her har kommandoen returnert et sett med tilgangsnøkkelpar (AccessKeyId og Secret Access Key) med tilleggsdetaljer som opprettet dato, status osv. Lagre AccessKeyId og SecretAccessKey slik de kreves senere i opplæringen:
Les mer:
Trinn 5: Konfigurer tilgangsnøkkel og bekreft IAM-brukeren
For å konfigurere tilgangsnøkkelen, oppgi følgende kommando til CMD og skriv deretter inn tilgangsnøkkel-ID og hemmelig tilgangsnøkkel:
aws konfigurere
Oppgi tilgangsnøkkel-ID og hemmelig tilgangsnøkkel til CLI-en som ble opprettet i trinn 4 i denne delen. For regionen har vi beholdt standardinnstillingene. Brukere kan konfigurere et hvilket som helst utdataformat for standard utdataformat. For denne demoen har vi spesifisert JSON format:
For å bekrefte om IAM-brukeren er konfigurert, oppgi følgende kommando til CLI:
Utdataene fra kommandoen indikerer at 'demo-bruker' har blitt konfigurert vellykket, og er for øyeblikket logget på AWS-kontoen:
For å finne ut at IAM-brukeren kan liste opp EC2-forekomstene og ikke har tilgang til S3-bøtten for øyeblikket, bruk følgende kommando:
Utgangen av kommandoen er gitt som følger:
Oppgi nå følgende kommando for å bekrefte om brukeren har tilgang til S3-bøtten:
Dette vil vise 'Ingen tilgang' feil som indikerer at brukeren ikke har tilgang til S3-bøtten:
Trinn 6: Anta IAM-rollen
Brukeren har tillatelse til å liste opp IAM-rollene i AWS-kontoen. Derfor, for å påta oss rollen, vil vi først innhente den nødvendige informasjonen som ARN ved å utføre følgende kommando:
aws iam liste-roller --spørsmål 'Roler[?Rollenavn == 'brukerrolle'].[Rollenavn, Arn]'
Erstatt 'brukerrollen' med IAM-rollenavnet i 'RoleName'-feltet.
ARN er gitt i utdataene til den ovennevnte kommandoen:
Nå som vi har ARN for IAM-rollen, kan vi påta oss rollen ved å bruke følgende kommando:
I kommandoen ovenfor:
-
- –rolle-arn: Erstatt den nevnte verdien for –role-arn med IAM-rollens ARN.
- –navn på rolleøkt: Brukeren kan angi hvilket som helst navn for dette feltet.
Ved å utføre den ovennevnte kommandoen, har et sett med midlertidige legitimasjoner blitt returnert. Disse midlertidige legitimasjonene vil bli brukt til å overta IAM-rollen med ønsket tillatelse, dvs. ReadOnlyAccess. AccessKeyId og SecretAccessKey vil bli brukt når du konfigurerer disse midlertidige legitimasjonene:
Her er en kort beskrivelse av utgangen av kommandoen:
-
- SessionToken: Sesjonstokenet brukes til å opprette den sesjonsbaserte påloggingen. Lagre verdien av dette feltet ettersom det vil være nødvendig mens du konfigurerer legitimasjonen.
- Utløp: Sesjonstokenet har en utløpsdato og -klokkeslett. Tokenet vil ikke være til nytte etter den angitte tiden, og brukeren vil ikke kunne påta seg rollen.
Trinn 7: Konfigurer miljøvariabelen
For å konfigurere den midlertidige legitimasjonen, vil vi bruke 'sett'-kommandoen for Windows og deretter oppgi verdien av tilgangsnøkkel-ID, hemmelig tilgangsnøkkel, økttoken osv.:
For Windows
sett AWS_ACCESS_KEY_ID =RoleAccessKeyID
Erstatt RoleAccessKeyID med Access Key ID som er returnert av kommandoen i trinn 6.
For Linux OS
eksport AWS_ACCESS_KEY_ID =RoleAccessKeyID
Erstatt RoleAccessKeyID med Access Key ID som er returnert av kommandoen i trinn 6.
Tilgangsnøkkelen er konfigurert:
Deretter vil vi konfigurere den hemmelige tilgangsnøkkelen ved å bruke 'sett'-kommandoen for Windows:
For Windows
sett AWS_SECRET_ACCESS_KEY =RoleSecretKey
Bytt ut RoleSecretKey med verdien for hemmelig tilgangsnøkkel som ble returnert av kommandoen i trinn 6.
For Linux OS
eksport AWS_SECRET_ACCESS_KEY =RoleSecretKey
Erstatt AWS_SECRET_ACCESS_KEY med den hemmelige tilgangsnøkkelen som ble returnert av kommandoen i trinn 6.
Den hemmelige tilgangsnøkkelen er konfigurert:
Til slutt vil vi konfigurere økttokenet for å etablere den øktbaserte påloggingen. For dette formålet, bruk kommandoen nedenfor:
For Windows
sett AWS_SESSION_TOKEN =RoleSessionToken
Erstatt RoleSessionToken med Session Token-verdien som ble returnert av kommandoen i trinn 6.
For Linux OS
eksport AWS_SESSION_TOKEN =RoleSessionToken
Erstatt RoleSessionToken med Session Token-verdien som ble returnert av kommandoen i trinn 6.
Verdien til økttokenet er konfigurert:
For å kopiere verdien av sesjonstoken fra CMD, trykk 'CTRL + SHIFT + C' .
Etter å ha konfigurert miljøvariablene, kontroller ved å bruke følgende kommando om rollen har blitt påtatt av brukeren:
aws sts get-ringer-identitet
Utdataene fra kommandoen bekrefter at IAM-rollen har vært vellykket antatt av brukeren slik ARN-avkastningen er 'arn:aws:sts::123456789012:assumed-rolle/user-role/AWSCLI-Session' i stedet for 'arn:aws:iam::123456789012:bruker/demobruker':
Siden rollen inneholder ReadOnlyAccess-tillatelsen, bør brukeren kunne verve bøttene nå. For dette formålet, oppgi følgende kommando til CLI:
Utdataene fra kommandoen henter alle S3-bøttene som for øyeblikket er konfigurert i AWS-kontoen:
Brukeren vil imidlertid ikke kunne få tilgang til EC2-tjenesten da den antatte rollen ikke har tillatelse til EC2-tjenesten. For å bekrefte dette, bruk følgende kommando:
Tidligere kunne brukeren få tilgang til EC2-tjenesteinformasjonen. Imidlertid, når du utfører den ovennevnte kommandoen, an 'Ingen tilgang' feil har oppstått. Brukeren har påtatt seg IAM-rollen:
Dette er alt fra denne delen.
Bonustips: Deaktiver miljøvariablene
For å gå tilbake til IAM-brukeren, dvs. demo-brukeren, kan brukeren fjerne miljøvariablene ved å sette miljøvariablene til tomme strenger. Følgende er kommandoene gitt:
For Windows
SETT AWS_ACCESS_KEY_ID =SETT AWS_SECRET_ACCESS_KEY =
SETT AWS_SESSION_TOKEN =
For Linux
Bruk kommandoen nedenfor:
deaktivert AWS_ACCESS_KEY_ID AWS_SECRET_ACCESS_KEY AWS_SESSION_TOKEN
De ovennevnte kommandoene vil deaktivere miljøvariablene:
Etter å ha utført kommandoene ovenfor, skal konsollen nå returnere 'demo-bruker' som den for øyeblikket påloggede brukeren i stedet for den antatte rollen, dvs. brukerrollen. For dette formålet vil vi bruke følgende kommando:
Utdataene fra kommandoen indikerer at den påloggede brukeren er demobruker:
På samme måte, for å logge på som root-bruker, følg 'C:\Users%USERPROFILE%.aws' bane og klikk på legitimasjonsfilen:
I legitimasjonsfilen erstatter du verdiene til tilgangsnøkkelen og hemmelig tilgangsnøkkel med rotbrukerens tilgangsnøkkel og hemmelig tilgangsnøkkel:
Gi følgende kommando til CLI for å bekrefte om legitimasjonen er riktig konfigurert:
Her, i bildet nedenfor, kan vi se at tilgangsnøkkelen og hemmelig tilgangsnøkkelen til rotbrukeren har blitt konfigurert vellykket:
Det er alt fra denne delen av opplæringen.
Metode 2: Bruk av –profile-parameter
En annen metode for å påta seg rollen er å bruke '–profile'-feltet i CLI. Denne delen av artikkelen presenterer den praktiske implementeringen av å påta seg en rolle i AWS via –profil. Nedenfor er trinnene for det:
Trinn 1: Opprett en IAM-bruker
For å opprette en IAM-bruker, logg inn på root-brukerkontoen via CLI ved å bruke følgende kommando:
aws konfigurere
Påloggingsinformasjonen er allerede konfigurert i CLI for denne demoen som vist i utdataene til kommandoen:
Lære mer:
For å opprette en IAM-bruker, oppgi følgende kommando til CLI:
aws iam opprette-bruker --brukernavn profil-bruker
Brukeren er opprettet. Lagre ARN for brukeren som vist i bildet nedenfor. ARN-en til denne IAM-brukeren vil bli brukt senere i denne opplæringen. For øyeblikket er det ingen tillatelser knyttet til denne IAM-brukeren:
Les mer:
Trinn 2: Opprett tilgangsnøkkel
I AWS er hver bruker tildelt et par tilgangsnøkler for pålogging. For å opprette tilgangsnøklene for denne brukeren, oppgi følgende kommando til den:
aws iam opprette-tilgangsnøkkel --brukernavn profil-bruker
Denne kommandoen returnerer et sett med tilgangsnøkler. Lagre de AccessKeyId og Hemmelig tilgangsnøkkel som det vil være nødvendig når du logger på AWS-kontoen:
Hvis vi nå logger inn på AWS CLI med disse AccessKeyId og SecretAccessKey, og får tilgang til en hvilken som helst ressurs, f.eks. S3 bøtte, den 'Ingen tilgang' feil vil oppstå. Dette er fordi det for øyeblikket ikke er noen tillatelser knyttet til IAM-brukeren. For å logge på AWS CLI, bruk følgende kommando og oppgi tilgangsnøkkel-ID og hemmelig tilgangsnøkkel som opprettet tidligere:
Bytt ut 'profil-bruker' med IAM-brukernavnet du oppga mens du opprettet brukeren.
Her har vi logget på AWS CLI som IAM-bruker:
For å bekrefte om denne brukeren har skrivebeskyttede tillatelser for S3-bøtten, oppgi følgende kommando til CLI:
Erstatt profilbrukeren med IAM-brukernavnet som du oppga mens du opprettet brukeren.
Siden denne brukeren ikke har blitt tildelt noen tillatelse av rotbrukeren, vil det resultere i ' Ingen tilgang ' feil:
Trinn 3: Lag en tillitspolicy og IAM-rolle
En tillitspolicy bestemmer om en bruker eller en AWS-ressurs er en klarert enhet for å påta seg rollen og skaffe tillatelsene. Dette tillitsforholdet opprettes ved å spesifisere ARN for IAM-brukeren eller AWS-ressursen i tillatelsespolicyen.
For å opprette en tillitspolicy i IAM, oppgi følgende kommando til CLI:
For Windows
notepad trust-policy.json
Bytt ut trust-policy.json med navnet på din preferanse for polisen.
For Linux OS
fordi trust-role-policy.json
Bytt ut trust-policy.json med navnet på din preferanse for polisen.
Brukere kan bruke hvilken som helst tekstredigerer etter eget ønske. For denne demoen bruker vi notisblokken:
Dette åpner notisblokken for å lage tillitspolicyen. Lim inn følgende policy i notisblokken og trykk 'CTRL + S' fra tastaturet for å bruke og lagre endringer:
'Versjon' : '2012-10-17' ,
'Uttalelse' : {
'Effekt' : 'Tillate' ,
'Major' : {
'AWS' : 'arn:aws:iam::012345678910:bruker/profilbruker'
} ,
'Handling' : 'sts:AssumeRole'
}
}
I retningslinjene ovenfor: AWS: Erstatt verdien 'arn:aws:iam::012345678910:user/policy-user' med ARN for IAM-brukeren opprettet tidligere i denne delen.
Retningslinjene er redigert i notisblokken:
Deretter vil vi opprette en IAM-rolle og knytte tillitspolicyen ovenfor til den. Bruk følgende kommando for å opprette en IAM-rolle:
I den ovennevnte kommandoen:
-
- –rollenavn: Bytt ut 'min rolle' med IAM-rollenavnet du velger.
- – anta-rolle-policy-dokument: Bytt ut begrepet i dette feltet 'trust-policy.json' med IAM-trustpolicyens navn
IAM-rollen er opprettet. Lagre IAM-rollen. Lagre ARN for IAM-rollen som uthevet i følgende bilde. Denne ARN vil bli brukt under konfigurering av profilen til brukeren:
Tillitspolicyen knyttet til IAM identifiserer om brukeren er klarert eller ikke for å påta seg rollen. Tillatelsespolicyen avgjør om IAM-rollen har den nødvendige tillatelsen til å utføre en bestemt handling med AWS-tjenester eller ikke.
Ettersom tillitspolicyen er knyttet til IAM-rollen, er neste trinn å knytte tillatelsespolicyen til IAM-rollen. Nedenfor nevnte kommando vil bli brukt til å knytte tillatelsespolicy til IAM-rollen:
aws iam attach-rolle-policy --rollenavn min rolle --policy-arn 'arn:aws:iam::aws:policy/AmazonS3ReadOnlyAccess'
Her er tillatelsespolicyen knyttet til IAM-rollen via CLI:
Trinn 4: Konfigurer profil
For at brukeren skal påta seg denne rollen, vil vi først konfigurere denne profilen innenfor legitimasjonen til AWS. For å legge ved disse midlertidige legitimasjonene, oppgi følgende kommando:
notisblokk ~ / .aws / konfig
Bonustips: Løs 'Path not spesifisert' i Notisblokk
Konfigurasjonsfilen vil inneholde [standard]-innstillingen til AWS CLI. Imidlertid, hvis notisblokken viser 'Systemet kan ikke finne den angitte banen', skriv inn kommandoen nedenfor:
notisblokk .aws / konfig
Linux-brukere kan bruke 'fordi' editor for å konfigurere profilen. Brukere kan bruke hvilken som helst editor for å åpne konfigurasjonsfilen til AWS på den lokale maskinen:
Rediger følgende endringer i konfigurasjonsfilen som er åpnet i Notisblokken:
rolle_arn = arn:aws:iam::012345678910:rolle / min rolle
kildeprofil =profil-bruker
I utdraget ovenfor:
-
- rolle_arn: Erstatt verdien 'arn:aws:iam::012345678910:role/myrole' med ARN for IAM-rollen.
- kildeprofil: I dette feltet oppgir du navnet på IAM-brukeren som ble opprettet i trinn 1 av denne metoden.
Etter å ha gjort de nødvendige endringene, trykk 'CTRL + S' fra tastaturet for å bruke og lagre endringer:
Nå, for å bekrefte om brukeren nå kan liste opp S3-bøttene eller ikke, oppgi følgende kommando til CLI:
I kommandoen ovenfor: –profil-bruker: I dette feltet erstatter du verdien 'profile-use' med navnet du angir i konfigurasjonsfilen.
Ettersom vi har spesifisert 'profil-bruker' i konfigurasjonsfilen, vil vi derfor bruke samme navn med kommandoen i CLI. Tidligere kunne ikke brukeren få tilgang til S3-tjenesten til AWS, da ingen tillatelser ble tildelt den. IAM-rollen har tillatelse til 'ReadOnlyAccess' for S3-bøtten, og derfor, ved å påta seg denne rollen, kan brukeren liste bøttene fra S3-dashbordet:
Det er alt fra denne metoden for opplæringen.
Metode 3: Bruke MFA (Multi-Factor Authentication)
Ved å aktivere Multi-Factor Authentication, kan brukeren konfigurere et ekstra lag med sikkerhet til brukerens konto. Med MFA aktivert kan ikke uautoriserte brukere få tilgang til en brukers konto selv om de oppgir passord og brukernavn. MFA er en sekssifret kode som kreves for å logge på kontoen. For å lære mer om multifaktorautentisering, se denne artikkelen:
Følgende er trinnene for å påta seg en rolle med MFA via CLI:
Trinn 1: Opprett en IAM-bruker og aktiver MFA
For dette trinnet kan brukeren enten bruke CLI for å opprette brukeren eller få tilgang til AWS Management Console. Logg på root-brukerkontoen ved å bruke følgende kommando:
aws konfigurere
Utgangen av kommandoen er gitt som følger:
For å opprette en bruker, oppgi følgende kommando til CLI:
I kommandoen ovenfor: –brukernavn: Bytt ut 'mfa-bruker' med det IAM-brukernavnet du velger.
Brukeren er opprettet. Lagre ARN-en til brukeren slik det vil bli påkrevd senere i denne delen. For øyeblikket har denne brukeren ikke blitt tildelt noen tillatelser:
For å aktivere MFA, besøk AWS Management Console og søk etter IAM-tjenesten. Klikk på den fra de viste resultatene:
Klikk på alternativet Brukere fra venstre navigasjonsrute i IAM-tjenesten. Klikk på brukernavnet fra brukerdashbordet for å konfigurere MFA:
På det neste grensesnittet, trykk på 'Sikkerhetslegitimasjon' alternativ:
Rull ned til Multifaktorautentisering og klikk på 'Tilordne MFA-enhet' knapp:
Gi en meningsfylt navn i Enhetsnavn tekstfeltet på det viste grensesnittet:
Rull ned til MFA-enhetsdelen. Brukeren blir presentert med ulike alternativer for å aktivere MFA, for eksempel ved å skanne QR-koden, via sikkerhetsnøkkelen eller TOTP-token for maskinvare. For denne demoen, velg 'Autentiseringsapp' alternativ:
Trykk på 'Neste' knappen nederst i grensesnittet for å gå videre:
Klikk på 'Vis QR-kode' som vist i bildet nedenfor:
Start applikasjon på mobilen eller bærbar PC for å skanne QR-koden. Trykk på «+» alternativ fra Symantecs VIP-grensesnitt:
På Play-butikken er Symantec VIP navngitt som VIP Access.
På det neste grensesnittet til Symantec VIP klikker du på Skann QR kode knappen nederst i grensesnittet:
Skann QR-koden fra AWS MFA Autentiseringsappgrensesnittet vises. Denne koden vil generere en rekke koder som kreves for å logge på IAM-brukerens konsoll:
Symantec VIP-appen vil generere sekssifret OTP etter skanning av QR-koden. Disse kodene vil fortsette å komme etter hver 30 sekunder . Skjermbildet nedenfor viser de to kodene som genereres:
Oppgi kodene til MFA-kode 1 og MFA-kode 2 tekstfelt på Authenticator App-grensesnittet til MFA. Klikk på 'Legg til MFA' knappen etterpå for å aktivere funksjonaliteten:
MFA har blitt aktivert for IAM-brukeren. Dette kan verifiseres av 'Multi-faktor autentisering (MFA)' delen av 'Sikkerhetslegitimasjon' kategorien av IAM-bruker . Fra denne delen lagrer du verdien av Identifikator ettersom den vil være nødvendig mens du tar rollen:
Trinn 2: Legg ved policy med bruker
For at en bruker skal påta seg en rolle, må brukeren være i stand til å liste opp IAM-rollen for å bestemme hvilken rolle han skal påta seg og tillatelsen for å påta seg rollen. For å utstyre brukeren med den nødvendige tillatelsen, følg av metode 1 i denne opplæringen
Trinn 3: Lag tillitspolicy og IAM-rolle
Det neste trinnet er å lage en tillitspolicy for å avgjøre om brukeren er en klarert enhet eller ikke. Denne tillitspolicyen vil deretter bli knyttet til IAM-rollen. For å opprette Trust-policyen og IAM-rollen, naviger til ledeteksten og følg av metode 1 i denne artikkelen.
Trinn 4: Opprett en tilgangsnøkkel
For at brukeren skal bli autorisert og autentisert, genereres et par tilgangsnøkler som er globalt unike på tvers av AWS-plattformen. Disse nøkkelparene brukes på tidspunktet for pålogging til AWS-kontoen. For å opprette tilgangsnøkler for IAM-brukeren, følg av metode 1 i denne artikkelen.
Trinn 5: Konfigurer legitimasjon
AWS-brukeren kan bare få tilgang til AWS-ressursene og -tjenestene hvis legitimasjonen er riktig konfigurert. I denne delen av metoden vil vi konfigurere legitimasjonen til IAM-brukeren ved å gi tilgangsnøkkelen og hemmelig tilgangsnøkkel til kommandolinjegrensesnittet. For dette formålet, følg av metode 1 i denne opplæringen.
Trinn 6: Ta på deg IAM-rollen
Etter å ha tilknyttet IAM-rollen og implementert Trust-policyen, kan brukeren nå påta seg IAM-rollen. For dette formålet, oppgi følgende kommando til CLI:
aws iam opprette-tilgangsnøkkel --brukernavn mfa-bruker
Her er nøkkelen opprettet for IAM-brukeren. Lagre AccessKeyId og SecretAccessKey ettersom de kreves for å logge på AWS-kontoen:
Det neste trinnet er å konfigurere tilgangsnøklene i AWS CLI. Bruk kommandoen nedenfor for å konfigurere CLI:
Oppgi tilgangsnøkkelen og hemmelig tilgangsnøkkel til CLI for konfigurasjoner:
For å bekrefte om IAM-brukeren har logget på AWS CLI, bruk følgende kommando:
Utgangen av kommandoen er gitt som følger, noe som indikerer at brukeren har logget på AWS-konsollen:
Brukeren har tillatelse til å liste opp IAM-rollene i AWS-kontoen. Kommandoen gitt nedenfor brukes til å liste opp IAM-rollene:
I kommandoen ovenfor: Rollenavn: I dette feltet erstatter du verdien 'mfa-role' med navnet på IAM-rollen din.
Utgangen av kommandoen er gitt som følger:
For å påta IAM-rollen med MFA, bruk anta rolle-kommandoen med tilleggsparametere som serienummer og token-kode. Gi følgende kommando til CLI:
I kommandoen ovenfor:
-
- –rolle-arn: Erstatt verdien av dette feltet med ARN for IAM-rollen din.
- –navn på rolleøkt: I dette feltet kan brukeren angi et valgfritt øktnavn.
- -serienummer: Erstatt verdien til dette feltet med identifikatorverdien fra MFA-grensesnittet som ble lagret tidligere.
- –token-kode: Denne verdien skal erstattes av gjeldende kode som vises i Symantecs VIP-grensesnitt.
Den gjeldende koden vist i Symantec VIP er gitt som følger. Den samme koden vil bli brukt i –token-code-verdien til kommandoen:
Utdataene fra kommandoen vil inneholde den midlertidige legitimasjonen som et økttoken, tilgangsnøkkel, hemmelig tilgangsnøkkel, etc:
Trinn 7: Konfigurer miljøvariabler
Tilgangsnøklene og sesjonstokenet som returneres vil nå bli brukt til å etablere den sesjonsbaserte påloggingen og til å påta seg rollen. Den detaljerte implementeringen for å konfigurere miljøet er diskutert i av metode 1.
Siste tanker
For å påta seg en rolle ved å bruke CLI, er det tre metoder, dvs. via STS (sikkerhetstokentjeneste), –profilparameter eller MFA (Multi-Factor Authentication). For at en bruker skal påta seg en rolle, må en tillitspolicy etableres først. Denne tillitspolicyen avgjør om brukeren er en klarert enhet eller ikke. Denne funksjonaliteten er nødvendig ettersom den ivaretar sikkerhetsproblemene til IT-eksperter og enkeltpersoner. Videre kan brukeren bare påta seg rollen hvis den er utstyrt med de nødvendige tillatelsene.
Når en bruker påtar seg en rolle i AWS, opprettes en sesjonsbasert pålogging for å gi tidsbegrenset tilgang til brukeren med de ønskede tillatelsene. Et token genereres som utløper etter en bestemt tid, og dermed kan brukeren ikke lenger utføre den administrative oppgaven med AWS-ressurser. Denne artikkelen gir en praktisk implementering av de tre metodene for å påta seg en rolle i AWS CLI.