Cum să vă asumați un rol IAM utilizând AWS CLI?

Cum Sa Va Asumati Un Rol Iam Utilizand Aws Cli



Deoarece AWS oferă mai multe servicii și beneficii enorme, este firesc ca problemele de securitate să fi fost ridicate de experții IT. Pentru a rezolva aceste probleme de securitate, serviciul IAM a fost introdus de AWS. AWS IAM este unul dintre serviciile web de bază care permit utilizatorilor să securizeze resursele AWS. IAM oferă funcționalitatea de gestionare centrală a accesului la serviciile AWS prin definirea permisiunilor pentru diferiți utilizatori.

Schiță rapidă

În acest articol, veți afla despre:







Care este rolul AWS IAM?
Care este rolul asumării în AWS?
Cum să vă asumați un rol IAM utilizând AWS CLI?



Gânduri finale



Cu rolurile și permisiunile IAM, putem determina accesul autentificat și autorizat la serviciile AWS. Aceste roluri și permisiuni pot fi atribuite numai de utilizatorul root (proprietarul) contului AWS.





Care este rolul AWS IAM?

Rolul IAM este o identitate creată de utilizatorul root în cadrul contului AWS. Această identitate are permisiuni specifice care definesc domeniul de acces al rolului IAM la resursele AWS. Aceste permisiuni pot fi fie gestionate de AWS, fie definite personalizat de utilizatorul root.

Un rol IAM este foarte asemănător cu utilizatorul IAM, cu excepția faptului că rolul IAM este o identitate cu anumite permisiuni, în timp ce utilizatorul își poate asuma aceste roluri pentru a îndeplini anumite funcționalități. Permisiunile care sunt acordate rolului definesc ce acțiuni pot fi întreprinse cu această identitate (rolul IAM).



Care este rolul asumării în AWS?

Asuma Rolul este una dintre funcționalitățile serviciului AWS IAM care permite utilizatorului să acționeze cu serviciile AWS, deși permisiunile pentru accesarea sau manipularea resursei din cadrul serviciului nu sunt atribuite utilizatorului. Aceste permisiuni sunt atribuite indirect utilizatorului atunci când este asumat un rol. Un set de acreditări temporare împreună cu o conectare bazată pe sesiune este utilizat pentru accesarea resurselor AWS.

Aceste acreditări temporare includ o cheie de acces secretă, un ID cheie de acces și un simbol de securitate. Rolurile IAM create de utilizatorul root AWS pot fi asumate de ceilalți utilizatori din contul AWS sau de acei utilizatori al căror ARN este menționat în politica rolului. Politica care conține ARN-ul utilizatorilor sau al resurselor este cunoscută sub numele de Politica de încredere .

Care este diferența dintre politica de permisiuni și politica de încredere?

Înainte de a implementa funcționalitatea de asumare a rolului prin metode diferite, există două concepte de bază care trebuie să fie înțelese de către utilizator. Există două tipuri de politici în serviciul IAM:

    • Politica de încredere: O politică de încredere determină cine își poate asuma un anumit rol IAM. Pentru ca un rol să fie asumat de un utilizator, ARN-ul utilizatorului este menționat în politica de încredere a rolului IAM. Această politică de încredere determină dacă utilizatorul sau resursele sunt o entitate de încredere pentru asumarea acestui rol.
    • Politica de permisiuni: Această politică determină ce poate face un utilizator sau ce acțiuni pot fi efectuate cu rolul.

Cum să vă asumați un rol IAM utilizând AWS CLI?

A-ți asuma un rol este similar cu a te deghiza în alt utilizator care este autentificat și autorizat să efectueze anumite acțiuni. În timp ce își asumă o identitate, AWS s-a asigurat că securitatea rămâne intactă.

Să înțelegem funcționarea funcției Asume-rol luând în considerare următorul exemplu.

De exemplu, există un utilizator în contul AWS căruia nu i-au fost atribuite permisiuni pentru compartimentul S3. The „Acces numai în citire” se numește politica de permisiuni care este atașată unui rol IAM. Pentru ca utilizatorul să își asume acest rol, ARN-ul utilizatorului este menționat în politica rolului IAM. Această politică se numește acum ca „politica de încredere” și este diferit de politica de permisiuni. Politica de încredere este crucială, deoarece ajută AWS să determine dacă utilizatorul este o entitate autorizată sau nu.

Rețineți că ARN-ul este menționat în politica de încredere și nu în politica de permisiuni a rolului IAM. Prin asumarea unui rol, utilizatorul poate efectua câteva acțiuni administrative definite de politica de permisiuni a rolului. Aceste acțiuni includ adăugarea, ștergerea, modificarea sau restaurarea unei resurse etc.

Următoarele sunt cele trei Metode pentru asumarea unui rol cu ​​AWS CLI:

Metoda 1: Utilizarea STS (Serviciul de jetoane de securitate)

Utilizatorii își pot asuma un rol executând comenzile din secțiunea STS (Secure Token Service) care returnează un set de acreditări temporare. Acreditările temporare sunt folosite pentru a stabili o autentificare bazată pe sesiune pentru a efectua apeluri API către resurse. Cu toate acestea, există doua exceptii în timp ce utilizați STS, adică GetFederationToken și GetSessionToken.

Utilizatorului îi este restricționat accesul la aceste token-uri pentru a securiza informațiile confidențiale ale Session and Federation Tokens. Pentru ca securitatea să nu fie compromisă sub nicio formă. Prin asumarea unui rol, un utilizator își poate ridica privilegiile atribuite.

În această secțiune a articolului, vom solicita un set de acreditări temporare folosind comenzile STS. Mai jos sunt pașii:

Pasul 1: Creați o politică de utilizator și utilizator

În primul rând, vom face creați un utilizator IAM fără permisiuni. În acest scop, deschideți CMD din meniul Start al Windows:


Doar utilizator root poate sa crea un utilizator IAM în contul AWS. Prin urmare, conectați-vă la contul rădăcină AWS utilizând următoarea comandă:

aws configure


Acreditările sunt deja configurate în CLI pentru această demonstrație, așa cum se arată în rezultatul comenzii:


Află mai multe:

La creați un utilizator IAM , furnizați următoarea comandă către CLI:

aws iam create-user --nume de utilizator utilizator demo


Inlocuieste utilizator demo cu dvs Nume de utilizator IAM.

Salveaza „Arn” dat în ieșirea comenzii așa cum va fi necesar când crearea cel Politica de încredere :


Citeşte mai mult:

Următorul pas este să permite utilizatorul (demo-user ) la asuma un rol . În acest scop, creați un Fișier JSON folosind orice editor de text tu preferi. Pentru acest demo, am folosit Notepad așa cum este specificat în comanda menționată mai jos:

Pentru Windows

notepad user-policy.json


Inlocuieste politica utilizatorului cu numele politicii dvs. IAM.

Pentru sistemul de operare Linux

deoarece user-policy.json


În acest moment, folosim sistemul de operare Windows pentru această demonstrație:


Acest lucru va deschide blocnotesul. Lipiți următoarea politică în notepad și apăsați „CTRL + S” de la tastatură pentru a salva modificările:

{
'Versiune' : „2012-10-17” ,
'Afirmație' : [
{
'Efect' : 'Permite' ,
'Acțiune' : [
„ec2: Descrie*” ,
„iam:ListRoles” ,
„sts:AssumeRole”
] ,
'Resursă' : '*'
}
]
}


Mai jos este oferită o scurtă descriere a politicii specificate:

    • ec2: Descrieți: Această permisiune specifică faptul că utilizatorul poate vizualiza sau lista toate AMI-urile, instantaneele sau instanțele EC2
    • iam:ListRoles: Această permisiune specifică faptul că utilizatorul poate lista toate rolurile din serviciul IAM.
    • sts:AssumeRole: Această permisiune reprezintă faptul că utilizatorul își poate asuma un rol definit în cadrul serviciului IAM.

Aici, politica a fost editată în bloc-notes și este salvată:


Fiecare AWS resursă i se atribuie un Nume de resurse de acces (ARN) care identifică în mod unic resursa. Pentru a determina ARN-ul politicii, utilizați comanda menționată mai jos.

aws iam create-policy --policy-name politica utilizatorului --politică-document fişier: // user-policy.json


În comanda de mai sus:

    • –nume-politică: Înlocuiți valoarea „politica utilizatorului” cu orice nume de politică preferat.
    • – document de politică: În acest câmp, înlocuiți „ user-policy.json” cu numele fișierului json care conține politica pentru utilizator.

Ieșirea comenzii menționate mai sus este următoarea. Salveaza „Arn” menționat în rezultatul politicii, deoarece va fi necesar la atașarea acestei politici cu utilizatorul:

Pasul 2: Atașați politica cu utilizatorul

Această politică va permite utilizatorului să listeze Instanțele EC2 , Prieteni , etc. Atunci când utilizatorul își asumă un rol cu ​​o permisiune diferită, utilizatorul va putea efectua numai acțiunea specifică permisă de politica de permisiune.

Pentru a atașa politica cu utilizatorul creat mai devreme în această secțiune, utilizați următoarea comandă:

aws iam attach-user-policy --nume de utilizator utilizator demo --politică-arn „arn:aws:iam::123456789:policy/user-policy”


În comanda de mai sus:

    • -nume de utilizator: Inlocuieste „utilizator demonstrativ” în -nume de utilizator câmp cu numele dvs. de utilizator IAM.
    • –politic-arn: În mod similar, în –politică-arn, specifică „Arn” din rezultatul comenzii anterioare, adică –create-policy.

Prin executarea comenzii după efectuarea modificărilor necesare, politica a fost atașată cu succes utilizatorului:


Pentru a verifica dacă politica a fost atașată utilizatorului, furnizați următoarea comandă la CLI:

aws iam list-attached-user-policies --nume de utilizator utilizator demo


Inlocuieste utilizator demo cu IAM-ul tău nume de utilizator specificat la crearea utilizatorului.

Ieșirea următoarei comenzi verifică dacă politica a fost atașată cu succes utilizatorului:

Pasul 3: Creați o politică de încredere și un rol IAM

O relație de încredere este stabilită atunci când o resursă sau ARN-ul unui utilizator este specificat într-o politică. Această funcționalitate permite apoi utilizatorilor sau entității să efectueze anumite acțiuni, deoarece acestea sunt considerate de încredere de către politică.

În acest pas, vom crea o politică care stabilește relația de încredere între rolul IAM și utilizator. Această politică de încredere va fi atașată rolului IAM. Rolul IAM va fi apoi asumat de utilizator, ceea ce va permite indirect utilizatorului să efectueze acțiunile specificate în politică.

Pentru a crea o politică de încredere, comenzile sunt date după cum urmează:

Pentru Windows

notepad trust-role-policy.json


Inlocuieste trust-role-policy.json cu numele preferinței dvs. pentru politică.

Pentru sistemul de operare Linux

deoarece trust-role-policy.json


Inlocuieste trust-role-policy.json cu numele preferinței dvs. pentru politică.

Politica de încredere urmează format JSON după cum este specificat de .json extensie în următoarea comandă:


Acest lucru va deschide blocnotesul. Pastă următoarele politică în bloc-notes și apăsați pe „CTRL + S” butonul de la tastatură pentru a salva modificările. ARN-ul utilizatorului poate fi copiat și din tabloul de bord al utilizatorului al consolei IAM. În acest scop, accesați tabloul de bord IAM și faceți clic pe numele utilizatorului. Din configurația afișată, copiați ARN-ul utilizatorului care este afișat în secțiunea Rezumat.:

{
'Versiune' : „2012-10-17” ,
'Afirmație' : {
'Efect' : 'Permite' ,
'Major' : {
'AWS' : „arn:aws:iam::123456789012:utilizator/exemplu-utilizator”
} ,
'Acțiune' : „sts:AssumeRole”
}
}


În politica menționată mai sus:

    • AWS: Inlocuieste Valoarea câmpului AWS „arn:aws:iam::123456789012:user/example-user ”cu ARN-ul utilizatorului care a fost afișat în rezultatul comenzii –create-user.

Utilizatorul poate restricționa alți utilizatori să își asume rolul IAM prin specificarea ARN-ului utilizatorului în „AWS” camp:


Citeşte mai mult:

Acum, creați un rol IAM și atașați-i politica de încredere. Pentru a crea un rol IAM, utilizați comanda menționată mai jos:

aws am creat-rol --nume rol rol de utilizator --assume-role-policy-document fişier: // trust-role-policy.json


Mai jos este descrierea câmpurilor menționate mai sus:

    • -nume rol: Acest câmp este folosit pentru a introduce numele care va fi atribuit acestui rol IAM. Înlocuiți valoarea „rol-utilizator” cu numele rolului IAM la alegere.
    • –asumarea-rol-document-politică: În acest câmp specificați calea așa cum este dată în comandă. Înlocuiți trust-role-policy.json cu numele politicii specificat de dvs. în secțiunea anterioară.

Prin executarea acestei comenzi, va returna mai multe informații în ieșire, de exemplu, ARN, Path, ID etc:


Citeşte mai mult:

La asumarea acestui rol, utilizatorul va putea efectua „ReadOnlyAccess” acțiune cu găleata S3. Comanda este dată după cum urmează:

aws iam attach-role-policy --nume rol rol de utilizator --politică-arn „arn:aws:iam::aws:policy/AmazonS3ReadOnlyAccess”


În comanda de mai sus:

    • -nume rol: A inlocui ' rol de utilizator” în câmpul –role-name cu numele rolului IAM pe care le-ați specificat mai devreme în acest tutorial.
    • –politic-arn: Arnul specificat în –policy-arn se referă la permisiunea ReadOnlyAccess pentru compartimentul S3.

În această imagine, rolului i s-a atribuit permisiunea ReadOnlyAccess pentru compartimentul S3:


Pentru a verifica dacă permisiunea a fost atribuită rolului sau nu, utilizați următoarea comandă:

aws iam list-attached-role-policies --nume rol rol de utilizator


Inlocuieste „rol de utilizator” cu numele rolului dvs. IAM.

The „AmazonS3ReadOnlyAccess” permisiunea a fost atașată rolului IAM. Ieșirea comenzii este dată după cum urmează:

Pasul 4: Creați cheile de acces

În această secțiune, vom crea cheile de acces pentru utilizator. Cheile de acces vor fi folosite pentru a vă conecta la contul AWS:

aws iam create-access-key --nume de utilizator utilizator demo


Inlocuieste utilizator demo cu numele dvs. de utilizator IAM dat în momentul creării unui utilizator.

Aici, comanda a returnat un set de perechi de chei de acces (AccessKeyId și cheie de acces secretă)  cu detalii suplimentare, cum ar fi data creării, starea etc. Salvați AccessKeyId și SecretAccessKey, așa cum sunt necesare mai târziu în tutorial:


Citeşte mai mult:

Pasul 5: Configurați cheia de acces și verificați utilizatorul IAM

Pentru a configura cheia de acces, furnizați următoarea comandă către CMD și apoi introduceți ID-ul cheii de acces și Cheia de acces secretă:

aws configure


Furnizați ID-ul cheii de acces și cheia secretă de acces la CLI care au fost create la pasul 4 din această secțiune. Pentru regiune, am păstrat setările implicite. Utilizatorii pot configura orice format de ieșire pentru formatul de ieșire implicit. Pentru acest demo, am specificat JSON format:


Pentru a verifica dacă utilizatorul IAM a fost configurat, furnizați următoarea comandă la CLI:

aws sts get-caller-identity


Ieșirea comenzii indică faptul că „utilizator demonstrativ” a fost configurat cu succes și este în prezent conectat la contul AWS:


Pentru a determina dacă utilizatorul IAM poate lista instanțele EC2 și nu are acces la compartimentul S3 în prezent, utilizați următoarea comandă:

aws ec2 descrie-instanțe --interogare „Rezervari[*].Instanțe[*].[VpcId, InstanceId, ImageId, InstanceType]”


Ieșirea comenzii este dată după cum urmează:


Acum, furnizați următoarea comandă pentru a verifica dacă utilizatorul poate accesa compartimentul S3:

aws s3 ls


Aceasta va afișa 'Acces interzis' eroare care indică faptul că utilizatorului nu i se permite să acceseze compartimentul S3:

Pasul 6: Asumați-vă rolul IAM

Utilizatorul are permisiunea de a enumera rolurile IAM din contul AWS. Prin urmare, pentru a ne asuma rolul, vom obține mai întâi informațiile necesare, cum ar fi ARN, executând următoarea comandă:

aws iam list-roluri --interogare „Roluri[?RoleName == „rol-utilizator”].[RoleName, Arn]”


Înlocuiți „rolul-utilizator” cu numele rolului IAM în câmpul „RoleName”.

ARN-ul a fost dat în rezultatul comenzii menționate mai sus:


Acum că avem ARN-ul rolului IAM, ne putem asuma rolul utilizând următoarea comandă:

aws sts asuma-rol --rol-arn „arn:aws:iam::123456789012:rol/exemplu-rol” --rol-session-name AWSCLI-Sesiune


În comanda de mai sus:

    • –rol-arn: Înlocuiți valoarea menționată pentru –role-arn cu ARN-ul rolului IAM.
    • –rol-sesiune-nume: Utilizatorul poate furniza orice nume de preferință pentru acest câmp.

Prin executarea comenzii menționate mai sus, a fost returnat un set de acreditări temporare. Aceste acreditări temporare vor fi utilizate pentru a-și asuma rolul IAM cu permisiunea dorită, adică ReadOnlyAccess. AccessKeyId și SecretAccessKey vor fi folosite la configurarea acestor acreditări temporare:


Iată o scurtă descriere a rezultatului comenzii:

    • SessionToken: Indicatorul de sesiune este folosit pentru a crea autentificarea bazată pe sesiune. Salvați valoarea acestui câmp, deoarece va fi necesar în timpul configurării acreditărilor.
    • Expirare: Indicatorul de sesiune are o dată și o oră de expirare. Tokenul nu va fi de nici un folos după timpul specificat și utilizatorul nu va putea să-și asume rolul.

Pasul 7: Configurați variabila de mediu

Pentru a configura acreditările temporare, vom folosi comanda „set” pentru Windows și apoi vom furniza valoarea ID-ului cheii de acces, cheii de acces secrete, simbolului de sesiune etc.:

Pentru Windows

a stabilit AWS_ACCESS_KEY_ID =RoleAccessKeyID


Înlocuiți RoleAccessKeyID cu ID-ul cheii de acces care a fost returnat de comanda la Pasul 6.

Pentru sistemul de operare Linux

export AWS_ACCESS_KEY_ID =RoleAccessKeyID


Înlocuiți RoleAccessKeyID cu ID-ul cheii de acces care a fost returnat de comanda din Pasul 6.

Cheia de acces a fost configurată:


În continuare, vom configura cheia de acces secretă utilizând comanda „set” pentru Windows:

Pentru Windows

a stabilit AWS_SECRET_ACCESS_KEY =RoleSecretKey


Înlocuiți RoleSecretKey cu valoarea Secret Access Key care a fost returnată de comanda din Pasul 6.

Pentru sistemul de operare Linux

export AWS_SECRET_ACCESS_KEY =RoleSecretKey


Înlocuiți AWS_SECRET_ACCESS_KEY cu cheia de acces secretă care a fost returnată de comanda din Pasul 6.

Cheia de acces secretă a fost configurată cu succes:


În cele din urmă, vom configura simbolul de sesiune pentru a stabili autentificarea bazată pe sesiune. În acest scop, utilizați comanda menționată mai jos:

Pentru Windows

a stabilit AWS_SESSION_TOKEN =RoleSessionToken


Înlocuiți RoleSessionToken cu valoarea Session Token care a fost returnată de comanda din Pasul 6.

Pentru sistemul de operare Linux

export AWS_SESSION_TOKEN =RoleSessionToken


Înlocuiți RoleSessionToken cu valoarea Session Token care a fost returnată de comanda din Pasul 6.

Valoarea simbolului de sesiune a fost configurată cu succes:


Pentru a copia valoarea Session Token din CMD, apăsați „CTRL + SHIFT+ C” .

După configurarea variabilelor de mediu, verificați folosind următoarea comandă dacă rolul a fost asumat de utilizator:

aws sts get-caller-identity


Ieșirea comenzii verifică dacă rolul IAM a fost asumat cu succes de către utilizator, așa cum este returnarea ARN „arn:aws:sts::123456789012:assumed-role/user-role/AWSCLI-Session” în loc de „arn:aws:iam::123456789012:user/demo-user”:


Deoarece rolul conține permisiunea ReadOnlyAccess, utilizatorul ar trebui să poată înrola gălețile acum. În acest scop, furnizați următoarea comandă către CLI:

aws s3 ls


Ieșirea comenzii înregistrează cu succes toate compartimentele S3 configurate în prezent în contul AWS:


Cu toate acestea, utilizatorul nu va putea accesa serviciul EC2, deoarece rolul asumat nu are permisiunea pentru serviciul EC2. Pentru a verifica acest lucru, utilizați următoarea comandă:

aws ec2 descrie-instanțe --interogare „Rezervari[*].Instanțe[*].[VpcId, InstanceId, ImageId, InstanceType]”


Anterior, utilizatorul putea accesa informațiile de serviciu EC2. Cu toate acestea, la executarea comenzii menționate mai sus, an 'Acces interzis' a apărut o eroare. Utilizatorul și-a asumat cu succes rolul IAM:


Toate acestea sunt din această secțiune.

Sfat bonus: dezactivați variabilele de mediu

Pentru a reveni la utilizatorul IAM, adică utilizatorul demonstrativ, utilizatorul poate elimina variabilele de mediu setând variabilele de mediu la șiruri goale. Următoarele sunt comenzile date:

Pentru Windows

A STABILIT AWS_ACCESS_KEY_ID =
A STABILIT AWS_SECRET_ACCESS_KEY =
A STABILIT AWS_SESSION_TOKEN =


Pentru Linux

Utilizați comanda menționată mai jos:

neasezat AWS_ACCESS_KEY_ID AWS_SECRET_ACCESS_KEY AWS_SESSION_TOKEN


Comenzile menționate mai sus vor anula variabilele de mediu:


După executarea comenzilor de mai sus, consola ar trebui să returneze „utilizator demonstrativ” ca utilizator conectat în prezent în loc de rolul asumat, adică rol de utilizator. În acest scop, vom folosi următoarea comandă:

aws sts get-caller-identity


Ieșirea comenzii indică faptul că utilizatorul conectat în prezent este utilizator demonstrativ:


În mod similar, pentru a vă autentifica ca utilizator root, urmați „C:\Users%USERPROFILE%.aws” cale și faceți clic pe fișierul de acreditări:


În fișierul de acreditări, înlocuiți valorile cheii de acces și cheii de acces secrete cu cheia de acces și cheia de acces secretă a utilizatorului root:


Furnizați următoarea comandă către CLI pentru a verifica dacă acreditările sunt configurate corect:

aws configure


Aici, în imaginea de mai jos, putem vedea că cheia de acces și cheia de acces secretă a utilizatorului root au fost configurate cu succes:


Asta este tot din această secțiune a tutorialului.

Metoda 2: Utilizarea parametrului –profile

O altă metodă de asumare a rolului este utilizarea câmpului „–profil” din CLI. Această secțiune a articolului prezintă implementarea practică a asumării unui rol în AWS prin –profil. Mai jos sunt pașii pentru aceasta:

Pasul 1: Creați un utilizator IAM

Pentru a crea un utilizator IAM, conectați-vă la contul de utilizator root prin CLI utilizând următoarea comandă:

aws configure


Acreditările sunt deja configurate în CLI pentru această demonstrație, așa cum se arată în rezultatul comenzii:


Află mai multe:

Pentru a crea un utilizator IAM, furnizați următoarea comandă la CLI:

aws iam create-user --nume de utilizator utilizator de profil


Utilizatorul a fost creat cu succes. Salvați ARN-ul utilizatorului așa cum este afișat în imaginea de mai jos. ARN-ul acestui utilizator IAM va fi folosit mai târziu în acest tutorial. În prezent, nu există permisiuni asociate cu acest utilizator IAM:


Citeşte mai mult:

Pasul 2: Creați cheia de acces

În AWS, fiecărui utilizator i se atribuie o pereche de chei de acces pentru autentificare. Pentru a crea cheile de acces pentru acest utilizator, furnizați-i următoarea comandă:

aws iam create-access-key --nume de utilizator utilizator de profil


Această comandă returnează un set de chei de acces. Salvați cel AccessKeyId și SecretAccessKey deoarece va fi necesar la conectarea la contul AWS:


Acum, dacă ne conectăm la AWS CLI folosind aceste AccessKeyId și SecretAccessKey și accesăm orice resursă, de ex. S3 găleată, 'Acces interzis' va apărea o eroare. Acest lucru se datorează faptului că în prezent nu există permisiuni asociate cu utilizatorul IAM. Pentru a vă conecta la AWS CLI, utilizați următoarea comandă și furnizați ID-ul cheii de acces și cheia de acces secretă așa cum a fost creat mai devreme:

aws configure --profil utilizator de profil


Inlocuieste „utilizator de profil” cu numele de utilizator IAM pe care l-ați furnizat la crearea utilizatorului.

Aici, ne-am conectat cu succes la AWS CLI ca utilizator IAM:


Pentru a verifica dacă acest utilizator are permisiuni numai pentru citire pentru compartimentul S3, furnizați următoarea comandă la CLI:

aws s3 ls --profil utilizator de profil


Înlocuiți utilizatorul-profil cu numele de utilizator IAM pe care l-ați furnizat în timpul creării utilizatorului.

Deoarece acestui utilizator nu i-a fost atribuită nicio permisiune de către utilizatorul root, va avea ca rezultat „ Acces interzis ” eroare:

Pasul 3: Creați o politică de încredere și un rol IAM

O politică de încredere determină dacă un utilizator sau o resursă AWS este o entitate de încredere pentru asumarea rolului și obținerea permisiunilor. Această relație de încredere este creată prin specificarea ARN-ului utilizatorului IAM sau al resursei AWS în Politica de permisiuni.

Pentru a crea o politică de încredere în IAM, furnizați următoarea comandă la CLI:

Pentru Windows

notepad trust-policy.json


Inlocuieste trust-policy.json cu numele preferinței dvs. pentru politică.

Pentru sistemul de operare Linux

deoarece trust-role-policy.json


Inlocuieste trust-policy.json cu numele preferinței dvs. pentru politică.

Utilizatorii pot folosi orice editor de text după preferințele lor. Pentru această demonstrație, folosim notepad-ul:


Aceasta va deschide bloc-notes pentru crearea politicii de încredere. Lipiți următoarea politică în bloc-notes și apăsați „CTRL + S” de la tastatură pentru a aplica și salva modificările:

{
'Versiune' : „2012-10-17” ,
'Afirmație' : {
'Efect' : 'Permite' ,
'Major' : {
'AWS' : „arn:aws:iam::012345678910:user/profile-user”
} ,
'Acțiune' : „sts:AssumeRole”
}
}


În politica de mai sus: AWS: Înlocuiți valoarea „arn:aws:iam::012345678910:user/policy-user” cu ARN-ul utilizatorului IAM creat mai devreme în această secțiune.

Politica a fost editată în bloc-notes:


În continuare, vom crea un rol IAM și îi vom atașa politica de încredere de mai sus. Utilizați următoarea comandă pentru a crea un rol IAM:

aws am creat-rol --nume rol rolul meu --assume-role-policy-document fişier: // trust-policy.json


În comanda de mai sus:

    • -nume rol: Inlocuieste 'rolul meu' cu numele rolului IAM la alegere.
    • –asumarea-rol-document-politică: În acest câmp, înlocuiți termenul „trust-policy.json” cu numele politicii dvs. de încredere IAM

Rolul IAM a fost creat cu succes. Salvați rolul IAM. Salvați ARN-ul rolului IAM așa cum este evidențiat în imaginea următoare. Acest ARN va fi folosit la configurarea profilului utilizatorului:


Politica de încredere atașată IAM identifică dacă utilizatorul este de încredere sau nu pentru asumarea rolului. Politica de permisiuni stabilește dacă rolul IAM are permisiunea necesară pentru a efectua o anumită acțiune cu serviciile AWS sau nu.

Deoarece politica de încredere a fost atașată rolului IAM, următorul pas este atașarea politicii de permisiune la rolul IAM. Comanda menționată mai jos va fi utilizată pentru a atașa politica de permisiuni la rolul IAM:

aws iam attach-role-policy --nume rol rolul meu --politică-arn „arn:aws:iam::aws:policy/AmazonS3ReadOnlyAccess”


Aici, politica de permisiuni a fost atașată rolului IAM prin CLI:

Pasul 4: Configurați profilul

Pentru ca utilizatorul să își asume acest rol, mai întâi vom configura acest profil în cadrul acreditărilor AWS. Pentru a atașa aceste acreditări temporare, furnizați următoarea comandă:

blocnotes ~ / .aws / config


Sfat bonus: Rezolvați „Calea nespecificată” în Notepad

Fișierul de configurare va conține setarea [implicit] a AWS CLI. Cu toate acestea, dacă notepad-ul afișează „Sistemul nu poate găsi calea specificată”, introduceți comanda menționată mai jos:

blocnotes .aws / config


Utilizatorii Linux pot folosi 'deoarece' editor pentru configurarea profilului. Utilizatorii pot folosi orice editor al preferințelor lor pentru a deschide fișierul de configurare al AWS în mașina locală:


În fișierul de configurare deschis în Notepad, editați următoarele modificări:

[ profil utilizator-profil ]
rol_arn = arn:aws:iam::012345678910:rol / rolul meu
profil_sursă =profil-utilizator


În fragmentul de mai sus:

    • rol_arn: Înlocuiți valoarea „arn:aws:iam::012345678910:role/myrole” cu ARN-ul rolului IAM.
    • profil_sursă: În acest câmp, furnizați numele utilizatorului IAM care a fost creat la Pasul 1 al acestei metode.

După efectuarea modificărilor necesare, apăsați „CTRL + S” de la tastatură pentru a aplica și salva modificările:


Acum, pentru a verifica dacă utilizatorul poate lista acum gălețile S3 sau nu, furnizați următoarea comandă la CLI:

aws s3 ls --profil utilizator de profil


În comanda de mai sus: – utilizator de profil: În acest câmp, înlocuiți valoarea „profile-use” cu numele pe care îl specificați în fișierul de configurare.

După cum am specificat „profile-user” în fișierul de configurare, prin urmare, vom folosi același nume cu comanda din CLI. Anterior, utilizatorul nu a putut accesa serviciul S3 al AWS, deoarece nu i-au fost atribuite permisiuni. Rolul IAM are permisiunea „ReadOnlyAccess” a compartimentului S3 și, prin urmare, asumând acest rol, utilizatorul poate lista compartimentele din S3 Dashboard:


Asta este tot din această metodă a tutorialului.

Metoda 3: Utilizarea MFA (Autentificare cu mai mulți factori)

Prin activarea autentificării cu mai mulți factori, utilizatorul poate configura un nivel suplimentar de securitate pentru contul utilizatorului. Cu MFA activat, utilizatorii neautorizați nu pot accesa contul unui utilizator chiar dacă furnizează o parolă și un nume de utilizator. MFA este un cod din șase cifre necesar pentru autentificarea în cont. Pentru a afla mai multe despre autentificarea cu mai mulți factori, consultați acest articol:

Următorii sunt pașii pentru asumarea unui rol cu ​​MFA prin CLI:

Pasul 1: creați un utilizator IAM și activați MFA

Pentru acest pas, utilizatorul poate fie să folosească CLI pentru a crea utilizatorul, fie să acceseze Consola de management AWS. Conectați-vă la contul de utilizator root utilizând următoarea comandă:

aws configure


Ieșirea comenzii este dată după cum urmează:


Pentru a crea un utilizator, furnizați următoarea comandă la CLI:

aws iam create-user --nume de utilizator utilizator mfa


În comanda de mai sus: -nume de utilizator: Inlocuieste „mfa-user” cu numele de utilizator IAM la alegere.

Utilizatorul a fost creat cu succes. Salvați ARN-ul utilizatorului, deoarece va fi solicitat mai târziu în această secțiune. În prezent, acestui utilizator nu i s-au atribuit nicio permisiune:


Pentru a activa MFA, vizitați AWS Management Console și căutați serviciul IAM. Faceți clic pe el din rezultatele afișate:


Faceți clic pe opțiunea Utilizatori din panoul de navigare din stânga al serviciului IAM. Din tabloul de bord Utilizatori, faceți clic pe numele de utilizator pentru a configura MFA:


Pe următoarea interfață, atingeți „Acreditări de securitate” opțiune:


Derulați în jos la Autentificare cu mai mulți factori secțiunea și faceți clic pe „Atribuiți dispozitivul MFA” buton:


Furnizeaza un nume semnificativ în Nume dispozitiv câmp de text pe interfața afișată:


Derulați în jos la secțiunea dispozitiv MFA. Utilizatorului i se prezintă diverse opțiuni pentru activarea MFA, cum ar fi prin scanarea codului QR, prin cheia de securitate sau tokenul hardware TOTP. Pentru această demonstrație, selectați „Aplicația de autentificare” opțiune:


Apasă pe 'Următorul' butonul din partea de jos a interfeței pentru a continua:


Apasă pe „Afișați codul QR” așa cum se arată în imaginea de mai jos:


Lansați aplicație de pe mobil sau laptop pentru a scana codul QR. Apasă pe „+” opțiunea din interfața Symantec VIP:


În magazinul Play, Symantec VIP este denumit Acces VIP.

Pe următoarea interfață a Symantec VIP, faceți clic pe Scanați codul QR butonul din partea de jos a interfeței:


Scanați codul QR de la AWS MFA Interfața aplicației Authenticator afișat. Acest cod va genera o serie de coduri care vor fi necesare pentru conectarea la consola utilizatorului IAM:


Aplicația Symantec VIP va genera OTP din șase cifre după scanarea codului QR. Aceste coduri vor continua să apară după fiecare 30 de secunde . Captura de ecran de mai jos demonstrează cele două coduri care sunt generate:


Furnizați codurile către Codul AMF 1 și Codul AMF 2 câmpuri de text din interfața aplicației Authenticator a MFA. Apasă pe „Adăugați MFA” apoi butonul pentru a activa funcționalitatea:


MFA a fost activat cu succes pentru utilizatorul IAM. Acest lucru poate fi verificat de către „Autentificare cu mai mulți factori (MFA)” secțiunea „Acreditări de securitate” fila din utilizator IAM . Din această secțiune, salvați valoarea Identificatorului, deoarece va fi necesară în timp ce vă asumați rolul:

Pasul 2: Atașați politica cu utilizatorul

Pentru ca un utilizator să-și asume un rol, utilizatorul trebuie să poată enumera rolul IAM pentru a determina ce rol să-și asume și permisiunea pentru asumarea rolului. Pentru a echipa utilizatorul cu permisiunea necesară, urmați a Metodei 1 din acest tutorial

Pasul 3: Creați o politică de încredere și un rol IAM

Următorul pas este crearea unei politici de încredere pentru a determina dacă utilizatorul este sau nu o entitate de încredere. Această politică de încredere va fi apoi atașată rolului IAM. Pentru a crea politica de încredere și rolul IAM, navigați la linia de comandă și urmați din Metoda  1 din acest articol.

Pasul 4: Creați o cheie de acces

Pentru ca utilizatorul să fie autorizat și autentificat, este generată o pereche de chei de acces care sunt unice la nivel global pe platforma AWS. Aceste perechi de chei sunt utilizate în momentul autentificării la contul AWS. Pentru a crea cheile de acces pentru utilizatorul IAM, urmați a Metodei 1 din acest articol.

Pasul 5: Configurați acreditările

Utilizatorul AWS poate accesa resursele și serviciile AWS numai dacă acreditările sunt configurate corect. În această secțiune a Metodei, vom configura acreditările utilizatorului IAM furnizând cheia de acces și cheia de acces secretă la interfața liniei de comandă. În acest scop, urmați din Metoda 1 din acest tutorial.

Pasul 6:  Asumați-vă rolul IAM

După ce a atașat cu succes rolul IAM și a implementat politica de încredere, utilizatorul își poate asuma acum rolul IAM. În acest scop, furnizați următoarea comandă către CLI:

aws iam create-access-key --nume de utilizator utilizator mfa


Aici cheia a fost creată cu succes pentru utilizatorul IAM. Salvați AccessKeyId și SecretAccessKey, deoarece acestea vor fi necesare pentru conectarea la contul AWS:


Următorul pas este să configurați cheile de acces în cadrul AWS CLI. Utilizați comanda menționată mai jos pentru configurarea CLI:

aws configure


Furnizați cheia de acces și cheia de acces secretă la CLI pentru configurații:


Pentru a verifica dacă utilizatorul IAM s-a conectat la AWS CLI, utilizați următoarea comandă:

aws sts get-caller-identity


Ieșirea comenzii este dată după cum urmează, ceea ce indică faptul că utilizatorul s-a conectat cu succes la consola AWS:


Utilizatorul are permisiunea de a enumera rolurile IAM din contul AWS. Comanda de mai jos este folosită pentru a lista rolurile IAM:

aws iam list-roluri --interogare „Roluri[?RoleName == 'mfa-role'].[RoleName, Arn]


În comanda de mai sus: Nume rol: În acest câmp, înlocuiți valoarea „mfa-role” cu numele rolului dvs. IAM.

Ieșirea comenzii este dată după cum urmează:


Pentru a asuma rolul IAM cu MFA, utilizați comanda assume role cu parametri suplimentari, cum ar fi numărul de serie și codul de simbol. Furnizați următoarea comandă către CLI:

aws sts asuma-rol --rol-arn „arn:aws:iam::123456789012:rol/m-role” --rol-session-name AWSCLI-Sesiune --număr de serie „arn:aws:iam::012345678910:mfa/admindevice” --token-code '123456'


În comanda de mai sus:

    • –rol-arn: Înlocuiți valoarea acestui câmp cu ARN-ul rolului dvs. IAM.
    • –rol-sesiune-nume: În acest câmp, utilizatorul poate furniza orice nume de sesiune la alegere.
    • -număr de serie: Înlocuiți valoarea acestui câmp cu valoarea de identificare din interfața MFA care a fost salvată mai devreme.
    • -cod-token: Această valoare trebuie înlocuită cu codul curent afișat în interfața Symantec VIP.

Codul curent afișat în Symantec VIP este dat după cum urmează. Același cod va fi folosit în valoarea –token-code a comenzii:


Ieșirea comenzii va conține acreditările temporare, cum ar fi un simbol de sesiune, cheie de acces, cheie de acces secretă etc.:

Pasul 7: Configurați variabilele de mediu

Cheile de acces și simbolul de sesiune returnat vor fi acum folosite pentru a stabili autentificarea bazată pe sesiune și pentru a-și asuma rolul. Implementarea detaliată pentru configurarea mediului este discutată în a metodei 1.

Gânduri finale

Pentru a-și asuma un rol folosind CLI, există trei metode și anume prin STS (serviciu de token de securitate), parametrul –profil sau MFA (Autentificare multifactor). Pentru ca un utilizator să-și asume un rol, trebuie stabilită mai întâi o politică de încredere. Această politică de încredere determină dacă utilizatorul este sau nu o entitate de încredere. Această funcționalitate este necesară deoarece abordează preocupările de securitate ale experților IT și ale persoanelor fizice. În plus, utilizatorul își poate asuma rolul numai dacă este dotat cu permisiunile necesare.

Când un utilizator își asumă un rol în AWS, este creată o conectare bazată pe sesiune pentru a oferi acces pe timp limitat utilizatorului cu permisiunile dorite. Se generează un token care expiră după un anumit timp și astfel, utilizatorul nu mai poate efectua sarcina administrativă cu resurse AWS. Acest articol oferă o implementare practică a celor trei metode de asumare a unui rol în AWS CLI.