Hvordan påtager man sig en IAM-rolle ved hjælp af AWS CLI?

Hvordan Patager Man Sig En Iam Rolle Ved Hjaelp Af Aws Cli



Da AWS leverer adskillige tjenester og enorme fordele, er det kun naturligt, at sikkerhedsbekymringerne blev rejst af it-eksperterne. For at løse disse sikkerhedsproblemer blev IAM-tjenesten introduceret af AWS. AWS IAM er en af ​​kernewebtjenesterne, der giver brugerne mulighed for at sikre AWS-ressourcer. IAM leverer funktionaliteten til central adgangsstyring af AWS-tjenesterne ved at definere tilladelserne for forskellige brugere.

Hurtig disposition

I denne artikel lærer du om:







Hvad er AWS IAM-rollen?
Hvad er rollen i AWS?
Hvordan påtager man sig en IAM-rolle ved hjælp af AWS CLI?



Afsluttende tanker



Med IAM-roller og -tilladelser kan vi bestemme den autentificerede og autoriserede adgang til AWS-tjenesterne. Disse roller og tilladelser kan kun tildeles af root-brugeren (ejeren) af AWS-kontoen.





Hvad er AWS IAM-rollen?

IAM-rollen er en identitet, der er oprettet af root-brugeren i AWS-kontoen. Denne identitet er tildelt specifikke tilladelser, der definerer omfanget af adgang for IAM-rollen til AWS-ressourcer. Disse tilladelser kan enten være AWS-administreret eller specialdefineret af root-brugeren.

En IAM-rolle minder meget om IAM-brugeren, bortset fra at IAM-rollen er en identitet med visse tilladelser, mens brugeren kan påtage sig disse roller for at udføre visse funktioner. De tilladelser, der er givet til rollen, definerer, hvilke handlinger der kan udføres med denne identitet (IAM-rolle).



Hvad er rollen i AWS?

Antag, at rolle er en af ​​funktionerne i AWS IAM-tjenesten, der tillader brugeren at handle med AWS-tjenester, selvom tilladelserne til at få adgang til eller manipulere ressourcen i tjenesten ikke er tildelt til brugeren. Disse tilladelser tildeles indirekte til brugeren, når en rolle påtages. Et sæt midlertidige legitimationsoplysninger sammen med et sessionsbaseret login bruges til at få adgang til AWS-ressourcerne.

Disse midlertidige legitimationsoplysninger inkluderer en hemmelig adgangsnøgle, adgangsnøgle-id og sikkerhedstoken. IAM-roller oprettet af AWS-rodbrugeren kan overtages af de andre brugere på AWS-kontoen eller de brugere, hvis ARN er nævnt i rollens politik. Politikken, der indeholder ARN for brugerne eller ressourcerne, er kendt som Tillidspolitik .

Hvad er forskellen mellem tilladelsespolitikken og tillidspolitikken?

Inden man implementerer antag-rolle-funktionaliteten via forskellige metoder, er der to kernekoncepter, som skal forstås af brugeren. Der er to slags politikker i IAM-tjenesten:

    • Tillidspolitik: En tillidspolitik bestemmer, hvem der kan påtage sig en specifik IAM-rolle. For at en rolle skal påtages af en bruger, er brugerens ARN nævnt i tillidspolitikken for IAM-rollen. Denne tillidspolitik bestemmer, om brugeren eller ressourcerne er en betroet enhed til at påtage sig denne rolle.
    • Tilladelsespolitik: Denne politik bestemmer, hvad en bruger kan gøre, eller hvilke handlinger der kan udføres med rollen.

Hvordan påtager man sig en IAM-rolle ved hjælp af AWS CLI?

At påtage sig en rolle svarer til at forklæde dig selv som en anden bruger, der er autentificeret og autoriseret til at udføre visse handlinger. Mens den antager en identitet, har AWS sikret, at sikkerheden forbliver intakt.

Lad os forstå, hvordan Assume-rolle-funktionaliteten fungerer ved at overveje følgende eksempel.

For eksempel, der findes en bruger på AWS-kontoen, som ikke er blevet tildelt nogen tilladelser til S3-bøtten. Det 'Skrivebeskyttet adgang' kaldes tilladelsespolitikken, som er knyttet til en IAM-rolle. For at brugeren skal påtage sig denne rolle, er brugerens ARN nævnt i IAM-rollens politik. Denne politik kaldes nu som 'tillidspolitik' og det er forskelligt fra tilladelsespolitikken. Tillidspolitikken er afgørende, da den hjælper AWS med at afgøre, om brugeren er en autoriseret enhed eller ej.

Bemærk, at ARN er nævnt i Trust-politikken og ikke i Tilladelsespolitikken for IAM-rollen. Ved at påtage sig en rolle kan brugeren udføre nogle få administrative handlinger defineret af rollens tilladelsespolitik. Disse handlinger omfatter tilføjelse, sletning, ændring eller gendannelse af en ressource osv.

Følgende er de tre metoder til at påtage sig en rolle med AWS CLI:

Metode 1: Brug af STS (Security Token Service)

Brugerne kan påtage sig en rolle ved at udføre kommandoerne i STS-sektionen (Secure Token Service), som returnerer et sæt midlertidige legitimationsoplysninger. De midlertidige legitimationsoplysninger bruges til at etablere et sessionsbaseret login for at foretage API-kald til ressourcerne. Der er dog to undtagelser mens du bruger STS, dvs. GetFederationToken og GetSessionToken.

Brugeren er begrænset fra at få adgang til disse tokens for at sikre de fortrolige oplysninger om Session og Federation Tokens. Så sikkerheden under ingen omstændigheder kompromitteres. Ved at påtage sig en rolle kan en bruger hæve deres tildelte privilegier.

I dette afsnit af artiklen vil vi anmode om et sæt midlertidige legitimationsoplysninger ved hjælp af STS-kommandoer. Nedenfor er trinene:

Trin 1: Opret en bruger- og brugerpolitik

Først vil vi oprette en IAM-bruger uden tilladelser. Til dette formål skal du åbne CMD fra startmenuen i Windows:


Kun den root bruger kan skab en IAM bruger på AWS-kontoen. Log derfor ind på AWS root-kontoen ved at bruge følgende kommando:

aws konfigurere


Legitimationsoplysningerne er allerede konfigureret i CLI'en for denne demo som vist i outputtet af kommandoen:


Lær mere:

Til oprette en IAM-bruger , giv følgende kommando til CLI:

aws iam oprette-bruger --brugernavn demo-bruger


Udskift demo-bruger med din IAM brugernavn.

Gem 'Arn' givet i outputtet af kommandoen, som det vil være påkrævet hvornår skabe det Tillidspolitik :


Læs mere:

Næste skridt er at tilladelse brugeren (demobruger ) til påtage sig en rolle . Til dette formål skal du oprette en JSON-fil bruger evt tekst editor du foretrækker. Til denne demo har vi brugt Notesblok som specificeret i nedenstående kommando:

Til Windows

notesblok user-policy.json


Udskift bruger-politik med dit IAM-politiknavn.

For Linux OS

fordi user-policy.json


I øjeblikket bruger vi Windows-operativsystemet til denne demo:


Dette åbner notesblokken. Indsæt følgende politik i notesblokken, og tryk på 'CTRL + S' fra tastaturet for at gemme ændringer:

{
'Version' : '2012-10-17' ,
'Udmelding' : [
{
'Effekt' : 'Give lov til' ,
'Handling' : [
'ec2:Beskriv*' ,
'iam:ListRoles' ,
'sts:AssumeRole'
] ,
'Ressource' : '*'
}
]
}


Nedenfor gives en kort beskrivelse af den angivne politik:

    • ec2:Beskriv: Denne tilladelse angiver, at brugeren kan se eller liste alle AMI'er, snapshots eller EC2-forekomster
    • iam:ListRoles: Denne tilladelse specificerer, at brugeren kan liste alle roller i IAM-tjenesten.
    • sts:AssumeRole: Denne tilladelse repræsenterer, at brugeren kan påtage sig en rolle defineret i IAM-tjenesten.

Her er politikken blevet redigeret i notesblokken og gemt:


Hver AWS ressource er tildelt en Adgangsressourcenavn (ARN) hvilken identificerer entydigt ressourcen. For at bestemme politikkens ARN skal du bruge nedenstående kommando.

aws iam oprette-politik --policy-navn bruger-politik --politik-dokument fil: // user-policy.json


I den ovennævnte kommando:

    • –politik-navn: Udskift værdien 'brugerpolitik' med ethvert forsikringsnavn, du foretrækker.
    • –politik-dokument: I dette felt skal du erstatte ' user-policy.json' med json-filens navn, der indeholder politikken for brugeren.

Outputtet af den ovennævnte kommando er som følger. Gem 'Arn' nævnt i outputtet af politikken, da det vil være påkrævet, når denne politik vedhæftes til brugeren:

Trin 2: Vedhæft politik med brugeren

Denne politik giver brugeren mulighed for at angive EC2 tilfælde , Venner , osv. Når brugeren påtager sig en rolle med en anden tilladelse, vil brugeren kun være i stand til at udføre den specifikke handling som tilladt af tilladelsespolitikken.

For at vedhæfte politikken med den bruger, der er oprettet tidligere i dette afsnit, skal du bruge følgende kommando:

aws iam attach-user-policy --brugernavn demo-bruger --politik-arn 'arn:aws:iam::123456789:policy/user-policy'


I den ovennævnte kommando:

    • –brugernavn: Udskift 'demo-bruger' i -brugernavn felt med dit IAM-brugernavn.
    • –policy-arn: Tilsvarende i –politik-arn, angiv 'Arn' fra outputtet af den forrige kommando, dvs. –create-policy.

Ved at udføre kommandoen efter at have foretaget de nødvendige ændringer, er politikken blevet knyttet til brugeren:


For at kontrollere, om politikken er knyttet til brugeren, skal du angive følgende kommando til CLI:

aws iam liste-vedhæftede-bruger-politikker --brugernavn demo-bruger


Udskift demo-bruger med din IAM brugernavn angivet under oprettelse af brugeren.

Outputtet af følgende kommando bekræfter, at politikken er blevet knyttet til brugeren med succes:

Trin 3: Opret en tillidspolitik og IAM-rolle

Et tillidsforhold etableres, når en ressource eller en brugers ARN er angivet i en politik. Denne funktionalitet gør det så brugerne eller enheden i stand til at udføre bestemte handlinger, da de anses for at have tillid til af politikken.

I dette trin vil vi oprette en politik, der etablerer tillidsforholdet mellem IAM-rollen og brugeren. Denne tillidspolitik vil blive knyttet til IAM-rollen. IAM-rollen overtages derefter af brugeren, hvilket indirekte vil tillade brugeren at udføre de handlinger, der er specificeret i politikken.

For at oprette en tillidspolitik gives kommandoerne som følger:

Til Windows

notesblok trust-role-policy.json


Udskift trust-role-policy.json med navnet på din præference for policen.

For Linux OS

fordi trust-role-policy.json


Udskift trust-role-policy.json med navnet på din præference for policen.

Tillidspolitikken følger JSON-format som angivet af .json udvidelse i følgende kommando:


Dette åbner notesblokken. sæt ind det følgende politik i notesblokken og tryk på 'CTRL + S' knappen fra tastaturet for at gemme ændringer. Brugerens ARN kan også kopieres fra brugerens dashboard på IAM-konsollen. Til dette formål skal du besøge IAM-dashboardet og klikke på brugerens navn. Fra den viste konfiguration skal du kopiere ARN for brugeren, der vises i sektionen Resume.:

{
'Version' : '2012-10-17' ,
'Udmelding' : {
'Effekt' : 'Give lov til' ,
'Major' : {
'AWS' : 'arn:aws:iam::123456789012:bruger/eksempelbruger'
} ,
'Handling' : 'sts:AssumeRole'
}
}


I ovennævnte politik:

    • AWS: Udskift AWS-feltværdi 'arn:aws:iam::123456789012:bruger/eksempel-bruger' med ARN for brugeren som blev vist i outputtet af kommandoen –create-user.

Brugeren kan begrænse andre brugere i at påtage sig IAM-rollen ved at angive brugerens ARN i 'AWS' Mark:


Læs mere:

Opret nu en IAM-rolle og vedhæft tillidspolitikken med den. For at oprette en IAM-rolle skal du bruge nedenstående kommando:

aws iam skabe-rolle --rollenavn bruger-rolle --antage-rolle-politik-dokument fil: // trust-role-policy.json


Følgende er beskrivelsen af ​​de ovennævnte felter:

    • –rollenavn: Dette felt bruges til at indtaste det navn, der vil blive tildelt denne IAM-rolle. Erstat 'bruger-rolle'-værdien med IAM-rollenavnet efter eget valg.
    • –påtage-rolle-politik-dokument: I dette felt angives stien som angivet i kommandoen. Erstat trust-role-policy.json med det politiknavn, som du har angivet i det foregående afsnit.

Ved at udføre denne kommando vil den returnere flere stykker information i outputtet, f.eks. ARN, Path, ID osv.:


Læs mere:

Ved at påtage sig denne rolle, vil brugeren være i stand til at udføre 'Skrivebeskyttet adgang' action med S3 skovlen. Kommandoen gives som følger:

aws iam attach-rolle-policy --rollenavn bruger-rolle --politik-arn 'arn:aws:iam::aws:policy/AmazonS3ReadOnlyAccess'


I ovenstående kommando:

    • –rollenavn: Erstat ' brugerrolle' i –rollenavn-feltet med IAM-rollens navn som du har angivet tidligere i denne øvelse.
    • –policy-arn: Det arn, der er angivet i –policy-arn, henviser til ReadOnlyAccess-tilladelsen for S3-bøtten.

På dette billede er rollen blevet tildelt ReadOnlyAccess-tilladelsen til S3-bøtten:


For at kontrollere, om tilladelsen er blevet tildelt rollen eller ej, skal du bruge følgende kommando:

aws iam liste-vedhæftede-rolle-politikker --rollenavn bruger-rolle


Udskift 'brugerrolle' med dit IAM-rollenavn.

Det 'AmazonS3ReadOnly Access' tilladelse er knyttet til IAM-rollen. Outputtet af kommandoen er givet som følger:

Trin 4: Opret adgangsnøgler

I dette afsnit vil vi oprette adgangsnøgler til brugeren. Adgangsnøglerne vil blive brugt til at logge ind på AWS-kontoen:

aws iam oprette-adgang-nøgle --brugernavn demo-bruger


Udskift demo-bruger med dit IAM-brugernavn givet på tidspunktet for oprettelse af en bruger.

Her har kommandoen returneret et sæt adgangsnøglepar (AccessKeyId og Secret Access Key) med yderligere detaljer såsom oprettelsesdato, status osv. Gemme AccessKeyId og SecretAccessKey, som de kræves senere i selvstudiet:


Læs mere:

Trin 5: Konfigurer adgangsnøgle og bekræft IAM-brugeren

For at konfigurere adgangsnøglen skal du angive følgende kommando til CMD'en og derefter indtaste adgangsnøgle-id'et og hemmelig adgangsnøgle:

aws konfigurere


Angiv adgangsnøgle-id'et og den hemmelige adgangsnøgle til CLI'en, der blev oprettet i trin 4 i dette afsnit. For regionen har vi beholdt standardindstillingerne. Brugere kan konfigurere ethvert outputformat til standardoutputformatet. Til denne demo har vi specificeret JSON format:


For at kontrollere, om IAM-brugeren er blevet konfigureret, skal du angive følgende kommando til CLI:

aws sts get-ringer-identitet


Outputtet af kommandoen indikerer, at 'demo-bruger' er blevet konfigureret med succes og er i øjeblikket logget ind på AWS-kontoen:


For at bestemme, at IAM-brugeren kan liste EC2-instanserne og ikke har adgang til S3-bøtten i øjeblikket, skal du bruge følgende kommando:

aws ec2 describe-instances --forespørgsel 'Reservationer[*].Forekomster[*].[VpcId, InstanceId, ImageId, InstanceType]'


Outputtet af kommandoen er givet som følger:


Angiv nu følgende kommando for at bekræfte, om brugeren kan få adgang til S3-bøtten:

aws s3 ls


Dette vil vise 'Adgang nægtet' fejl, der indikerer, at brugeren ikke har tilladelse til at få adgang til S3-bøtten:

Trin 6: Påtag IAM-rollen

Brugeren har tilladelse til at angive IAM-rollerne i AWS-kontoen. Derfor, for at påtage os rollen, vil vi først erhverve den nødvendige information såsom ARN ved at udføre følgende kommando:

aws iam liste-roller --forespørgsel 'Roller[?Rollenavn == 'brugerrolle'].[Rollenavn, Arn]'


Erstat 'brugerrollen' med IAM-rollenavnet i feltet 'Rolenavn'.

ARN er blevet givet i outputtet af den ovennævnte kommando:


Nu hvor vi har ARN for IAM-rollen, kan vi påtage os rollen ved at bruge følgende kommando:

aws sts påtage sig-rolle --rolle-arn 'arn:aws:iam::123456789012:rolle/eksempel-rolle' --rollesession-navn AWSCLI-session


I ovenstående kommando:

    • –rolle-arn: Erstat den nævnte værdi for –role-arn med IAM-rollens ARN.
    • –rollesession-navn: Brugeren kan angive et hvilket som helst præferencenavn for dette felt.

Ved at udføre den ovennævnte kommando er et sæt midlertidige legitimationsoplysninger blevet returneret. Disse midlertidige legitimationsoplysninger vil blive brugt til at påtage sig IAM-rollen med den ønskede tilladelse, dvs. ReadOnlyAccess. AccessKeyId og SecretAccessKey vil blive brugt under konfiguration af disse midlertidige legitimationsoplysninger:


Her er en kort beskrivelse af outputtet af kommandoen:

    • SessionToken: Sessionstokenet bruges til at oprette det sessionsbaserede login. Gem værdien af ​​dette felt, da det vil være nødvendigt, mens du konfigurerer legitimationsoplysningerne.
    • Udløb: Sessionstokenet har en udløbsdato og et klokkeslæt. Tokenet vil ikke være til nogen nytte efter den angivne tid, og brugeren vil ikke være i stand til at påtage sig rollen.

Trin 7: Konfigurer miljøvariablen

For at konfigurere de midlertidige legitimationsoplysninger, bruger vi kommandoen 'set' til Windows og angiver derefter værdien af ​​adgangsnøgle-id'et, hemmelig adgangsnøgle, sessionstoken osv.:

Til Windows

sæt AWS_ACCESS_KEY_ID =RoleAccessKeyID


Erstat RoleAccessKeyID med det Access Key ID, der er blevet returneret af kommandoen i trin 6.

For Linux OS

eksport AWS_ACCESS_KEY_ID =RoleAccessKeyID


Erstat RoleAccessKeyID med det Access Key ID, der er blevet returneret af kommandoen i trin 6.

Adgangsnøglen er blevet konfigureret:


Dernæst vil vi konfigurere den hemmelige adgangsnøgle ved at bruge kommandoen 'set' til Windows:

Til Windows

sæt AWS_SECRET_ACCESS_KEY =RoleSecretKey


Erstat RoleSecretKey med den hemmelige adgangsnøgleværdi, der er blevet returneret af kommandoen i trin 6.

For Linux OS

eksport AWS_SECRET_ACCESS_KEY =RoleSecretKey


Erstat AWS_SECRET_ACCESS_KEY med den hemmelige adgangsnøgle, der er blevet returneret af kommandoen i trin 6.

Den hemmelige adgangsnøgle er blevet konfigureret med succes:


Til sidst konfigurerer vi sessionstokenet til at etablere det sessionsbaserede login. Til dette formål skal du bruge nedenstående kommando:

Til Windows

sæt AWS_SESSION_TOKEN =RolesessionToken


Erstat RoleSessionToken med Session Token-værdien, der er blevet returneret af kommandoen i trin 6.

For Linux OS

eksport AWS_SESSION_TOKEN =RolesessionToken


Erstat RoleSessionToken med Session Token-værdien, der er blevet returneret af kommandoen i trin 6.

Værdien af ​​sessionstokenet er blevet konfigureret med succes:


Tryk på for at kopiere værdien af ​​sessionstokenet fra CMD 'CTRL + SHIFT + C' .

Efter konfiguration af miljøvariablerne skal du kontrollere ved at bruge følgende kommando, om rollen er blevet påtaget af brugeren:

aws sts get-ringer-identitet


Outputtet af kommandoen bekræfter, at IAM-rollen har været med succes antaget af brugeren som ARN-afkastet er 'arn:aws:sts::123456789012:assumed-role/user-role/AWSCLI-Session' i stedet for 'arn:aws:iam::123456789012:bruger/demobruger':


Da rollen indeholder ReadOnlyAccess-tilladelsen, bør brugeren være i stand til at tilmelde buckets nu. Til dette formål skal du angive følgende kommando til CLI:

aws s3 ls


Outputtet af kommandoen henter alle S3-bøtten, der i øjeblikket er konfigureret i AWS-kontoen:


Brugeren vil dog ikke kunne få adgang til EC2-tjenesten, da den påtagne rolle ikke har tilladelse til EC2-tjenesten. For at bekræfte dette, brug følgende kommando:

aws ec2 describe-instances --forespørgsel 'Reservationer[*].Forekomster[*].[VpcId, InstanceId, ImageId, InstanceType]'


Tidligere var brugeren i stand til at få adgang til EC2-serviceoplysningerne. Men ved udførelse af den ovennævnte kommando, an 'Adgang nægtet' fejl er opstået. Brugeren har med succes påtaget sig IAM-rollen:


Det hele er fra dette afsnit.

Bonustip: Deaktiver miljøvariablerne

For at vende tilbage til IAM-brugeren, dvs. demobrugeren, kan brugeren fjerne miljøvariablerne ved at indstille miljøvariablerne til tomme strenge. Følgende er de givet kommandoer:

Til Windows

SÆT AWS_ACCESS_KEY_ID =
SÆT AWS_SECRET_ACCESS_KEY =
SÆT AWS_SESSION_TOKEN =


Til Linux

Brug nedenstående kommando:

deaktiveret AWS_ACCESS_KEY_ID AWS_SECRET_ACCESS_KEY AWS_SESSION_TOKEN


De ovennævnte kommandoer vil deaktivere miljøvariablerne:


Efter at have udført ovenstående kommandoer, skal konsollen nu returnere 'demo-bruger' som den aktuelt loggede bruger i stedet for den påtagne rolle, dvs. brugerrollen. Til dette formål vil vi bruge følgende kommando:

aws sts get-ringer-identitet


Outputtet af kommandoen indikerer, at den aktuelt loggede bruger er demobruger:


På samme måde, for at logge ind som root-bruger, følg 'C:\Users%USERPROFILE%.aws' sti og klik på legitimationsfilen:


I legitimationsfilen skal du erstatte værdierne for adgangsnøgle og hemmelig adgangsnøgle med rodbrugerens adgangsnøgle og hemmelig adgangsnøgle:


Angiv følgende kommando til CLI'en for at kontrollere, om legitimationsoplysningerne er konfigureret korrekt:

aws konfigurere


Her, på billedet nedenfor, kan vi se, at adgangsnøglen og hemmelig adgangsnøgle for root-brugeren er blevet konfigureret med succes:


Det er alt fra dette afsnit af selvstudiet.

Metode 2: Brug af –profile-parameter

En anden metode til at påtage sig rollen er ved at bruge feltet '–profile' i CLI. Dette afsnit af artiklen præsenterer den praktiske implementering af at påtage sig en rolle i AWS via –profil. Nedenfor er trinene til det:

Trin 1: Opret en IAM-bruger

For at oprette en IAM-bruger skal du logge ind på root-brugerkontoen via CLI ved at bruge følgende kommando:

aws konfigurere


Legitimationsoplysningerne er allerede konfigureret i CLI'en for denne demo som vist i outputtet af kommandoen:


Lær mere:

For at oprette en IAM-bruger skal du angive følgende kommando til CLI:

aws iam oprette-bruger --brugernavn profil-bruger


Brugeren er blevet oprettet. Gem brugerens ARN som vist på billedet nedenfor. ARN for denne IAM-bruger vil blive brugt senere i denne øvelse. I øjeblikket er der ingen tilladelser knyttet til denne IAM-bruger:


Læs mere:

Trin 2: Opret adgangsnøgle

I AWS er ​​hver bruger tildelt et par adgangsnøgler til login. For at oprette adgangsnøgler til denne bruger skal du angive følgende kommando til den:

aws iam oprette-adgang-nøgle --brugernavn profil-bruger


Denne kommando returnerer et sæt adgangsnøgler. Gemme det AccessKeyId og Hemmelig adgangsnøgle da det vil være nødvendigt, når du logger ind på AWS-kontoen:


Hvis vi nu logger ind på AWS CLI ved hjælp af disse AccessKeyId og SecretAccessKey og får adgang til enhver ressource, f.eks. S3 spand, den 'Adgang nægtet' fejl vil opstå. Dette skyldes, at der i øjeblikket ikke er nogen tilladelser knyttet til IAM-brugeren. For at logge ind på AWS CLI skal du bruge følgende kommando og angive adgangsnøgle-id'et og hemmelig adgangsnøgle som oprettet tidligere:

aws konfigurere --profil profil-bruger


Udskift 'profil-bruger' med det IAM-brugernavn, du har angivet, mens du oprettede brugeren.

Her har vi med succes logget ind på AWS CLI som IAM-bruger:


For at kontrollere, om denne bruger har nogen skrivebeskyttet tilladelse til S3-bøtten, skal du angive følgende kommando til CLI:

aws s3 ls --profil profil-bruger


Erstat profilbrugeren med det IAM-brugernavn, du har angivet, mens du oprettede brugeren.

Da denne bruger ikke er blevet tildelt nogen tilladelse af root-brugeren, vil det resultere i ' Adgang nægtet ' fejl:

Trin 3: Opret en tillidspolitik og IAM-rolle

En tillidspolitik bestemmer, om en bruger eller en AWS-ressource er en betroet enhed til at påtage sig rollen og erhverve tilladelserne. Dette tillidsforhold oprettes ved at angive ARN for IAM-brugeren eller AWS-ressourcen i Tilladelsespolitikken.

For at oprette en tillidspolitik inden for IAM skal du angive følgende kommando til CLI:

Til Windows

notesblok trust-policy.json


Udskift trust-policy.json med navnet på din præference for policen.

For Linux OS

fordi trust-role-policy.json


Udskift trust-policy.json med navnet på din præference for policen.

Brugere kan bruge en hvilken som helst teksteditor efter deres præference. Til denne demo bruger vi notesblokken:


Dette åbner notesblok til oprettelse af tillidspolitikken. Indsæt følgende politik i notesblokken, og tryk på 'CTRL + S' fra tastaturet for at anvende og gemme ændringer:

{
'Version' : '2012-10-17' ,
'Udmelding' : {
'Effekt' : 'Give lov til' ,
'Major' : {
'AWS' : 'arn:aws:iam::012345678910:bruger/profilbruger'
} ,
'Handling' : 'sts:AssumeRole'
}
}


I ovenstående politik: AWS: Erstat værdien 'arn:aws:iam::012345678910:user/policy-user' med ARN for den IAM-bruger, der blev oprettet tidligere i dette afsnit.

Politikken er blevet redigeret i notesblokken:


Dernæst vil vi oprette en IAM-rolle og knytte ovenstående tillidspolitik til den. Brug følgende kommando til at oprette en IAM-rolle:

aws iam skabe-rolle --rollenavn myrole --antage-rolle-politik-dokument fil: // trust-policy.json


I den ovennævnte kommando:

    • –rollenavn: Udskift 'myrole' med IAM-rollenavnet efter eget valg.
    • –påtage-rolle-politik-dokument: I dette felt skal du erstatte udtrykket 'trust-policy.json' med din IAM-tillidspolitiks navn

IAM-rollen er blevet oprettet med succes. Gem IAM-rollen. Gem ARN for IAM-rollen som fremhævet i det følgende billede. Dette ARN vil blive brugt under konfiguration af brugerens profil:


Tillidspolitikken knyttet til IAM identificerer, om brugeren er tillid til eller ej for at påtage sig rollen. Tilladelsespolitikken bestemmer, om IAM-rollen har den nødvendige tilladelse til at udføre en bestemt handling med AWS-tjenester eller ej.

Da tillidspolitikken er knyttet til IAM-rollen, er næste skridt at knytte tilladelsespolitikken til IAM-rollen. Nedenstående kommando vil blive brugt til at knytte tilladelsespolitik til IAM-rollen:

aws iam attach-rolle-policy --rollenavn myrole --politik-arn 'arn:aws:iam::aws:policy/AmazonS3ReadOnlyAccess'


Her er tilladelsespolitikken knyttet til IAM-rollen via CLI:

Trin 4: Konfigurer profil

For at brugeren skal påtage sig denne rolle, konfigurerer vi først denne profil inden for legitimationsoplysningerne for AWS. For at vedhæfte disse midlertidige legitimationsoplysninger skal du angive følgende kommando:

notesblok ~ / .aws / config


Bonustip: Løs 'Sti ikke angivet' i Notesblok

Konfigurationsfilen vil indeholde [standard]-indstillingen for AWS CLI. Men hvis notesblokken viser 'Systemet kan ikke finde den angivne sti', skal du indtaste nedenstående kommando:

notesblok .aws / config


Linux-brugere kan bruge 'fordi' editor til at konfigurere profilen. Brugere kan bruge enhver editor efter deres præference til at åbne AWS-konfigurationsfilen på den lokale maskine:


Rediger følgende ændringer i konfigurationsfilen, der er åbnet i Notesblok:

[ profil profil-bruger ]
rolle_arn = arn:aws:iam::012345678910:rolle / myrole
kildeprofil =profil-bruger


I ovenstående uddrag:

    • rolle_arn: Erstat værdien 'arn:aws:iam::012345678910:role/myrole' med ARN for IAM-rollen.
    • kildeprofil: I dette felt skal du angive navnet på den IAM-bruger, der blev oprettet i trin 1 i denne metode.

Efter at have foretaget de nødvendige ændringer, tryk på 'CTRL + S' fra tastaturet for at anvende og gemme ændringer:


For nu at kontrollere, om brugeren nu kan liste S3-bøtterne eller ej, skal du angive følgende kommando til CLI:

aws s3 ls --profil profil-bruger


I ovenstående kommando: –profil-bruger: I dette felt skal du erstatte værdien 'profil-brug' med det navn, du angiver i konfigurationsfilen.

Da vi har specificeret 'profil-bruger' i konfigurationsfilen, vil vi derfor bruge det samme navn med kommandoen i CLI. Tidligere var brugeren ikke i stand til at få adgang til S3-tjenesten fra AWS, da der ikke blev tildelt tilladelser til den. IAM-rollen har tilladelsen 'ReadOnlyAccess' til S3-bøtten, og ved at påtage sig denne rolle kan brugeren derfor liste buckets fra S3 Dashboard:


Det er alt fra denne metode til selvstudiet.

Metode 3: Brug af MFA (Multi-Factor Authentication)

Ved at aktivere Multi-Factor Authentication kan brugeren konfigurere et ekstra lag af sikkerhed til brugerens konto. Med MFA aktiveret kan uautoriserede brugere ikke få adgang til en brugers konto, selvom de angiver en adgangskode og et brugernavn. MFA er en sekscifret kode, der kræves for at logge ind på kontoen. Se denne artikel for at lære mere om multifaktorgodkendelse:

Følgende er trinene til at påtage sig en rolle med MFA via CLI:

Trin 1: Opret en IAM-bruger og aktiver MFA

Til dette trin kan brugeren enten bruge CLI til at oprette brugeren eller få adgang til AWS Management Console. Log ind på root-brugerkontoen ved at bruge følgende kommando:

aws konfigurere


Outputtet af kommandoen er givet som følger:


For at oprette en bruger skal du angive følgende kommando til CLI:

aws iam oprette-bruger --brugernavn mfa-bruger


I ovenstående kommando: –brugernavn: Udskift 'mfa-bruger' med IAM-brugernavnet efter eget valg.

Brugeren er blevet oprettet. Gem brugerens ARN, da det kræves senere i dette afsnit. I øjeblikket er denne bruger ikke blevet tildelt nogen tilladelser:


For at aktivere MFA skal du besøge AWS Management Console og søge efter IAM-tjenesten. Klik på det fra de viste resultater:


Klik på indstillingen Brugere fra venstre navigationsrude i IAM-tjenesten. Klik på brugernavnet fra brugerdashboardet for at konfigurere MFA:


På den næste grænseflade skal du trykke på 'Sikkerhedsoplysninger' mulighed:


Rul ned til Multi-Factor Authentication sektionen og klik på 'Tildel MFA-enhed' knap:


Giv en meningsfuldt navn i Enhedsnavn tekstfelt på den viste grænseflade:


Rul ned til MFA-enhedsafsnittet. Brugeren præsenteres for forskellige muligheder for at aktivere MFA, såsom ved at scanne QR-koden, via sikkerhedsnøglen eller hardware TOTP-token. Til denne demo skal du vælge 'Authenticator-app' mulighed:


Tryk på 'Næste' knap i bunden af ​​grænsefladen for at komme videre:


Klik på 'Vis QR-kode' som vist på billedet nedenfor:


Start applikation på din mobil eller bærbare computer for at scanne QR-koden. Tryk på '+' mulighed fra Symantecs VIP-grænseflade:


I Play Butik er Symantec VIP navngivet som VIP Access.

På den næste grænseflade af Symantec VIP skal du klikke på Scan QR-kode knap i bunden af ​​grænsefladen:


Scan QR-koden fra AWS MFA Authenticators app-grænseflade vises. Denne kode vil generere en række koder, der kræves for at logge ind på IAM-brugerens konsol:


Symantec VIP-appen vil generere sekscifret OTP efter scanning af QR-koden. Disse koder bliver ved med at komme efter hver 30 sekunder . Nedenstående skærmbillede viser de to koder, der genereres:


Angiv koderne til MFA kode 1 og MFA kode 2 tekstfelter på Authenticator App-grænsefladen i MFA. Klik på 'Tilføj MFA' knap bagefter for at aktivere funktionaliteten:


MFA er blevet aktiveret for IAM-brugeren. Dette kan verificeres af 'Multi-factor authentication (MFA)' afsnit af 'Sikkerhedsoplysninger' fanen af IAM bruger . Fra dette afsnit skal du gemme værdien af ​​identifikator, da det vil være nødvendigt, mens du påtager dig rollen:

Trin 2: Vedhæft politik med bruger

For at en bruger kan påtage sig en rolle, skal brugeren være i stand til at angive IAM-rollen for at bestemme, hvilken rolle der skal påtages og tilladelsen til at påtage sig rollen. For at udstyre brugeren med den nødvendige tilladelse, følg af metode 1 i denne øvelse

Trin 3: Opret tillidspolitik og IAM-rolle

Det næste trin er at oprette en tillidspolitik for at afgøre, om brugeren er en betroet enhed eller ej. Denne tillidspolitik vil derefter blive knyttet til IAM-rollen. For at oprette tillidspolitikken og IAM-rollen skal du navigere til kommandoprompten og følge af metode 1 i denne artikel.

Trin 4: Opret en adgangsnøgle

For at brugeren kan blive autoriseret og autentificeret, genereres et par adgangsnøgler, der er globalt unikke på tværs af AWS-platformen. Disse nøglepar bruges på tidspunktet for login til AWS-kontoen. For at oprette adgangsnøgler til IAM-brugeren skal du følge af metode 1 i denne artikel.

Trin 5: Konfigurer legitimationsoplysninger

AWS-brugeren kan kun få adgang til AWS-ressourcerne og -tjenesterne, hvis legitimationsoplysningerne er konfigureret korrekt. I dette afsnit af metoden konfigurerer vi IAM-brugerens legitimationsoplysninger ved at give adgangsnøglen og hemmelig adgangsnøgle til kommandolinjegrænsefladen. Til dette formål skal du følge af metode 1 i denne øvelse.

Trin 6:  Overtag IAM-rollen

Efter at have tilknyttet IAM-rollen og implementeret Trust-politikken, kan brugeren nu påtage sig IAM-rollen. Til dette formål skal du angive følgende kommando til CLI:

aws iam oprette-adgang-nøgle --brugernavn mfa-bruger


Her er nøglen blevet oprettet for IAM-brugeren. Gem AccessKeyId og SecretAccessKey, da de kræves for at logge ind på AWS-kontoen:


Det næste trin er at konfigurere adgangsnøglerne i AWS CLI. Brug nedenstående kommando til at konfigurere CLI:

aws konfigurere


Angiv adgangsnøglen og hemmelig adgangsnøgle til CLI'en til konfigurationer:


For at kontrollere, om IAM-brugeren har logget på AWS CLI, skal du bruge følgende kommando:

aws sts get-ringer-identitet


Outputtet af kommandoen gives som følger, hvilket indikerer, at brugeren har logget på AWS-konsollen med succes:


Brugeren har tilladelse til at angive IAM-rollerne i AWS-kontoen. Kommandoen givet nedenfor bruges til at liste IAM-rollerne:

aws iam liste-roller --forespørgsel 'Roller[?RoleName == 'mfa-rolle'].[RoleName, Arn]


I ovenstående kommando: Rollenavn: Inden for dette felt skal du erstatte værdien 'mfa-rolle' med din IAM-rolles navn.

Outputtet af kommandoen er givet som følger:


For at påtage sig IAM-rollen med MFA skal du bruge kommandoen antage rolle med yderligere parametre såsom serienummer og token-kode. Angiv følgende kommando til CLI:

aws sts påtager sig-rolle --rolle-arn 'arn:aws:iam::123456789012:rolle/m-rolle' --rollesession-navn AWSCLI-session --serienummer 'arn:aws:iam::012345678910:mfa/admindevice' --token-kode '123456'


I ovenstående kommando:

    • –rolle-arn: Erstat værdien af ​​dette felt med ARN for din IAM-rolle.
    • –rollesession-navn: I dette felt kan brugeren angive et valgfrit sessionsnavn.
    • -serienummer: Erstat værdien af ​​dette felt med identifikatorværdien fra MFA-grænsefladen, der blev gemt tidligere.
    • –token-kode: Denne værdi skal erstattes af den aktuelle kode, der vises i Symantecs VIP-grænseflade.

Den aktuelle kode vist i Symantec VIP er angivet som følger. Den samme kode vil blive brugt i -token-code værdien af ​​kommandoen:


Outputtet af kommandoen vil indeholde de midlertidige legitimationsoplysninger såsom en sessionstoken, adgangsnøgle, hemmelig adgangsnøgle osv.:

Trin 7: Konfigurer miljøvariabler

Adgangsnøglerne og det returnerede sessionstoken vil nu blive brugt til at etablere det sessionsbaserede login og til at påtage sig rollen. Den detaljerede implementering til konfiguration af miljøet er diskuteret i af metode 1.

Afsluttende tanker

For at påtage sig en rolle ved hjælp af CLI er der tre metoder, dvs. via STS (sikkerhedstokentjeneste), -profile parameter eller MFA (Multi-Factor Authentication). For at en bruger kan påtage sig en rolle, skal der først etableres en tillidspolitik. Denne tillidspolitik bestemmer, om brugeren er en betroet enhed eller ej. Denne funktionalitet er nødvendig, da den imødekommer sikkerhedsproblemerne hos it-eksperter og enkeltpersoner. Desuden kan brugeren kun påtage sig rollen, hvis den er udstyret med de nødvendige tilladelser.

Når en bruger påtager sig en rolle i AWS, oprettes et sessionsbaseret login for at give tidsbegrænset adgang til brugeren med de ønskede tilladelser. Der genereres et token, der udløber efter en bestemt tid, og dermed kan brugeren ikke længere udføre den administrative opgave med AWS-ressourcer. Denne artikel giver en praktisk implementering af de tre metoder til at påtage sig en rolle i AWS CLI.