Hoe kunt u een IAM-rol aannemen met behulp van AWS CLI?

Hoe Kunt U Een Iam Rol Aannemen Met Behulp Van Aws Cli



Omdat AWS verschillende diensten en enorme voordelen biedt, is het niet meer dan logisch dat de IT-experts de zorgen over de beveiliging hebben geuit. Om deze veiligheidsproblemen aan te pakken, werd de IAM-service geïntroduceerd door AWS. AWS IAM is een van de belangrijkste webservices waarmee gebruikers AWS-bronnen kunnen beveiligen. IAM biedt de functionaliteit van centraal toegangsbeheer van de AWS-diensten door de rechten voor verschillende gebruikers te definiëren.

Snel overzicht

In dit artikel leert u over:







Wat is de AWS IAM-rol?
Wat is de veronderstelde rol in AWS?
Hoe kunt u een IAM-rol aannemen met behulp van AWS CLI?



Laatste gedachten



Met IAM-rollen en -rechten kunnen we de geverifieerde en geautoriseerde toegang tot de AWS-diensten bepalen. Deze rollen en machtigingen kunnen alleen worden toegewezen door de rootgebruiker (eigenaar) van het AWS-account.





Wat is de AWS IAM-rol?

De IAM-rol is een identiteit die is aangemaakt door de rootgebruiker binnen het AWS-account. Aan deze identiteit worden specifieke machtigingen toegewezen die de reikwijdte van de toegang van de IAM-rol tot AWS-bronnen definiëren. Deze machtigingen kunnen door AWS worden beheerd of op maat worden gedefinieerd door de rootgebruiker.

Een IAM-rol lijkt sterk op de IAM-gebruiker, behalve dat de IAM-rol een identiteit is met bepaalde machtigingen, terwijl de gebruiker deze rollen kan aannemen om bepaalde functionaliteiten uit te voeren. De machtigingen die aan de rol worden verleend, bepalen welke acties kunnen worden ondernomen met deze identiteit (IAM-rol).



Wat is de veronderstelde rol in AWS?

Assume Role is een van de functionaliteiten van de AWS IAM-service waarmee de gebruiker kan handelen met AWS-services, hoewel de machtigingen voor toegang tot of het manipuleren van de bron binnen de service niet aan de gebruiker zijn toegewezen. Deze machtigingen worden indirect aan de gebruiker toegewezen wanneer een rol wordt aangenomen. Voor toegang tot de AWS-bronnen wordt een reeks tijdelijke inloggegevens en een sessiegebaseerde login gebruikt.

Deze tijdelijke referenties omvatten een geheime toegangssleutel, toegangssleutel-ID en beveiligingstoken. IAM-rollen die door de AWS-rootgebruiker zijn aangemaakt, kunnen worden overgenomen door de andere gebruikers binnen het AWS-account of door de gebruikers van wie ARN wordt vermeld in het beleid van de rol. Het beleid dat de ARN van de gebruikers of bronnen bevat, staat bekend als de Vertrouwensbeleid .

Wat is het verschil tussen het toestemmingsbeleid en het vertrouwensbeleid?

Voordat de functie aannemen-rol via verschillende methoden wordt geïmplementeerd, zijn er twee kernconcepten die door de gebruiker moeten worden begrepen. Er zijn twee soorten beleid in de IAM-service:

    • Vertrouwensbeleid: Een vertrouwensbeleid bepaalt wie een specifieke IAM-rol op zich kan nemen. Om een ​​rol op zich te nemen door een gebruiker wordt de ARN van de gebruiker vermeld in het vertrouwensbeleid van de IAM-rol. Dit vertrouwensbeleid bepaalt of de gebruiker of de bronnen een vertrouwde entiteit zijn die deze rol op zich neemt.
    • Toestemmingsbeleid: Dit beleid bepaalt wat een gebruiker kan doen of welke acties kunnen worden uitgevoerd met de rol.

Hoe kunt u een IAM-rol aannemen met behulp van AWS CLI?

Het aannemen van een rol is vergelijkbaar met het vermommen van jezelf als een andere gebruiker die is geverifieerd en geautoriseerd om bepaalde acties uit te voeren. Door een identiteit aan te nemen, heeft AWS ervoor gezorgd dat de beveiliging intact blijft.

Laten we de werking van de Assume-role-functionaliteit begrijpen door het volgende voorbeeld te bekijken.

Bijvoorbeeld, er bestaat een gebruiker binnen het AWS-account waaraan geen rechten zijn toegewezen voor de S3-bucket. De “Alleen-lezen toegang” wordt het toestemmingsbeleid genoemd dat aan een IAM-rol is gekoppeld. Om ervoor te zorgen dat de gebruiker deze rol op zich kan nemen, wordt de ARN van de gebruiker vermeld in het beleid van de IAM-rol. Dit beleid heet nu als “vertrouwensbeleid” en het wijkt af van het toestemmingsbeleid. Het vertrouwensbeleid is van cruciaal belang omdat het AWS helpt te bepalen of de gebruiker een geautoriseerde entiteit is of niet.

Houd er rekening mee dat de ARN wordt vermeld in het vertrouwensbeleid en niet in het toestemmingsbeleid van de IAM-rol. Door een rol op zich te nemen, kan de gebruiker een aantal administratieve acties uitvoeren die zijn gedefinieerd door het toestemmingsbeleid van de rol. Deze acties omvatten het toevoegen, verwijderen, wijzigen of herstellen van een bron, enz.

Hieronder volgen de drie methoden om een ​​rol op zich te nemen bij AWS CLI:

Methode 1: Gebruik van de STS (Security Token Service)

De gebruikers kunnen een rol op zich nemen door de opdrachten uit te voeren in de STS-sectie (Secure Token Service), die een reeks tijdelijke inloggegevens retourneert. De tijdelijke inloggegevens worden gebruikt om een ​​sessiegebaseerde login tot stand te brengen om API-aanroepen naar de bronnen te doen. Er zijn echter twee uitzonderingen tijdens het gebruik van de STS, d.w.z. GetFederationToken En GetSessionToken.

De gebruiker heeft geen toegang tot deze tokens om de vertrouwelijke informatie van sessie- en federatietokens te beveiligen. Zodat de veiligheid onder geen enkele omstandigheid in gevaar komt. Door een rol op zich te nemen, kan een gebruiker de hem toegewezen bevoegdheden verhogen.

In dit gedeelte van het artikel zullen we een reeks tijdelijke inloggegevens aanvragen met behulp van de STS-opdrachten. Hieronder staan ​​de stappen:

Stap 1: Maak een gebruiker en gebruikersbeleid

Ten eerste zullen wij dat doen maak een IAM-gebruiker aan zonder toestemming. Open hiervoor de CMD vanuit het Startmenu van Windows:


Alleen de root-gebruiker kan creëren een IAM-gebruiker binnen het AWS-account. Meld u daarom aan bij het AWS-rootaccount met behulp van de volgende opdracht:

aws configureren


De inloggegevens zijn al geconfigureerd binnen de CLI voor deze demo, zoals weergegeven in de uitvoer van de opdracht:


Kom meer te weten:

Naar maak een IAM-gebruiker aan , geef de volgende opdracht aan CLI:

aws ik ben create-user --gebruikersnaam demo-gebruiker


Vervang de demo-gebruiker met uw IAM-gebruikersnaam.

Red de “Arn” gegeven in de uitvoer van het commando zoals het zal zijn vereist wanneer creëren de Vertrouwensbeleid :


Lees verder:

De volgende stap is om vergunning de gebruiker (demo-gebruiker ) naar een rol op zich nemen . Maak hiervoor een JSON-bestand met behulp van enige teksteditor u verkiest. Voor deze demo hebben we gebruikt Kladblok zoals gespecificeerd in de onderstaande opdracht:

Voor ramen

kladblok gebruikersbeleid.json


Vervang de gebruikersbeleid met uw IAM-beleidsnaam.

Voor Linux-besturingssysteem

omdat gebruikersbeleid.json


Op dit moment gebruiken we het Windows-besturingssysteem voor deze demo:


Hierdoor wordt het notitieblok geopend. Plak het volgende beleid in het kladblok en druk op “CTRL+S” vanaf het toetsenbord om wijzigingen op te slaan:

{
'Versie' : '2012-10-17' ,
'Stelling' : [
{
'Effect' : 'Toestaan' ,
'Actie' : [
'ec2:Beschrijf*' ,
'iam: LijstRollen' ,
'sts: veronderstel een rol'
] ,
'Bron' : '*'
}
]
}


Hieronder vindt u een korte beschrijving van het gespecificeerde beleid:

    • ec2:Beschrijf: Deze machtiging geeft aan dat de gebruiker alle AMI's, snapshots of EC2-instanties kan bekijken of vermelden
    • iam:LijstRollen: Deze machtiging geeft aan dat de gebruiker alle rollen binnen de IAM-service kan vermelden.
    • sts:VeronderstelRol: Deze toestemming geeft aan dat de gebruiker een rol kan aannemen die is gedefinieerd binnen de IAM-service.

Hier is het beleid in het notitieblok bewerkt en opgeslagen:


Elke AWS bron krijgt een toegewezen Toegangsbronnaam (ARN) welke uniek identificeert de hulpbron. Om de ARN van het beleid te bepalen, gebruikt u het onderstaande commando.

aws ik ben create-beleid --beleidsnaam gebruikersbeleid --beleidsdocument bestand: // gebruikersbeleid.json


In het bovengenoemde commando:

    • –beleidsnaam: Vervang de waarde “gebruikersbeleid” met elke polisnaam van uw voorkeur.
    • –beleidsdocument: Vervang in dit veld de “ gebruikersbeleid.json” met de naam van het json-bestand dat het beleid voor de gebruiker bevat.

De uitvoer van het bovengenoemde commando is als volgt. Red de “Arn” vermeld in de uitvoer van het beleid, zoals vereist wanneer dit beleid aan de gebruiker wordt gekoppeld:

Stap 2: Voeg beleid toe aan de gebruiker

Met dit beleid kan de gebruiker de EC2-instanties , Vrienden , enz. Wanneer de gebruiker een rol met een andere machtiging aanneemt, kan de gebruiker alleen die specifieke actie uitvoeren zoals toegestaan ​​door het machtigingsbeleid.

Gebruik de volgende opdracht om het beleid te koppelen aan de gebruiker die eerder in deze sectie is gemaakt:

aws iam bijlage-gebruikersbeleid --gebruikersnaam demo-gebruiker --beleid-arn 'arn:aws:iam::123456789:beleid/gebruikersbeleid'


In het bovengenoemde commando:

    • –gebruikersnaam: Vervang de “demo-gebruiker” in de –gebruikersnaam veld met uw IAM-gebruikersnaam.
    • –beleid-arn: Zo ook in de –beleid-arn, specificeer de “Arn” uit de uitvoer van het vorige commando, d.w.z. –create-policy.

Door de opdracht uit te voeren nadat de vereiste wijzigingen zijn aangebracht, is het beleid met succes aan de gebruiker gekoppeld:


Om te controleren of het beleid aan de gebruiker is gekoppeld, geeft u de volgende opdracht aan de CLI:

aws iam lijst-bijgevoegde-gebruikersbeleid --gebruikersnaam demo-gebruiker


Vervang de demo-gebruiker met uw IAM gebruikersnaam opgegeven bij het aanmaken van de gebruiker.

De uitvoer van de volgende opdracht verifieert dat het beleid met succes aan de gebruiker is gekoppeld:

Stap 3: Creëer een vertrouwensbeleid en IAM-rol

Er wordt een vertrouwensrelatie tot stand gebracht wanneer een bron of de ARN van een gebruiker in een beleid wordt gespecificeerd. Deze functionaliteit stelt de gebruikers of entiteit vervolgens in staat bepaalde acties uit te voeren, aangezien ze door het beleid als vertrouwd worden beschouwd.

In deze stap gaan we een beleid opstellen dat de vertrouwensrelatie tussen de IAM-rol en de gebruiker tot stand brengt. Dit vertrouwensbeleid zal gekoppeld worden aan de IAM-rol. De IAM-rol wordt dan door de gebruiker overgenomen, waardoor de gebruiker indirect de in het beleid gespecificeerde acties kan uitvoeren.

Om een ​​vertrouwensbeleid te creëren, worden de opdrachten als volgt gegeven:

Voor ramen

kladblok trust-role-policy.json


Vervang de trust-role-policy.json met de naam van uw voorkeur voor de polis.

Voor Linux-besturingssysteem

omdat trust-role-policy.json


Vervang de trust-role-policy.json met de naam van uw voorkeur voor de polis.

Het vertrouwensbeleid volgt de JSON-formaat zoals gespecificeerd door de .json extensie in de volgende opdracht:


Hierdoor wordt het notitieblok geopend. Plakken het volgende beleid in het notitieblok en druk op “CTRL+S” op het toetsenbord om de wijzigingen op te slaan. De ARN van de gebruiker kan ook worden gekopieerd vanuit het gebruikersdashboard van de IAM-console. Bezoek hiervoor het IAM-dashboard en klik op de naam van de gebruiker. Kopieer vanuit de weergegeven configuratie de ARN van de gebruiker die wordt weergegeven in de sectie Samenvatting:

{
'Versie' : '2012-10-17' ,
'Stelling' : {
'Effect' : 'Toestaan' ,
'Belangrijk' : {
'AWS' : 'arn:aws:iam::123456789012:gebruiker/voorbeeldgebruiker'
} ,
'Actie' : 'sts: veronderstel een rol'
}
}


In het bovengenoemde beleid:

    • AWS: Vervang de AWS-veldwaarde “arn:aws:iam::123456789012:user/example-user ”met de ARN van de gebruiker die werd weergegeven in de uitvoer van de opdracht –create-user.

De gebruiker kan voorkomen dat andere gebruikers de IAM-rol op zich nemen door de ARN van de gebruiker op te geven in het “AWS” veld:


Lees verder:

Creëer nu een IAM-rol en koppel daar het vertrouwensbeleid aan. Om een ​​IAM-rol aan te maken, gebruikt u het onderstaande commando:

aws ik ben een creatierol --rol naam Gebruikersrol --neem-rol-beleidsdocument aan bestand: // trust-role-policy.json


Hieronder volgt de beschrijving van de bovengenoemde velden:

    • -rol naam: Dit veld wordt gebruikt om de naam in te voeren die aan deze IAM-rol wordt toegewezen. Vervang de waarde “user-role” door de IAM-rolnaam van uw keuze.
    • –rolbeleidsdocument aannemen: Geef in dit veld het pad op zoals opgegeven in de opdracht. Vervang trust-role-policy.json door de beleidsnaam zoals opgegeven door u in de vorige sectie.

Door deze opdracht uit te voeren, worden er verschillende stukjes informatie in de uitvoer geretourneerd, bijvoorbeeld ARN, pad, ID, enz.:


Lees verder:

Wanneer de gebruiker deze rol op zich neemt, kan hij de “Alleen-lezentoegang” actie met de S3-bak. Het commando wordt als volgt gegeven:

aws ik ben een bijlage-rolbeleid --rol naam Gebruikersrol --beleid-arn 'arn:aws:iam::aws:policy/AmazonS3ReadOnlyAccess'


In het bovenstaande commando:

    • -rol naam: Vervangen ' Gebruikersrol' in het veld –role-name met de De naam van de IAM-rol die u eerder in deze zelfstudie hebt opgegeven.
    • –beleid-arn: De arn die is opgegeven in –policy-arn verwijst naar de ReadOnlyAccess-machtiging voor de S3-bucket.

In deze afbeelding is aan de rol de ReadOnlyAccess-machtiging toegewezen voor de S3-bucket:


Om te controleren of de machtiging al dan niet aan de rol is toegewezen, gebruikt u de volgende opdracht:

aws iam lijst-bijgevoegd-rolbeleid --rol naam Gebruikersrol


Vervang de 'Gebruikersrol' met uw IAM-rolnaam.

De “AmazonS3ReadOnlyAccess” toestemming is gekoppeld aan de IAM-rol. De uitvoer van het commando wordt als volgt gegeven:

Stap 4: Maak de toegangssleutels

In deze sectie maken we de toegangssleutels voor de gebruiker aan. De toegangssleutels worden gebruikt om in te loggen op het AWS-account:

aws ik ben een toegangssleutel maken --gebruikersnaam demo-gebruiker


Vervang de demo-gebruiker met uw IAM-gebruikersnaam die u heeft opgegeven bij het aanmaken van een gebruiker.

Hier heeft de opdracht een reeks toegangssleutelparen (AccessKeyId en Secret Access Key) geretourneerd met aanvullende details zoals aanmaakdatum, status, enzovoort. Redden de AccessKeyId en SecretAccessKey zoals deze later in de tutorial nodig zijn:


Lees verder:

Stap 5: Configureer de toegangssleutel en verifieer de IAM-gebruiker

Om de toegangssleutel te configureren, geeft u de volgende opdracht aan de CMD en voert u vervolgens de toegangssleutel-ID en de geheime toegangssleutel in:

aws configureren


Geef de toegangssleutel-ID en de geheime toegangssleutel op voor de CLI die zijn gemaakt in stap 4 van deze sectie. Voor de regio hebben we de standaardinstellingen behouden. Gebruikers kunnen elk uitvoerformaat configureren voor het standaarduitvoerformaat. Voor deze demo hebben we de JSON formaat:


Om te controleren of de IAM-gebruiker is geconfigureerd, geeft u de volgende opdracht aan de CLI:

aws sts get-beller-identiteit


De uitvoer van de opdracht geeft aan dat de “demo-gebruiker” is succesvol geconfigureerd en is momenteel ingelogd op het AWS-account:


Gebruik de volgende opdracht om vast te stellen dat de IAM-gebruiker de EC2-instanties kan weergeven en momenteel geen toegang heeft tot de S3-bucket:

aws ec2 beschrijvingsinstanties --vraag 'Reserveringen[*].Instances[*].[VpcId, InstanceId, ImageId, InstanceType]'


De uitvoer van het commando wordt als volgt gegeven:


Geef nu de volgende opdracht op om te verifiëren of de gebruiker toegang heeft tot de S3-bucket:

aw s3 ls


Hierdoor wordt de 'Toegang geweigerd' fout die aangeeft dat de gebruiker geen toegang heeft tot de S3-bucket:

Stap 6: Neem de IAM-rol over

De gebruiker heeft toestemming om de IAM-rollen binnen het AWS-account weer te geven. Om de rol op zich te nemen, zullen we daarom eerst de benodigde informatie, zoals ARN, verkrijgen door de volgende opdracht uit te voeren:

aws iam lijstrollen --vraag 'Rollen[?RoleName == 'gebruikersrol'].[RoleName, Arn]'


Vervang de “gebruikersrol” door de IAM-rolnaam in het veld “RoleName”.

De ARN is gegeven in de uitvoer van het bovengenoemde commando:


Nu we de ARN van de IAM-rol hebben, kunnen we de rol overnemen door de volgende opdracht te gebruiken:

aws sts nemen de rol over --rol-arn 'arn:aws:iam::123456789012:rol/voorbeeld-rol' --rolsessienaam AWSCLI-sessie


In het bovenstaande commando:

    • –rol-arn: Vervang de genoemde waarde voor de –role-arn door de ARN van de IAM-rol.
    • –rolsessienaam: De gebruiker kan voor dit veld elke gewenste naam opgeven.

Door het bovengenoemde commando uit te voeren, is een set tijdelijke inloggegevens geretourneerd. Deze tijdelijke inloggegevens worden gebruikt om de IAM-rol op zich te nemen met de gewenste toestemming, d.w.z. ReadOnlyAccess. De AccessKeyId en SecretAccessKey worden gebruikt tijdens het configureren van deze tijdelijke inloggegevens:


Hier is een korte beschrijving van de uitvoer van de opdracht:

    • SessieToken: Het sessietoken wordt gebruikt om de sessiegebaseerde login te maken. Sla de waarde van dit veld op, aangezien dit vereist is tijdens het configureren van de inloggegevens.
    • Vervaldatum: Het sessietoken heeft een vervaldatum en -tijd. Na de aangegeven tijd heeft het token geen nut meer en kan de gebruiker de rol niet meer op zich nemen.

Stap 7: Configureer de omgevingsvariabele

Om de tijdelijke inloggegevens te configureren, gebruiken we de opdracht 'set' voor Windows en geven we vervolgens de waarde op van de toegangssleutel-ID, geheime toegangssleutel, sessietoken, enz.:

Voor ramen

set AWS_ACCESS_KEY_ID =RoleAccessKeyID


Vervang de RoleAccessKeyID door de toegangssleutel-ID die is geretourneerd door de opdracht in stap 6.

Voor Linux-besturingssysteem

exporteren AWS_ACCESS_KEY_ID =RoleAccessKeyID


Vervang de RoleAccessKeyID door de toegangssleutel-ID die is geretourneerd door de opdracht in stap 6.

De toegangssleutel is geconfigureerd:


Vervolgens zullen we de geheime toegangssleutel configureren met behulp van de opdracht “set” voor Windows:

Voor ramen

set AWS_SECRET_ACCESS_KEY =RoleSecretKey


Vervang de RoleSecretKey door de waarde voor de geheime toegangssleutel die is geretourneerd door de opdracht in stap 6.

Voor Linux-besturingssysteem

exporteren AWS_SECRET_ACCESS_KEY =RoleSecretKey


Vervang de AWS_SECRET_ACCESS_KEY door de geheime toegangssleutel die is geretourneerd door de opdracht in stap 6.

De geheime toegangssleutel is succesvol geconfigureerd:


Ten slotte zullen we het sessietoken configureren om de sessiegebaseerde login tot stand te brengen. Gebruik hiervoor het onderstaande commando:

Voor ramen

set AWS_SESSION_TOKEN =RoleSessionToken


Vervang de RoleSessionToken door de sessietokenwaarde die is geretourneerd door de opdracht in stap 6.

Voor Linux-besturingssysteem

exporteren AWS_SESSION_TOKEN =RoleSessionToken


Vervang de RoleSessionToken door de sessietokenwaarde die is geretourneerd door de opdracht in stap 6.

De waarde van het sessietoken is succesvol geconfigureerd:


Om de waarde van het sessietoken van CMD te kopiëren, drukt u op “CTRL+SHIFT+C” .

Nadat u de omgevingsvariabelen hebt geconfigureerd, controleert u met behulp van de volgende opdracht of de rol door de gebruiker is overgenomen:

aws sts get-beller-identiteit


De uitvoer van de opdracht verifieert dat de IAM-rol is vervuld met succes aangenomen door de gebruiker als de ARN-retour is “arn:aws:sts::123456789012:aangenomen-rol/gebruikersrol/AWSCLI-sessie” in plaats van “arn:aws:iam::123456789012:gebruiker/demo-gebruiker”:


Omdat de rol de machtiging ReadOnlyAccess bevat, zou de gebruiker de buckets nu moeten kunnen inschakelen. Geef hiervoor de volgende opdracht aan CLI:

aw s3 ls


De uitvoer van de opdracht roept met succes alle S3-buckets op die momenteel zijn geconfigureerd binnen het AWS-account:


De gebruiker heeft echter geen toegang tot de EC2-service, omdat de aangenomen rol geen toestemming heeft voor de EC2-service. Om dit te verifiëren, gebruikt u de volgende opdracht:

aws ec2 beschrijvingsinstanties --vraag 'Reserveringen[*].Instances[*].[VpcId, InstanceId, ImageId, InstanceType]'


Voorheen had de gebruiker toegang tot de EC2-service-informatie. Bij het uitvoeren van de bovengenoemde opdracht wordt echter een 'Toegang geweigerd' er is een fout opgetreden. De gebruiker heeft met succes de IAM-rol op zich genomen:


Dit komt allemaal uit deze sectie.

Bonustip: schakel de omgevingsvariabelen uit

Om terug te keren naar de IAM-gebruiker, d.w.z. de demo-gebruiker, kan de gebruiker de omgevingsvariabelen verwijderen door de omgevingsvariabelen in te stellen op lege tekenreeksen. Hieronder volgen de gegeven opdrachten:

Voor ramen

SET AWS_ACCESS_KEY_ID =
SET AWS_SECRET_ACCESS_KEY =
SET AWS_SESSION_TOKEN =


Voor Linux

Gebruik het onderstaande commando:

uitgeschakeld AWS_ACCESS_KEY_ID AWS_SECRET_ACCESS_KEY AWS_SESSION_TOKEN


De bovengenoemde opdrachten zullen de omgevingsvariabelen uitschakelen:


Na het uitvoeren van de bovenstaande opdrachten zou de console nu het “demo-gebruiker” als de momenteel ingelogde gebruiker in plaats van de veronderstelde rol, d.w.z. gebruikersrol. Voor dit doel gebruiken we het volgende commando:

aws sts get-beller-identiteit


De uitvoer van de opdracht geeft aan dat de momenteel ingelogde gebruiker een demo-gebruiker is:


Op dezelfde manier volgt u om in te loggen als rootgebruiker de “C:\Gebruikers%USERPROFILE%.aws” pad en klik op het referentiebestand:


Vervang in het inloggegevensbestand de waarden van de toegangssleutel en de geheime toegangssleutel door de toegangssleutel en de geheime toegangssleutel van de rootgebruiker:


Geef de volgende opdracht aan de CLI om te controleren of de referenties correct zijn geconfigureerd:

aws configureren


Hier, in de onderstaande afbeelding, kunnen we zien dat de toegangssleutel en de geheime toegangssleutel van de rootgebruiker met succes zijn geconfigureerd:


Dat komt allemaal uit dit gedeelte van de tutorial.

Methode 2: Parameter –profile gebruiken

Een andere methode om de rol op zich te nemen is door het veld “–profile” in de CLI te gebruiken. In dit deel van het artikel wordt de praktische implementatie gepresenteerd van het aannemen van een rol in AWS via –profile. Hieronder staan ​​de stappen daarvoor:

Stap 1: Maak een IAM-gebruiker aan

Om een ​​IAM-gebruiker aan te maken, logt u via CLI in op het rootgebruikersaccount met behulp van de volgende opdracht:

aws configureren


De inloggegevens zijn al geconfigureerd binnen de CLI voor deze demo, zoals weergegeven in de uitvoer van de opdracht:


Kom meer te weten:

Om een ​​IAM-gebruiker aan te maken, geeft u de volgende opdracht aan de CLI:

aws ik ben create-user --gebruikersnaam profiel-gebruiker


De gebruiker is succesvol aangemaakt. Sla de ARN van de gebruiker op zoals weergegeven in de onderstaande afbeelding. De ARN van deze IAM-gebruiker zal later in deze tutorial worden gebruikt. Momenteel zijn er geen rechten gekoppeld aan deze IAM-gebruiker:


Lees verder:

Stap 2: Maak een toegangssleutel

In AWS krijgt elke gebruiker een paar toegangssleutels toegewezen om in te loggen. Om de toegangssleutels voor deze gebruiker te maken, geeft u de volgende opdracht:

aws ik ben een toegangssleutel maken --gebruikersnaam profiel-gebruiker


Deze opdracht retourneert een set toegangssleutels. Redden de AccessKeyId En Geheime Toegangssleutel aangezien dit nodig is tijdens het inloggen op het AWS-account:


Als we nu inloggen op de AWS CLI met behulp van deze AccessKeyId en SecretAccessKey, en toegang krijgen tot elke bron, b.v. S3-emmer, de 'Toegang geweigerd' fout zal optreden. Dit komt omdat er momenteel geen machtigingen zijn gekoppeld aan de IAM-gebruiker. Om in te loggen op de AWS CLI gebruikt u de volgende opdracht en geeft u de Access Key ID en de geheime toegangssleutel op zoals eerder gemaakt:

aws configureren --profiel profiel-gebruiker


Vervang de “profiel-gebruiker” met de IAM-gebruikersnaam die u heeft opgegeven bij het aanmaken van de gebruiker.

Hier hebben we met succes ingelogd op de AWS CLI als de IAM-gebruiker:


Om te controleren of deze gebruiker alleen-lezen-machtigingen heeft voor de S3-bucket, geeft u de volgende opdracht aan de CLI:

aw s3 ls --profiel profiel-gebruiker


Vervang de profielgebruiker door de IAM-gebruikersnaam die u heeft opgegeven bij het aanmaken van de gebruiker.

Omdat aan deze gebruiker geen enkele toestemming is toegewezen door de rootgebruiker, zal dit resulteren in de melding “ Toegang geweigerd ' fout:

Stap 3: Creëer een vertrouwensbeleid en IAM-rol

Een vertrouwensbeleid bepaalt of een gebruiker of een AWS-bron een vertrouwde entiteit is voor het op zich nemen van de rol en het verkrijgen van de machtigingen. Deze vertrouwensrelatie wordt gecreëerd door de ARN van de IAM-gebruiker of AWS-bron op te geven in het Toestemmingsbeleid.

Om een ​​vertrouwensbeleid binnen de IAM te creëren, geeft u de volgende opdracht aan de CLI:

Voor ramen

kladblok vertrouwensbeleid.json


Vervang de vertrouwensbeleid.json met de naam van uw voorkeur voor de polis.

Voor Linux-besturingssysteem

omdat trust-role-policy.json


Vervang de vertrouwensbeleid.json met de naam van uw voorkeur voor de polis.

Gebruikers kunnen elke teksteditor van hun voorkeur gebruiken. Voor deze demo gebruiken we het notitieblok:


Hierdoor wordt het notitieblok geopend voor het maken van het vertrouwensbeleid. Plak het volgende beleid in het kladblok en druk op “CTRL+S” vanaf het toetsenbord om wijzigingen toe te passen en op te slaan:

{
'Versie' : '2012-10-17' ,
'Stelling' : {
'Effect' : 'Toestaan' ,
'Belangrijk' : {
'AWS' : 'arn:aws:iam::012345678910:gebruiker/profiel-gebruiker'
} ,
'Actie' : 'sts: veronderstel een rol'
}
}


In het bovenstaande beleid: AWS: Vervang de waarde “arn:aws:iam::012345678910:user/policy-user” door de ARN van de IAM-gebruiker die eerder in deze sectie is gemaakt.

Het beleid is bewerkt in het kladblok:


Vervolgens creëren we een IAM-rol en koppelen we het bovenstaande vertrouwensbeleid hieraan. Gebruik de volgende opdracht om een ​​IAM-rol te maken:

aws ik ben een creatierol --rol naam mijn rol --neem-rol-beleidsdocument aan bestand: // vertrouwensbeleid.json


In het bovengenoemde commando:

    • -rol naam: Vervang de 'mijn rol' met de IAM-rolnaam van uw keuze.
    • –rolbeleidsdocument aannemen: Vervang in dit veld de term “vertrouwensbeleid.json” met de naam van uw IAM-vertrouwensbeleid

De IAM-rol is succesvol gecreëerd. Sla de IAM-rol op. Sla de ARN van de IAM-rol op zoals gemarkeerd in de volgende afbeelding. Deze ARN wordt gebruikt bij het configureren van het profiel van de gebruiker:


Het vertrouwensbeleid dat aan de IAM is gekoppeld, identificeert of de gebruiker wel of niet wordt vertrouwd omdat hij de rol op zich neemt. Het Permissiebeleid bepaalt of de IAM-rol de vereiste toestemming heeft om een ​​bepaalde actie uit te voeren met AWS-services of niet.

Omdat het vertrouwensbeleid aan de IAM-rol is gekoppeld, is de volgende stap het koppelen van het toestemmingsbeleid aan de IAM-rol. Het onderstaande commando wordt gebruikt om het toestemmingsbeleid aan de IAM-rol te koppelen:

aws ik ben een bijlage-rolbeleid --rol naam mijn rol --beleid-arn 'arn:aws:iam::aws:policy/AmazonS3ReadOnlyAccess'


Hier is het toestemmingsbeleid via CLI aan de IAM-rol gekoppeld:

Stap 4: Profiel configureren

Om ervoor te zorgen dat de gebruiker deze rol op zich kan nemen, zullen we dit profiel eerst configureren binnen de inloggegevens van AWS. Om deze tijdelijke referenties toe te voegen, geeft u de volgende opdracht op:

notitieblok ~ / .aws / configuratie


Bonustip: los het probleem 'Pad niet opgegeven' op in Kladblok

Het configuratiebestand bevat de [standaard] instelling van de AWS CLI. Als het notitieblok echter de melding 'Het systeem kan het opgegeven pad niet vinden' weergeeft, voert u de onderstaande opdracht in:

kladblok.aws / configuratie


Linux-gebruikers kunnen de 'omdat' editor voor het configureren van het profiel. Gebruikers kunnen elke editor van hun voorkeur gebruiken om het configuratiebestand van AWS op de lokale machine te openen:


Bewerk de volgende wijzigingen in het configuratiebestand dat in Kladblok is geopend:

[ profiel profiel-gebruiker ]
rol_arn = arn:aws:iam::012345678910:rol / mijn rol
bron_profiel =profiel-gebruiker


In het bovenstaande fragment:

    • rol_arn: Vervang de waarde “arn:aws:iam::012345678910:role/myrole” door de ARN van de IAM-rol.
    • bron_profiel: Geef in dit veld de naam op van de IAM-gebruiker die is aangemaakt in stap 1 van deze methode.

Nadat u de gewenste wijzigingen heeft aangebracht, drukt u op “CTRL+S” vanaf het toetsenbord om wijzigingen toe te passen en op te slaan:


Om nu te verifiëren of de gebruiker nu de S3-buckets kan weergeven of niet, geeft u de volgende opdracht aan de CLI:

aw s3 ls --profiel profiel-gebruiker


In het bovenstaande commando: –profiel-gebruiker: Vervang in dit veld de waarde “profile-use” door de naam die u opgeeft in het configuratiebestand.

Omdat we “profile-user” hebben gespecificeerd in het configuratiebestand, zullen we daarom dezelfde naam gebruiken met de opdracht in CLI. Voorheen had de gebruiker geen toegang tot de S3-service van AWS omdat er geen rechten aan waren toegewezen. De IAM-rol heeft de toestemming van “ReadOnlyAccess” van de S3-bucket en daarom kan de gebruiker, door deze rol op zich te nemen, de buckets uit het S3-dashboard weergeven:


Dat komt allemaal uit deze methode van de tutorial.

Methode 3: MFA gebruiken (Multi-Factor Authenticatie)

Door de Multi-Factor Authenticatie in te schakelen, kan de gebruiker een extra beveiligingslaag voor het account van de gebruiker configureren. Als MFA is ingeschakeld, hebben ongeautoriseerde gebruikers geen toegang tot het account van een gebruiker, zelfs niet als ze een wachtwoord en gebruikersnaam opgeven. De MFA is een zescijferige code die vereist is om in te loggen op het account. Raadpleeg dit artikel voor meer informatie over meervoudige authenticatie:

Hieronder volgen de stappen om via CLI een rol bij MFA op zich te nemen:

Stap 1: Maak een IAM-gebruiker aan en schakel MFA in

Voor deze stap kan de gebruiker de CLI gebruiken om de gebruiker aan te maken of toegang krijgen tot de AWS Management Console. Log in op het rootgebruikersaccount met behulp van de volgende opdracht:

aws configureren


De uitvoer van het commando wordt als volgt gegeven:


Om een ​​gebruiker aan te maken, geeft u de volgende opdracht aan de CLI:

aws ik ben create-user --gebruikersnaam mfa-gebruiker


In het bovenstaande commando: –gebruikersnaam: Vervang de “mfa-gebruiker” met de IAM-gebruikersnaam van uw keuze.

De gebruiker is succesvol aangemaakt. Sla de ARN van de gebruiker op, aangezien deze later in deze sectie nodig zal zijn. Momenteel zijn aan deze gebruiker geen rechten toegewezen:


Om de MFA in te schakelen, gaat u naar de AWS Management Console en zoekt u naar de IAM-service. Klik erop in de weergegeven resultaten:


Klik op de optie Gebruikers in het linkernavigatievenster van de IAM-service. Klik vanuit het gebruikersdashboard op de gebruikersnaam om de MFA te configureren:


Tik in de volgende interface op de “Beveiligingsreferenties” keuze:


Scroll naar beneden naar de Multi-factor authenticatie sectie en klik op de “MFA-apparaat toewijzen” knop:


Verschaffen betekenisvolle naam in de Toestelnaam tekstveld op de weergegeven interface:


Blader omlaag naar het gedeelte MFA-apparaat. De gebruiker krijgt verschillende opties te zien om de MFA in te schakelen, bijvoorbeeld door de QR-code te scannen, via de beveiligingssleutel of het hardware-TOTP-token. Voor deze demo selecteert u de “Authenticator-app” keuze:


Druk op 'Volgende' knop onderaan de interface om verder te gaan:


Klik op de “Toon QR-code” zoals weergegeven in de onderstaande afbeelding:


Lanceer de applicatie op uw mobiel of laptop om de QR-code te scannen. Druk op “+” optie vanuit de Symantec VIP-interface:


In de Play Store wordt Symantec VIP genoemd als VIP Access.

Klik in de volgende interface van Symantec VIP op de Scan QR-code knop onderaan de interface:


Scan de QR-code van de AWS MFA De app-interface van Authenticator weergegeven. Deze code genereert een reeks codes die nodig zijn om in te loggen op de IAM-gebruikersconsole:


De Symantec VIP-app genereert OTP van zes cijfers na het scannen van de QR-code. Deze codes blijven na elke keer komen 30 seconden . De onderstaande schermafbeelding toont de twee codes die worden gegenereerd:


Geef de codes door aan de MFA-code 1 En MFA-code 2 tekstvelden op de Authenticator App-interface van MFA. Klik op de “MFA toevoegen” knop daarna om de functionaliteit in te schakelen:


De MFA is succesvol ingeschakeld voor de IAM-gebruiker. Dit kan worden geverifieerd door de “Multi-factor authenticatie (MFA)” gedeelte van de “Beveiligingsreferenties” tabblad van de IAM-gebruiker . Sla in deze sectie de waarde van Identifier op, aangezien deze vereist is terwijl u de rol op zich neemt:

Stap 2: Beleid aan gebruiker koppelen

Als een gebruiker een rol wil aannemen, moet de gebruiker de IAM-rol kunnen vermelden om te bepalen welke rol hij op zich moet nemen en welke toestemming hij daarvoor heeft. Om de gebruiker van de vereiste toestemming te voorzien, volgt u van methode 1 in deze zelfstudie

Stap 3: Creëer een vertrouwensbeleid en een IAM-rol

De volgende stap is het maken van een vertrouwensbeleid om te bepalen of de gebruiker een vertrouwde entiteit is of niet. Dit vertrouwensbeleid wordt vervolgens gekoppeld aan de IAM-rol. Om het vertrouwensbeleid en de IAM-rol te creëren, navigeert u naar de opdrachtprompt en volgt u van methode 1 in dit artikel.

Stap 4: Maak een toegangssleutel

Om de gebruiker te kunnen autoriseren en authenticeren, wordt een paar toegangssleutels gegenereerd die wereldwijd uniek zijn op het AWS-platform. Deze sleutelparen worden gebruikt bij het inloggen op het AWS-account. Om de toegangssleutels voor de IAM-gebruiker aan te maken, volgt u de van methode 1 in dit artikel.

Stap 5: Configureer referenties

De AWS-gebruiker heeft alleen toegang tot de AWS-bronnen en -services als de inloggegevens correct zijn geconfigureerd. In dit gedeelte van de methode configureren we de inloggegevens van de IAM-gebruiker door de toegangssleutel en de geheime toegangssleutel aan de opdrachtregelinterface te verstrekken. Volg hiervoor de van methode 1 van deze tutorial.

Stap 6:  Neem de IAM-rol over

Na het succesvol koppelen van de IAM-rol en het implementeren van het Trust-beleid, kan de gebruiker nu de IAM-rol op zich nemen. Geef hiervoor de volgende opdracht aan de CLI:

aws ik ben een toegangssleutel maken --gebruikersnaam mfa-gebruiker


Hier is de sleutel succesvol aangemaakt voor de IAM-gebruiker. Sla de AccessKeyId en SecretAccessKey op, aangezien deze nodig zijn voor het inloggen op het AWS-account:


De volgende stap is het configureren van de toegangssleutels binnen de AWS CLI. Gebruik de onderstaande opdracht voor het configureren van de CLI:

aws configureren


Geef de toegangssleutel en geheime toegangssleutel aan de CLI voor configuraties:


Om te controleren of de IAM-gebruiker is ingelogd op de AWS CLI, gebruikt u de volgende opdracht:

aws sts get-beller-identiteit


De uitvoer van de opdracht wordt als volgt gegeven, wat aangeeft dat de gebruiker succesvol is ingelogd op de AWS-console:


De gebruiker heeft de toestemming om de IAM-rollen binnen het AWS-account weer te geven. Het onderstaande commando wordt gebruikt om de IAM-rollen weer te geven:

aws iam lijstrollen --vraag 'Rollen[?RoleName == 'mfa-rol'].[RoleName, Arn]


In het bovenstaande commando: Rol naam: Vervang binnen dit veld de waarde “mfa-role” door de naam van uw IAM-rol.

De uitvoer van het commando wordt als volgt gegeven:


Om de IAM-rol met MFA over te nemen, gebruikt u de opdracht 'aannemen rol' met aanvullende parameters zoals serienummer en tokencode. Geef de volgende opdracht aan de CLI:

aws sts nemen de rol over --rol-arn 'arn:aws:iam::123456789012:rol/m-rol' --rolsessienaam AWSCLI-sessie --serienummer 'arn:aws:iam::012345678910:mfa/admindevice' --token-code '123456'


In het bovenstaande commando:

    • –rol-arn: Vervang de waarde van dit veld door de ARN van uw IAM-rol.
    • –rolsessienaam: In dit veld kan de gebruiker elke gewenste sessienaam opgeven.
    • -serienummer: Vervang de waarde van dit veld door de Identifier-waarde uit de MFA-interface die eerder is opgeslagen.
    • –token-code: Deze waarde moet worden vervangen door de huidige code die wordt weergegeven in de Symantec VIP-interface.

De huidige code die wordt weergegeven in de Symantec VIP wordt als volgt weergegeven. Dezelfde code zal worden gebruikt in de –token-code waarde van de opdracht:


De uitvoer van de opdracht bevat de tijdelijke inloggegevens, zoals een sessietoken, toegangssleutel, geheime toegangssleutel, enz.:

Stap 7: Configureer omgevingsvariabelen

De toegangssleutels en het sessietoken dat wordt geretourneerd, worden nu gebruikt om de sessiegebaseerde login tot stand te brengen en de rol op zich te nemen. De gedetailleerde implementatie voor het configureren van de omgeving wordt besproken in van Methode 1.

Laatste gedachten

Om een ​​rol op zich te nemen met behulp van CLI, zijn er drie methoden, namelijk via de STS (security token service), –profile parameter of de MFA (Multi-Factor Authentication). Voordat een gebruiker een rol op zich kan nemen, moet er eerst een vertrouwensbeleid worden opgesteld. Dit vertrouwensbeleid bepaalt of de gebruiker een vertrouwde entiteit is of niet. Deze functionaliteit is nodig omdat het de beveiligingsproblemen van IT-experts en individuen aanpakt. Bovendien kan de gebruiker de rol alleen op zich nemen als hij over de vereiste rechten beschikt.

Wanneer een gebruiker een rol in de AWS op zich neemt, wordt er een sessiegebaseerde login aangemaakt om de gebruiker met de gewenste rechten gedurende een beperkte tijd toegang te geven. Er wordt een token gegenereerd dat na een bepaalde tijd verloopt, waardoor de gebruiker de administratieve taak niet langer kan uitvoeren met AWS-bronnen. Dit artikel biedt een praktische implementatie van de drie methoden voor het op zich nemen van een rol in AWS CLI.