Hvordan påta seg en IAM-rolle ved å bruke AWS CLI?

Hvordan Pata Seg En Iam Rolle Ved A Bruke Aws Cli



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?



Siste tanker



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

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:

aws konfigurere


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.

aws iam opprette-policy --policy-navn brukerpolicy --policy-dokument fil: // user-policy.json


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:

aws iam liste-vedlagt-bruker-policyer --brukernavn demo-bruker


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:

aws iam liste-vedlagt-rolle-politikk --rollenavn brukerrolle


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:

aws sts get-ringer-identitet


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:

aws ec2 describe-instances --spørsmål 'Reservasjoner[*].Forekomster[*].[VpcId, InstanceId, ImageId, InstanceType]'


Utgangen av kommandoen er gitt som følger:


Oppgi nå følgende kommando for å bekrefte om brukeren har tilgang til S3-bøtten:

aws s3 ls


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:

aws sts påta-rolle --rolle-arn 'arn:aws:iam::123456789012:rolle/eksempel-rolle' --navn på rolleøkt AWSCLI-økt


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:

aws s3 ls


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:

aws ec2 describe-instances --spørsmål 'Reservasjoner[*].Forekomster[*].[VpcId, InstanceId, ImageId, InstanceType]'


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:

aws sts get-ringer-identitet


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:

aws konfigurere


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:

aws konfigurere --profil profil-bruker


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:

aws s3 ls --profil profil-bruker


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:

aws iam skape-rolle --rollenavn min rolle --anta-rolle-policy-dokument fil: // trust-policy.json


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:

[ profil profil-bruker ]
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:

aws s3 ls --profil profil-bruker


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:

aws iam opprette-bruker --brukernavn mfa-bruker


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:

aws konfigurere


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:

aws sts get-ringer-identitet


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:

aws iam liste-roller --spørsmål 'Roler[?Rollenavn == 'mfa-rolle'].[Rollenavn, Arn]


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:

aws sts anta-rolle --rolle-arn 'arn:aws:iam::123456789012:rolle/m-rolle' --navn på rolleøkt AWSCLI-økt --serienummer 'arn:aws:iam::012345678910:mfa/admindevice' --token-kode '123456'


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.