Hur antar man en IAM-roll med AWS CLI?

Hur Antar Man En Iam Roll Med Aws Cli



Eftersom AWS tillhandahåller flera tjänster och enorma fördelar är det bara naturligt att säkerhetsproblemen togs upp av IT-experterna. För att hantera dessa säkerhetsproblem introducerades IAM-tjänsten av AWS. AWS IAM är en av kärnwebbtjänsterna som tillåter användare att säkra AWS-resurser. IAM tillhandahåller funktionaliteten för central åtkomsthantering av AWS-tjänsterna genom att definiera behörigheter för olika användare.

Snabb översikt

I den här artikeln kommer du att lära dig om:







Vad är AWS IAM-rollen?
Vad är rollen i AWS?
Hur antar man en IAM-roll med AWS CLI?



Slutgiltiga tankar



Med IAM-roller och behörigheter kan vi fastställa den autentiserade och auktoriserade åtkomsten till AWS-tjänsterna. Dessa roller och behörigheter kan endast tilldelas av rotanvändaren (ägaren) av AWS-kontot.





Vad är AWS IAM-rollen?

IAM-rollen är en identitet skapad av rotanvändaren i AWS-kontot. Denna identitet tilldelas specifika behörigheter som definierar åtkomstomfattningen för IAM-rollen till AWS-resurser. Dessa behörigheter kan antingen vara AWS-hanterade eller anpassade av rotanvändaren.

En IAM-roll är väldigt lik IAM-användaren förutom att IAM-rollen är en identitet med vissa behörigheter medan användaren kan anta dessa roller för att utföra vissa funktioner. Behörigheterna som ges till rollen definierar vilka åtgärder som kan vidtas med denna identitet (IAM-roll).



Vad är rollen i AWS?

Anta att roll är en av funktionerna i AWS IAM-tjänsten som tillåter användaren att agera med AWS-tjänster även om behörigheterna för att komma åt eller manipulera resursen inom tjänsten inte är tilldelade användaren. Dessa behörigheter tilldelas indirekt till användaren när en roll antas. En uppsättning tillfälliga referenser tillsammans med en sessionsbaserad inloggning används för att komma åt AWS-resurserna.

Dessa tillfälliga referenser inkluderar en hemlig åtkomstnyckel, åtkomstnyckel-ID och säkerhetstoken. IAM-roller skapade av AWS-rotanvändaren kan antas av de andra användarna inom AWS-kontot eller de användare vars ARN nämns i rollens policy. Policyn som innehåller ARN för användarna eller resurserna kallas Förtroendepolicy .

Vad är skillnaden mellan tillståndspolicyn och förtroendepolicyn?

Innan man implementerar anta-roll-funktionaliteten via olika metoder finns det två kärnbegrepp som måste förstås av användaren. Det finns två typer av policyer i IAM-tjänsten:

    • Förtroendepolicy: En förtroendepolicy avgör vem som kan ta på sig en specifik IAM-roll. För att en roll ska övertas av en användare nämns användarens ARN i IAM-rollens förtroendepolicy. Denna förtroendepolicy avgör om användaren eller resurserna är en betrodd enhet för att ta på sig denna roll.
    • Tillståndspolicy: Denna policy avgör vad en användare kan göra eller vilka åtgärder som kan utföras med rollen.

Hur antar man en IAM-roll med AWS CLI?

Att ta på sig en roll liknar att maskera sig som en annan användare som är autentiserad och auktoriserad att utföra vissa åtgärder. Samtidigt som AWS antar en identitet, har säkerställt att säkerheten förblir intakt.

Låt oss förstå hur Assume-roll-funktionen fungerar genom att överväga följande exempel.

Till exempel, Det finns en användare inom AWS-kontot som inte har tilldelats några behörigheter för S3-bucket. De 'Read-Only Access' kallas tillståndspolicyn som är kopplad till en IAM-roll. För att användaren ska överta denna roll nämns användarens ARN i IAM-rollens policy. Denna policy kallas nu som 'förtroendepolicy' och det skiljer sig från tillståndspolicyn. Trustpolicyn är avgörande eftersom den hjälper AWS att avgöra om användaren är en auktoriserad enhet eller inte.

Observera att ARN nämns i Trust-policyn och inte i Permission-policyn för IAM-rollen. Genom att anta en roll kan användaren utföra några administrativa åtgärder som definieras av rollens behörighetspolicy. Dessa åtgärder inkluderar att lägga till, ta bort, ändra eller återställa en resurs, etc.

Följande är de tre metoderna för att anta en roll med AWS CLI:

Metod 1: Använda STS (Security Token Service)

Användarna kan ta på sig en roll genom att utföra kommandona i STS-sektionen (Secure Token Service) som returnerar en uppsättning tillfälliga referenser. De tillfälliga referenserna används för att upprätta en sessionsbaserad inloggning för att göra API-anrop till resurserna. Det finns dock två undantag när du använder STS, dvs. GetFederationToken och GetSessionToken.

Användaren är begränsad från åtkomst till dessa tokens för att säkra den konfidentiella informationen om Session och Federation Tokens. Så att säkerheten inte äventyras under några omständigheter. Genom att anta en roll kan en användare höja sina tilldelade privilegier.

I det här avsnittet av artikeln kommer vi att begära en uppsättning tillfälliga referenser med hjälp av STS-kommandon. Nedan följer stegen:

Steg 1: Skapa en användar- och användarpolicy

Först ska vi göra det skapa en IAM-användare utan behörighet. För detta ändamål, öppna CMD från startmenyn i Windows:


Bara root-användare burk skapa en IAM-användare inom AWS-kontot. Logga därför in på AWS-rotkontot genom att använda följande kommando:

aws konfigurera


Autentiseringsuppgifterna är redan konfigurerade inom CLI för den här demo som visas i utmatningen av kommandot:


Läs mer:

Till skapa en IAM-användare , ange följande kommando till CLI:

aws iam skapa-användare --Användarnamn demo-användare


Ersätt demo-användare med din IAM användarnamn.

Rädda 'Arn' ges i utmatningen av kommandot som det kommer att bli nödvändig när skapande de Förtroendepolicy :


Läs mer:

Nästa steg är att tillåta användaren (demo-användare ) till ta en roll . För detta ändamål, skapa en JSON-fil använder någon textredigerare du föredrar. För denna demo har vi använt Anteckningsblock enligt nedanstående kommando:

För Windows

notepad user-policy.json


Ersätt användarpolicy med ditt IAM-policynamn.

För Linux OS

därför att user-policy.json


För tillfället använder vi operativsystemet Windows för denna demo:


Detta öppnar anteckningsblocket. Klistra in följande policy i anteckningsblocket och tryck på 'CTRL + S' från tangentbordet för att spara ändringar:

{
'Version' : '2012-10-17' ,
'Påstående' : [
{
'Effekt' : 'Tillåta' ,
'Handling' : [
'ec2:Beskriv*' ,
'iam:ListRoles' ,
'sts:AssumeRole'
] ,
'Resurs' : '*'
}
]
}


Nedan ges en kort beskrivning av den angivna policyn:

    • ec2:Beskriv: Denna behörighet anger att användaren kan visa eller lista alla AMI, ögonblicksbilder eller EC2-instanser
    • iam:ListRoles: Denna behörighet anger att användaren kan lista alla roller inom IAM-tjänsten.
    • sts:AssumeRole: Denna behörighet representerar att användaren kan anta en roll som definieras inom IAM-tjänsten.

Här har policyn redigerats i anteckningsblocket och sparas:


Varje AWS resurs är tilldelad en Access-Resource Name (ARN) som identifierar unikt resursen. För att bestämma policyns ARN, använd kommandot nedan.

aws iam skapa-policy --policy-namn användarpolicy --policydokument fil: // user-policy.json


I det ovan nämnda kommandot:

    • –policy-namn: Byt ut värdet 'användarpolicy' med valfritt policynamn som du föredrar.
    • –policydokument: I det här fältet, ersätt ' user-policy.json' med json-filens namn som innehåller policyn för användaren.

Utdata från det ovan nämnda kommandot är som följer. Rädda 'Arn' nämns i utgången av policyn eftersom det kommer att krävas när denna policy bifogas till användaren:

Steg 2: Bifoga policy med användaren

Denna policy tillåter användaren att lista EC2-instanser , Vänner , etc. När användaren antar en roll med en annan behörighet, kommer användaren att kunna utföra endast den specifika åtgärden som tillåts av behörighetspolicyn.

För att bifoga policyn med användaren som skapades tidigare i det här avsnittet, använd följande kommando:

aws iam attach-user-policy --Användarnamn demo-användare --policy-arn 'arn:aws:iam::123456789:policy/user-policy'


I det ovan nämnda kommandot:

    • -Användarnamn: Ersätt 'demo-användare' i -Användarnamn fältet med ditt IAM-användarnamn.
    • –policy-arn: På samma sätt, i –policy-arn, specificera 'Arn' från utdata från föregående kommando, dvs –create-policy.

Genom att utföra kommandot efter att ha gjort de nödvändiga ändringarna har policyn framgångsrikt kopplats till användaren:


För att verifiera om policyn har kopplats till användaren, ge följande kommando till CLI:

aws iam list-attached-user-policys --Användarnamn demo-användare


Ersätt demo-användare med din IAM Användarnamn angavs när användaren skapades.

Utdata från följande kommando verifierar att policyn har kopplats till användaren:

Steg 3: Skapa en förtroendepolicy och IAM-roll

En förtroenderelation upprättas när en resurs eller en användares ARN anges i en policy. Den här funktionen gör det sedan möjligt för användarna eller enheten att utföra vissa åtgärder eftersom de anses betrodda av policyn.

I det här steget kommer vi att skapa en policy som etablerar förtroenderelationen mellan IAM-rollen och användaren. Denna förtroendepolicy kommer att kopplas till IAM-rollen. IAM-rollen kommer sedan att övertas av användaren, vilket indirekt tillåter användaren att utföra de åtgärder som anges i policyn.

För att skapa en förtroendepolicy ges kommandona enligt följande:

För Windows

notepad trust-role-policy.json


Ersätt trust-role-policy.json med namnet på din preferens för policyn.

För Linux OS

därför att trust-role-policy.json


Ersätt trust-role-policy.json med namnet på din preferens för policyn.

Förtroendepolicyn följer JSON-format som anges av .json förlängning i följande kommando:


Detta öppnar anteckningsblocket. Klistra det följande politik i anteckningsblocket och tryck på 'CTRL + S' knappen från tangentbordet för att spara ändringarna. Användarens ARN kan också kopieras från användarens instrumentpanel på IAM-konsolen. För detta ändamål, besök IAM-instrumentpanelen och klicka på användarens namn. Från den visade konfigurationen, kopiera ARN för användaren som visas i avsnittet Sammanfattning.:

{
'Version' : '2012-10-17' ,
'Påstående' : {
'Effekt' : 'Tillåta' ,
'Större' : {
'AWS' : 'arn:aws:iam::123456789012:användare/exempelanvändare'
} ,
'Handling' : 'sts:AssumeRole'
}
}


I ovan nämnda policy:

    • AWS: Ersätt AWS-fältvärde 'arn:aws:iam::123456789012:användare/exempelanvändare 'med ARN för användaren som visades i utgången av kommandot –create-user.

Användaren kan begränsa andra användare från att ta på sig IAM-rollen genom att ange användarens ARN i 'AWS' fält:


Läs mer:

Skapa nu en IAM-roll och bifoga förtroendepolicyn med den. För att skapa en IAM-roll, använd nedanstående kommando:

aws iam skapa-roll --rollnamn användarroll --anta-roll-policy-dokument fil: // trust-role-policy.json


Följande är beskrivningen av de ovan nämnda fälten:

    • -rollnamn: Det här fältet används för att mata in namnet som kommer att tilldelas denna IAM-roll. Ersätt värdet 'användarroll' med det IAM-rollnamn du väljer.
    • –anta-roll-policy-dokument: Ange sökvägen i det här fältet enligt kommandot. Ersätt trust-role-policy.json med policynamnet som du angav i föregående avsnitt.

Genom att utföra detta kommando kommer det att returnera flera delar av information i utdatat, t.ex. ARN, Path, ID, etc:


Läs mer:

När användaren tar på sig denna roll kommer användaren att kunna utföra 'ReadOnly Access' action med S3-skopan. Kommandot ges enligt följande:

aws iam attach-rolle-policy --rollnamn användarroll --policy-arn 'arn:aws:iam::aws:policy/AmazonS3ReadOnlyAccess'


I kommandot ovan:

    • -rollnamn: Byta ut ' användarroll' i fältet –rollnamn med IAM-rollens namn som du angav tidigare i denna handledning.
    • –policy-arn: Det arn som anges i –policy-arn hänvisar till ReadOnlyAccess-behörigheten för S3-hinken.

I den här bilden har rollen tilldelats ReadOnlyAccess-behörigheten för S3-hinken:


För att verifiera om behörigheten har tilldelats rollen eller inte, använd följande kommando:

aws iam list-attached-rolle-policys --rollnamn användarroll


Ersätt 'användarroll' med ditt IAM-rollnamn.

De 'AmazonS3ReadOnly Access' tillstånd har kopplats till IAM-rollen. Utdata från kommandot ges enligt följande:

Steg 4: Skapa åtkomstnycklarna

I det här avsnittet kommer vi att skapa åtkomstnycklarna för användaren. Åtkomstnycklarna kommer att användas för att logga in på AWS-kontot:

aws iam skapa-åtkomst-nyckel --Användarnamn demo-användare


Ersätt demo-användare med ditt IAM-användarnamn som angavs när du skapade en användare.

Här har kommandot returnerat en uppsättning åtkomstnyckelpar (AccessKeyId och Secret Access Key) med ytterligare information som skapat datum, status, etc. Spara AccessKeyId och SecretAccessKey som de krävs senare i handledningen:


Läs mer:

Steg 5: Konfigurera åtkomstnyckel och verifiera IAM-användaren

För att konfigurera åtkomstnyckeln, ge följande kommando till CMD och ange sedan åtkomstnyckel-ID och hemlig åtkomstnyckel:

aws konfigurera


Ange åtkomstnyckel-ID och hemlig åtkomstnyckel till CLI:n som skapades i steg 4 i detta avsnitt. För regionen har vi behållit standardinställningarna. Användare kan konfigurera vilket utdataformat som helst för standardutdataformatet. För denna demo har vi specificerat JSON formatera:


För att verifiera om IAM-användaren har konfigurerats, ge följande kommando till CLI:

aws sts få-ringer-identitet


Utdata från kommandot indikerar att 'demo-användare' har konfigurerats framgångsrikt och är för närvarande inloggad på AWS-kontot:


För att fastställa att IAM-användaren kan lista EC2-instanserna och inte har åtkomst till S3-bucket för närvarande, använd följande kommando:

aws ec2 describe-instances --fråga 'Reservations[*].Instances[*].[VpcId, InstanceId, ImageId, InstanceType]'


Utdata från kommandot ges enligt följande:


Ange nu följande kommando för att verifiera om användaren kan komma åt S3-hinken:

aws s3 ls


Detta kommer att visa 'Tillträde beviljas ej' fel som indikerar att användaren inte har tillgång till S3-hinken:

Steg 6: Anta IAM-rollen

Användaren har behörighet att lista IAM-rollerna i AWS-kontot. Därför, för att anta rollen, kommer vi först att skaffa den nödvändiga informationen som ARN genom att utföra följande kommando:

aws iam list-roller --fråga 'Roller[?Rollnamn == 'användarroll'].[Rollnamn, Arn]'


Ersätt 'användarrollen' med IAM-rollnamnet i fältet 'Rollnamn'.

ARN har angetts i utgången av det ovan nämnda kommandot:


Nu när vi har ARN för IAM-rollen kan vi anta rollen genom att använda följande kommando:

aws sts anta-roll --roll-arn 'arn:aws:iam::123456789012:roll/exempel-roll' --rollsession-namn AWSCLI-session


I kommandot ovan:

    • –roll-arn: Ersätt det nämnda värdet för –role-arn med IAM-rollens ARN.
    • –rollsession-namn: Användaren kan ange vilket namn som helst för detta fält.

Genom att utföra det ovan nämnda kommandot har en uppsättning tillfälliga referenser returnerats. Dessa tillfälliga referenser kommer att användas för att ta på sig IAM-rollen med önskad behörighet, dvs. ReadOnlyAccess. AccessKeyId och SecretAccessKey kommer att användas när du konfigurerar dessa tillfälliga autentiseringsuppgifter:


Här är en kort beskrivning av resultatet av kommandot:

    • SessionToken: Sessionstoken används för att skapa den sessionsbaserade inloggningen. Spara värdet för detta fält eftersom det kommer att krävas när du konfigurerar autentiseringsuppgifterna.
    • Utgång: Sessionstoken har ett utgångsdatum och -tid. Token kommer inte att vara till någon nytta efter den angivna tiden och användaren kommer inte att kunna ta på sig rollen.

Steg 7: Konfigurera miljövariabeln

För att konfigurera de tillfälliga autentiseringsuppgifterna använder vi kommandot 'set' för Windows och anger sedan värdet för åtkomstnyckel-ID, hemlig åtkomstnyckel, sessionstoken, etc:

För Windows

uppsättning AWS_ACCESS_KEY_ID =RoleAccessKeyID


Ersätt RoleAccessKeyID med Access Key ID som har returnerats av kommandot i steg 6.

För Linux OS

exportera AWS_ACCESS_KEY_ID =RoleAccessKeyID


Ersätt RoleAccessKeyID med Access Key ID som har returnerats av kommandot i steg 6.

Åtkomstnyckeln har konfigurerats:


Därefter kommer vi att konfigurera den hemliga åtkomstnyckeln genom att använda kommandot 'set' för Windows:

För Windows

uppsättning AWS_SECRET_ACCESS_KEY =RollSecretKey


Ersätt RoleSecretKey med värdet för den hemliga åtkomstnyckeln som har returnerats av kommandot i steg 6.

För Linux OS

exportera AWS_SECRET_ACCESS_KEY =RollSecretKey


Ersätt AWS_SECRET_ACCESS_KEY med den hemliga åtkomstnyckeln som har returnerats av kommandot i steg 6.

Den hemliga åtkomstnyckeln har konfigurerats framgångsrikt:


Slutligen kommer vi att konfigurera sessionstoken för att upprätta den sessionsbaserade inloggningen. För detta ändamål, använd nedanstående kommando:

För Windows

uppsättning AWS_SESSION_TOKEN =RoleSessionToken


Ersätt RoleSessionToken med Session Token-värdet som har returnerats av kommandot i steg 6.

För Linux OS

exportera AWS_SESSION_TOKEN =RoleSessionToken


Ersätt RoleSessionToken med Session Token-värdet som har returnerats av kommandot i steg 6.

Värdet på sessionstoken har konfigurerats:


För att kopiera värdet på Session Token från CMD, tryck 'CTRL + SHIFT + C' .

Efter att ha konfigurerat miljövariablerna, verifiera med följande kommando om rollen har antagits av användaren:

aws sts få-ringer-identitet


Utdata från kommandot verifierar att IAM-rollen har varit framgångsrikt antagits av användaren som ARN-returen är 'arn:aws:sts::123456789012:assumed-role/user-role/AWSCLI-Session' istället för 'arn:aws:iam::123456789012:användare/demoanvändare':


Eftersom rollen innehåller ReadOnlyAccess-behörigheten bör användaren kunna anlita hinkarna nu. För detta ändamål, ge följande kommando till CLI:

aws s3 ls


Utdata från kommandot samlar in all S3-bucket som för närvarande är konfigurerad i AWS-kontot:


Användaren kommer dock inte att kunna komma åt EC2-tjänsten eftersom den antagna rollen inte har någon behörighet för EC2-tjänsten. För att verifiera detta, använd följande kommando:

aws ec2 describe-instances --fråga 'Reservations[*].Instances[*].[VpcId, InstanceId, ImageId, InstanceType]'


Tidigare kunde användaren komma åt EC2-tjänstinformationen. Men vid exekvering av det ovan nämnda kommandot, an 'Tillträde beviljas ej' fel har uppstått. Användaren har framgångsrikt antagit IAM-rollen:


Det här är allt från det här avsnittet.

Bonustips: Avaktivera miljövariablerna

För att återgå till IAM-användaren, dvs demo-användaren, kan användaren ta bort miljövariablerna genom att ställa in miljövariablerna till tomma strängar. Följande är de kommandon som ges:

För Windows

UPPSÄTTNING AWS_ACCESS_KEY_ID =
UPPSÄTTNING AWS_SECRET_ACCESS_KEY =
UPPSÄTTNING AWS_SESSION_TOKEN =


För Linux

Använd kommandot nedan:

avstängd AWS_ACCESS_KEY_ID AWS_SECRET_ACCESS_KEY AWS_SESSION_TOKEN


De ovan nämnda kommandona kommer att avaktivera miljövariablerna:


Efter att ha utfört ovanstående kommandon bör konsolen nu returnera 'demo-användare' som den för närvarande inloggade användaren istället för den antagna rollen, dvs användarrollen. För detta ändamål kommer vi att använda följande kommando:

aws sts få-ringer-identitet


Utdata från kommandot indikerar att den för närvarande inloggade användaren är demo-användare:


På samma sätt, för att logga in som root-användare, följ 'C:\Users%USERPROFILE%.aws' sökväg och klicka på referensfilen:


I autentiseringsfilen ersätter du värdena för åtkomstnyckeln och hemlig åtkomstnyckel med rotanvändarens åtkomst- och hemliga åtkomstnyckel:


Ge följande kommando till CLI för att verifiera om autentiseringsuppgifterna är korrekt konfigurerade:

aws konfigurera


Här, i bilden nedan, kan vi se att åtkomstnyckeln och hemlig åtkomstnyckel för rotanvändaren har konfigurerats framgångsrikt:


Det är allt från det här avsnittet av handledningen.

Metod 2: Använda –profile Parameter

En annan metod för att ta rollen är att använda fältet '–profile' i CLI. Det här avsnittet av artikeln presenterar den praktiska implementeringen av att ta en roll i AWS via –profil. Nedan följer stegen för det:

Steg 1: Skapa en IAM-användare

För att skapa en IAM-användare, logga in på rotanvändarkontot via CLI genom att använda följande kommando:

aws konfigurera


Autentiseringsuppgifterna är redan konfigurerade inom CLI för den här demo som visas i utmatningen av kommandot:


Läs mer:

För att skapa en IAM-användare, ge följande kommando till CLI:

aws iam skapa-användare --Användarnamn profil-användare


Användaren har skapats framgångsrikt. Spara användarens ARN som visas i bilden nedan. ARN för denna IAM-användare kommer att användas senare i denna handledning. För närvarande finns det inga behörigheter kopplade till denna IAM-användare:


Läs mer:

Steg 2: Skapa åtkomstnyckel

I AWS tilldelas varje användare ett par åtkomstnycklar för inloggning. För att skapa åtkomstnycklar för den här användaren, tillhandahåll följande kommando till den:

aws iam skapa-åtkomst-nyckel --Användarnamn profil-användare


Detta kommando returnerar en uppsättning åtkomstnycklar. Spara de AccessKeyId och Hemlig åtkomstnyckel eftersom det kommer att krävas när du loggar in på AWS-kontot:


Om vi ​​nu loggar in på AWS CLI med dessa AccessKeyId och SecretAccessKey och kommer åt valfri resurs, t.ex. S3 hink, den 'Tillträde beviljas ej' fel kommer att uppstå. Detta beror på att det för närvarande inte finns några behörigheter kopplade till IAM-användaren. För att logga in på AWS CLI, använd följande kommando och ange åtkomstnyckel-ID och hemlig åtkomstnyckel som skapats tidigare:

aws konfigurera --profil profil-användare


Ersätt 'profilanvändare' med IAM-användarnamnet som du angav när du skapade användaren.

Här har vi loggat in på AWS CLI som IAM-användare:


För att verifiera om den här användaren har några skrivskyddade behörigheter för S3-bucket, ge följande kommando till CLI:

aws s3 ls --profil profil-användare


Ersätt profilanvändaren med IAM-användarnamnet som du angav när du skapade användaren.

Eftersom denna användare inte har tilldelats någon behörighet av rotanvändaren kommer det att resultera i ' Tillträde beviljas ej ' fel:

Steg 3: Skapa en förtroendepolicy och IAM-roll

En förtroendepolicy avgör om en användare eller en AWS-resurs är en betrodd enhet för att ta på sig rollen och skaffa behörigheterna. Denna förtroenderelation skapas genom att ange ARN för IAM-användaren eller AWS-resursen inom behörighetspolicyn.

För att skapa en förtroendepolicy inom IAM, tillhandahåll följande kommando till CLI:

För Windows

notepad trust-policy.json


Ersätt trust-policy.json med namnet på din preferens för policyn.

För Linux OS

därför att trust-role-policy.json


Ersätt trust-policy.json med namnet på din preferens för policyn.

Användare kan använda vilken textredigerare som helst. För denna demo använder vi anteckningsblocket:


Detta öppnar anteckningsblocket för att skapa förtroendepolicyn. Klistra in följande policy i anteckningsblocket och tryck på 'CTRL + S' från tangentbordet för att tillämpa och spara ändringar:

{
'Version' : '2012-10-17' ,
'Påstående' : {
'Effekt' : 'Tillåta' ,
'Större' : {
'AWS' : 'arn:aws:iam::012345678910:användare/profilanvändare'
} ,
'Handling' : 'sts:AssumeRole'
}
}


I ovanstående policy: AWS: Ersätt värdet 'arn:aws:iam::012345678910:user/policy-user' med ARN för IAM-användaren som skapades tidigare i det här avsnittet.

Policyn har redigerats i anteckningsblocket:


Därefter kommer vi att skapa en IAM-roll och bifoga ovanstående förtroendepolicy till den. Använd följande kommando för att skapa en IAM-roll:

aws iam skapa-roll --rollnamn min roll --anta-roll-policy-dokument fil: // trust-policy.json


I det ovan nämnda kommandot:

    • -rollnamn: Ersätt 'min roll' med det IAM-rollnamn du väljer.
    • –anta-roll-policy-dokument: Ersätt termen i det här fältet 'trust-policy.json' med din IAM-förtroendepolicys namn

IAM-rollen har skapats framgångsrikt. Spara IAM-rollen. Spara ARN för IAM-rollen som markerats i följande bild. Detta ARN kommer att användas när användarens profil konfigureras:


Förtroendepolicyn som är kopplad till IAM identifierar om användaren är betrodd eller inte för att ta på sig rollen. Tillståndspolicyn avgör om IAM-rollen har den behörighet som krävs för att utföra en viss åtgärd med AWS-tjänster eller inte.

Eftersom förtroendepolicyn har kopplats till IAM-rollen är nästa steg att koppla tillståndspolicyn till IAM-rollen. Nedan nämnda kommando kommer att användas för att koppla tillståndspolicy till IAM-rollen:

aws iam attach-rolle-policy --rollnamn min roll --policy-arn 'arn:aws:iam::aws:policy/AmazonS3ReadOnlyAccess'


Här har behörighetspolicyn kopplats till IAM-rollen via CLI:

Steg 4: Konfigurera profil

För att användaren ska ta på sig denna roll kommer vi först att konfigurera den här profilen inom AWS autentiseringsuppgifter. För att bifoga dessa tillfälliga referenser, ange följande kommando:

anteckningsblock ~ / .aws / config


Bonustips: Lös 'Path not specificed' i Anteckningar

Konfigurationsfilen kommer att innehålla [standard]-inställningen för AWS CLI. Men om anteckningsblocket visar 'Systemet kan inte hitta den angivna sökvägen', anger du kommandot nedan:

anteckningsblock .aws / config


Linux-användare kan använda 'därför att' editor för att konfigurera profilen. Användare kan använda valfri redigerare för att öppna konfigurationsfilen för AWS på den lokala maskinen:


Redigera följande ändringar i konfigurationsfilen som öppnas i Anteckningar:

[ profil profil-användare ]
roll_arn = arn:aws:iam::012345678910:roll / min roll
source_profile =profil-användare


I utdraget ovan:

    • roll_arn: Ersätt värdet 'arn:aws:iam::012345678910:role/myrole' med ARN för IAM-rollen.
    • source_profile: I det här fältet anger du namnet på IAM-användaren som skapades i steg 1 i den här metoden.

När du har gjort de nödvändiga ändringarna trycker du på 'CTRL + S' från tangentbordet för att tillämpa och spara ändringar:


För att verifiera om användaren nu kan lista S3-hinkarna eller inte, ge följande kommando till CLI:

aws s3 ls --profil profil-användare


I kommandot ovan: –profilanvändare: I det här fältet ersätter du värdet 'profile-use' med namnet som du anger i konfigurationsfilen.

Eftersom vi har specificerat 'profil-användare' i konfigurationsfilen kommer vi därför att använda samma namn med kommandot i CLI. Tidigare kunde användaren inte komma åt S3-tjänsten för AWS eftersom inga behörigheter tilldelades den. IAM-rollen har behörigheten 'ReadOnlyAccess' för S3-skopan och därför, genom att anta denna roll, kan användaren lista hinkarna från S3 Dashboard:


Det är allt från den här metoden i handledningen.

Metod 3: Använda MFA (Multi-Factor Authentication)

Genom att aktivera Multi-Factor Authentication kan användaren konfigurera ett extra säkerhetslager för användarens konto. Med MFA aktiverat kan obehöriga användare inte komma åt en användares konto även om de anger ett lösenord och användarnamn. MFA är en sexsiffrig kod som krävs för att logga in på kontot. För att lära dig mer om multifaktorautentisering, se den här artikeln:

Följande är stegen för att anta en roll med MFA via CLI:

Steg 1: Skapa en IAM-användare och aktivera MFA

För detta steg kan användaren antingen använda CLI för att skapa användaren eller komma åt AWS Management Console. Logga in på root-användarkontot genom att använda följande kommando:

aws konfigurera


Utdata från kommandot ges enligt följande:


För att skapa en användare, ge följande kommando till CLI:

aws iam skapa-användare --Användarnamn mfa-användare


I kommandot ovan: -Användarnamn: Ersätt 'mfa-användare' med det IAM-användarnamn du väljer.

Användaren har skapats framgångsrikt. Spara användarens ARN eftersom det kommer att krävas senare i detta avsnitt. För närvarande har denna användare inte tilldelats några behörigheter:


För att aktivera MFA, besök AWS Management Console och sök efter IAM-tjänsten. Klicka på det från de visade resultaten:


Klicka på alternativet Användare i den vänstra navigeringsrutan i IAM-tjänsten. Från användaröversikten klickar du på användarnamnet för att konfigurera MFA:


På nästa gränssnitt trycker du på 'Säkerhetsuppgifter' alternativ:


Scrolla ner till Multi-Factor Authentication och klicka på 'Tilldela MFA-enhet' knapp:


Tillhandahålla en meningsfullt namn i Enhetsnamn textfält på det visade gränssnittet:


Rulla ned till avsnittet MFA-enhet. Användaren presenteras med olika alternativ för att aktivera MFA, till exempel genom att skanna QR-koden, via säkerhetsnyckeln eller TOTP-token för maskinvara. För denna demo, välj 'Autentiseringsapp' alternativ:


Tryck på 'Nästa' knappen längst ned i gränssnittet för att gå vidare:


Klicka på 'Visa QR-kod' som visas i bilden nedan:


Starta applikation på din mobil eller bärbara dator för att skanna QR-koden. Tryck på '+' alternativ från Symantecs VIP-gränssnitt:


I Play Store heter Symantec VIP som VIP Access.

På nästa gränssnitt för Symantec VIP, klicka på Skanna QR kod knappen längst ned i gränssnittet:


Skanna QR-koden från AWS MFA Authenticators appgränssnitt visas. Den här koden genererar en serie koder som kommer att krävas för att logga in på IAM-användarens konsol:


Symantec VIP-appen kommer att genereras sexsiffrig OTP efter att ha skannat QR-koden. Dessa koder kommer att fortsätta komma efter varje 30 sekunder . Skärmbilden nedan visar de två koder som genereras:


Ange koderna till MFA-kod 1 och MFA-kod 2 textfält på Authenticator App-gränssnittet i MFA. Klicka på 'Lägg till MFA' knappen efteråt för att aktivera funktionen:


MFA har aktiverats för IAM-användaren framgångsrikt. Detta kan verifieras av 'Multi-faktor autentisering (MFA)' avsnitt av 'Säkerhetsuppgifter' fliken i IAM-användare . Från det här avsnittet sparar du värdet för Identifier eftersom det kommer att krävas medan du tar rollen:

Steg 2: Bifoga policy med användare

För att en användare ska ta på sig en roll måste användaren kunna lista IAM-rollen för att avgöra vilken roll som ska antas och behörigheten för att ta rollen. För att utrusta användaren med den behörighet som krävs, följ av metod 1 i denna handledning

Steg 3: Skapa förtroendepolicy och IAM-roll

Nästa steg är att skapa en Trust-policy för att avgöra om användaren är en betrodd enhet eller inte. Denna förtroendepolicy kommer sedan att kopplas till IAM-rollen. För att skapa Trust-policyn och IAM-rollen, navigera till kommandotolken och följ av metod 1 i den här artikeln.

Steg 4: Skapa en åtkomstnyckel

För att användaren ska bli auktoriserad och autentiserad genereras ett par åtkomstnycklar som är globalt unika över AWS-plattformen. Dessa nyckelpar används vid tidpunkten för inloggning till AWS-kontot. För att skapa åtkomstnycklar för IAM-användaren, följ av metod 1 i denna artikel.

Steg 5: Konfigurera autentiseringsuppgifter

AWS-användaren kan bara komma åt AWS-resurserna och tjänsterna om autentiseringsuppgifterna är korrekt konfigurerade. I det här avsnittet av metoden kommer vi att konfigurera IAM-användarens autentiseringsuppgifter genom att tillhandahålla åtkomstnyckeln och hemlig åtkomstnyckel till kommandoradsgränssnittet. För detta ändamål, följ av metod 1 i denna handledning.

Steg 6:  Ta rollen som IAM

Efter att framgångsrikt kopplat IAM-rollen och implementerat Trust-policyn kan användaren nu överta IAM-rollen. För detta ändamål, ge följande kommando till CLI:

aws iam skapa-åtkomst-nyckel --Användarnamn mfa-användare


Här har nyckeln skapats framgångsrikt för IAM-användaren. Spara AccessKeyId och SecretAccessKey eftersom de kommer att krävas för att logga in på AWS-kontot:


Nästa steg är att konfigurera åtkomstnycklarna i AWS CLI. Använd kommandot nedan för att konfigurera CLI:

aws konfigurera


Ange åtkomstnyckeln och hemlig åtkomstnyckel till CLI för konfigurationer:


För att verifiera om IAM-användaren har loggat in på AWS CLI, använd följande kommando:

aws sts få-ringer-identitet


Utdata från kommandot ges enligt följande, vilket indikerar att användaren framgångsrikt har loggat in på AWS-konsolen:


Användaren har behörighet att lista IAM-rollerna i AWS-kontot. Kommandot nedan används för att lista IAM-rollerna:

aws iam list-roller --fråga 'Roller[?Rollnamn == 'mfa-roll'].[Rollnamn, Arn]


I kommandot ovan: Rollnamn: Inom detta fält ersätter du värdet 'mfa-role' med din IAM-rolls namn.

Utdata från kommandot ges enligt följande:


För att anta IAM-rollen med MFA, använd kommandot anta roll med ytterligare parametrar som serienummer och tokenkod. Ge följande kommando till CLI:

aws sts anta-roll --roll-arn 'arn:aws:iam::123456789012:roll/m-roll' --rollsession-namn AWSCLI-session --serienummer 'arn:aws:iam::012345678910:mfa/admindevice' --token-kod '123456'


I kommandot ovan:

    • –roll-arn: Ersätt värdet på det här fältet med ARN för din IAM-roll.
    • –rollsession-namn: I det här fältet kan användaren ange valfritt sessionsnamn.
    • -serienummer: Ersätt värdet för det här fältet med identifieringsvärdet från MFA-gränssnittet som sparades tidigare.
    • –token-kod: Detta värde ska ersättas av den aktuella koden som visas i Symantecs VIP-gränssnitt.

Den aktuella koden som visas i Symantec VIP ges enligt följande. Samma kod kommer att användas i –token-code-värdet för kommandot:


Utdata från kommandot kommer att innehålla de tillfälliga referenserna som en sessionstoken, åtkomstnyckel, hemlig åtkomstnyckel, etc:

Steg 7: Konfigurera miljövariabler

Åtkomstnycklarna och den returnerade sessionstoken kommer nu att användas för att upprätta den sessionsbaserade inloggningen och för att ta rollen. Den detaljerade implementeringen för att konfigurera miljön diskuteras i av metod 1.

Slutgiltiga tankar

För att anta en roll med CLI finns det tre metoder, dvs via STS (säkerhetstokentjänst), -profile-parameter eller MFA (Multi-Factor Authentication). För att en användare ska ta på sig en roll måste en förtroendepolicy upprättas först. Denna förtroendepolicy avgör om användaren är en betrodd enhet eller inte. Denna funktionalitet är nödvändig eftersom den tar itu med säkerhetsproblemen för IT-experter och individer. Dessutom kan användaren bara ta rollen om den är utrustad med de nödvändiga behörigheterna.

När en användare tar på sig en roll i AWS skapas en sessionsbaserad inloggning för att ge användaren tidsbegränsad åtkomst med önskade behörigheter. En token genereras som löper ut efter en viss tid och därmed kan användaren inte längre utföra den administrativa uppgiften med AWS-resurser. Den här artikeln ger en praktisk implementering av de tre metoderna för att ta en roll i AWS CLI.