Com assumir un rol IAM mitjançant AWS CLI?

Com Assumir Un Rol Iam Mitjancant Aws Cli



Com que AWS ofereix diversos serveis i avantatges enormes, és natural que els experts informàtics hagin plantejat els problemes de seguretat. Per abordar aquests problemes de seguretat, AWS va introduir el servei IAM. AWS IAM és un dels serveis web bàsics que permeten als usuaris protegir els recursos d'AWS. IAM proporciona la funcionalitat de gestió central d'accés dels serveis d'AWS mitjançant la definició dels permisos per a diferents usuaris.

Esquema ràpid

En aquest article, aprendràs sobre:







Quina és la funció AWS IAM?
Quina és la funció Assumir a AWS?
Com assumir un rol IAM mitjançant AWS CLI?



Pensaments finals



Amb les funcions i els permisos d'IAM, podem determinar l'accés autenticat i autoritzat als serveis d'AWS. Aquests rols i permisos només els pot assignar l'usuari root (propietari) del compte d'AWS.





Quina és la funció AWS IAM?

La funció IAM és una identitat creada per l'usuari root dins del compte d'AWS. A aquesta identitat se li assignen permisos específics que defineixen l'abast d'accés del rol IAM als recursos d'AWS. Aquests permisos poden ser gestionats per AWS o definits personalment per l'usuari root.

Una funció d'IAM és molt semblant a l'usuari d'IAM, excepte que la funció d'IAM és una identitat amb determinats permisos, mentre que l'usuari pot assumir aquestes funcions per realitzar determinades funcionalitats. Els permisos que es concedeixen al rol defineixen quines accions es poden dur a terme amb aquesta identitat (rol IAM).



Quina és la funció Assumir a AWS?

Assume Rol és una de les funcionalitats del servei AWS IAM que permet a l'usuari actuar amb els serveis d'AWS encara que els permisos per accedir o manipular el recurs dins del servei no estan assignats a l'usuari. Aquests permisos s'assignen indirectament a l'usuari quan s'assumeix un rol. S'utilitza un conjunt de credencials temporals juntament amb un inici de sessió basat en sessió per accedir als recursos d'AWS.

Aquestes credencials temporals inclouen una clau d'accés secreta, un identificador de clau d'accés i un testimoni de seguretat. Els rols IAM creats per l'usuari root d'AWS els poden assumir els altres usuaris del compte d'AWS o aquells usuaris l'ARN dels quals s'esmenta a la política de la funció. La política que conté l'ARN dels usuaris o recursos es coneix com a Política de confiança .

Quina diferència hi ha entre la política de permisos i la política de confiança?

Abans d'implementar la funcionalitat d'assumir el rol mitjançant diferents mètodes, hi ha dos conceptes bàsics que l'usuari ha d'entendre. Hi ha dos tipus de polítiques al servei IAM:

    • Política de confiança: Una política de confiança determina qui pot assumir una funció d'IAM específica. Perquè un usuari assumeixi una funció, l'ARN de l'usuari s'esmenta a la política de confiança de la funció IAM. Aquesta política de confiança determina si l'usuari o els recursos són una entitat de confiança per assumir aquesta funció.
    • Política de permisos: Aquesta política determina què pot fer un usuari o quines accions es poden realitzar amb el rol.

Com assumir un rol IAM mitjançant AWS CLI?

Assumir un paper és semblant a disfressar-se d'un altre usuari que està autenticat i autoritzat per realitzar determinades accions. Mentre assumia una identitat, AWS s'ha assegurat que la seguretat es mantingui intacta.

Entenem el funcionament de la funcionalitat Assume-role tenint en compte l'exemple següent.

Per exemple, Hi ha un usuari al compte d'AWS al qual no se li ha assignat cap permís per al bucket S3. El 'Accés només de lectura' s'anomena política de permisos que s'adjunta a una funció IAM. Perquè l'usuari assumeixi aquesta funció, l'ARN de l'usuari s'esmenta a la política de la funció IAM. Aquesta política s'anomena ara com 'política de confiança' i és diferent de la política de permisos. La política de confiança és crucial, ja que ajuda a AWS a determinar si l'usuari és una entitat autoritzada o no.

Tingueu en compte que l'ARN s'esmenta a la política de confiança i no a la política de permisos de la funció IAM. En assumir un rol, l'usuari pot realitzar algunes accions administratives definides per la política de permisos del rol. Aquestes accions inclouen afegir, suprimir, modificar o restaurar un recurs, etc.

A continuació es mostren els tres mètodes per assumir un paper amb AWS CLI:

Mètode 1: Ús de l'STS (Security Token Service)

Els usuaris poden assumir un paper executant les ordres de la secció STS (Secure Token Service) que retorna un conjunt de credencials temporals. Les credencials temporals s'utilitzen per establir un inici de sessió basat en sessió per fer trucades d'API als recursos. Tanmateix, n'hi ha dues excepcions mentre s'utilitza el STS, és a dir, GetFederationToken i GetSessionToken.

L'usuari té restriccions d'accés a aquests testimonis per tal de garantir la informació confidencial dels fitxes de Sessió i Federació. Perquè la seguretat no es vegi compromesa en cap cas. En assumir un rol, un usuari pot elevar els seus privilegis assignats.

En aquesta secció de l'article, demanarem un conjunt de credencials temporals mitjançant les ordres STS. A continuació es mostren els passos:

Pas 1: creeu una política d'usuari i d'usuari

Primer, ho farem crear un usuari IAM sense permisos. Per a això, obriu el CMD des del menú Inici de Windows:


Només el usuari root llauna crear un Usuari d'IAM dins del compte d'AWS. Per tant, inicieu la sessió al compte arrel d'AWS mitjançant l'ordre següent:

configurar aws


Les credencials ja estan configurades a la CLI per a aquesta demostració, tal com es mostra a la sortida de l'ordre:


Aprèn més:

A crear un usuari IAM , proporcioneu l'ordre següent a la CLI:

aws iam create-user --nom d'usuari usuari de demostració


Substituïu el usuari de demostració amb el teu Nom d'usuari IAM.

Guarda el “Arn” donat a la sortida de l'ordre tal com serà requerit Quan creant el Política de confiança :


Llegeix més:

El següent pas és fer-ho permís l'usuari (usuari de demostració ) a assumir un paper . Per a això, creeu un Fitxer JSON utilitzant qualsevol editor de text tu prefereixes. Per a aquesta demostració, hem utilitzat Bloc de notes tal com s'especifica a l'ordre esmentada a continuació:

Per a Windows

bloc de notes user-policy.json


Substituïu el política d'usuari amb el nom de la vostra política IAM.

Per al sistema operatiu Linux

perquè user-policy.json


De moment, estem utilitzant el sistema operatiu Windows per a aquesta demostració:


Això obrirà el bloc de notes. Enganxeu la política següent al bloc de notes i premeu 'CTRL + S' des del teclat per desar els canvis:

{
'Versió' : '2012-10-17' ,
'Declaració' : [
{
'Efecte' : 'Permetre' ,
'Acció' : [
'ec2:Descriu*' ,
'iam:ListRoles' ,
'sts:AssumeRole'
] ,
'Recurs' : '*'
}
]
}


A continuació es mostra una breu descripció de la política especificada:

    • ec2: Descriu: Aquest permís especifica que l'usuari pot veure o llistar totes les AMI, instantànies o instàncies EC2
    • iam:ListRoles: Aquest permís especifica que l'usuari pot llistar tots els rols dins del servei IAM.
    • sts:AssumeRole: Aquest permís representa que l'usuari pot assumir un rol definit dins del servei IAM.

Aquí, la política s'ha editat al bloc de notes i es desa:


Cada AWS recurs se li assigna un Nom del recurs d'accés (ARN) quin identifica de manera única el recurs. Per determinar l'ARN de la política, utilitzeu l'ordre esmentada a continuació.

aws iam create-policy --nom-política política d'usuari --document-política dossier: // user-policy.json


A la comanda esmentada anteriorment:

    • -nom de la política: Substitueix el valor 'política d'usuari' amb qualsevol nom de política de la vostra preferència.
    • -document de política: En aquest camp, substituïu el ' user-policy.json” amb el nom del fitxer json que conté la política per a l'usuari.

La sortida de l'ordre esmentada anteriorment és la següent. Guarda el “Arn” s'esmenta a la sortida de la política, ja que serà necessari en adjuntar aquesta política amb l'usuari:

Pas 2: adjunteu la política amb l'usuari

Aquesta política permetrà a l'usuari enumerar Instàncies EC2 , Amics , etc. Quan l'usuari assumeix una funció amb un permís diferent, l'usuari només podrà realitzar aquesta acció específica tal com ho permet la política de permisos.

Per adjuntar la política amb l'usuari creat anteriorment en aquesta secció, utilitzeu l'ordre següent:

aws iam attach-user-policy --nom d'usuari usuari de demostració --política-arn 'arn:aws:iam::123456789:policy/user-policy'


A la comanda esmentada anteriorment:

    • -nom d'usuari: Substituïu el 'usuari de demostració' en el -nom d'usuari camp amb el vostre nom d'usuari IAM.
    • –policy-arn: De la mateixa manera, a la –política-arn, especificar el “Arn” de la sortida de l'ordre anterior, és a dir, –create-policy.

En executar l'ordre després de fer els canvis necessaris, la política s'ha connectat correctament a l'usuari:


Per verificar si la política s'ha adjuntat a l'usuari, proporcioneu l'ordre següent a la CLI:

aws iam list-attached-user-policies --nom d'usuari usuari de demostració


Substituïu el usuari de demostració amb el vostre IAM nom d'usuari especificat en crear l'usuari.

La sortida de l'ordre següent verifica que la política s'ha adjuntat a l'usuari correctament:

Pas 3: creeu una política de confiança i un rol d'IAM

S'estableix una relació de confiança quan s'especifica un recurs o l'ARN d'un usuari en una política. Aleshores, aquesta funcionalitat permet que els usuaris o l'entitat realitzin determinades accions, ja que la política els considera de confiança.

En aquest pas, crearem una política que estableixi la relació de confiança entre el rol IAM i l'usuari. Aquesta política de confiança s'adjuntarà a la funció IAM. Aleshores, l'usuari assumirà la funció IAM, la qual cosa permetrà indirectament a l'usuari realitzar les accions especificades a la política.

Per crear una política de confiança, les ordres es donen de la següent manera:

Per a Windows

bloc de notes trust-role-policy.json


Substituïu el trust-role-policy.json amb el nom de la vostra preferència per a la política.

Per al sistema operatiu Linux

perquè trust-role-policy.json


Substituïu el trust-role-policy.json amb el nom de la vostra preferència per a la política.

La política de confiança segueix la Format JSON tal com especifica el .json extensió a l'ordre següent:


Això obrirà el bloc de notes. Enganxa el següent política dins del bloc de notes i premeu 'CTRL + S' botó del teclat per desar els canvis. L'ARN de l'usuari també es pot copiar des del tauler de control de l'usuari de la consola IAM. Per a això, visiteu el tauler d'IAM i feu clic al nom de l'usuari. Des de la configuració que es mostra, copieu l'ARN de l'usuari que es mostra a la secció Resum.:

{
'Versió' : '2012-10-17' ,
'Declaració' : {
'Efecte' : 'Permetre' ,
'Principal' : {
'AWS' : 'arn:aws:iam::123456789012:usuari/usuari-exemple'
} ,
'Acció' : 'sts:AssumeRole'
}
}


En la política esmentada anteriorment:

    • AWS: Substituïu el Valor del camp AWS 'arn:aws:iam::123456789012:usuari/usuari d'exemple' amb el ARN de l'usuari que es mostrava a la sortida de l'ordre –create-user.

L'usuari pot restringir que altres usuaris assumeixin la funció d'IAM especificant l'ARN de l'usuari al fitxer 'AWS' camp:


Llegeix més:

Ara, creeu un rol IAM i adjunteu-hi la política de confiança. Per crear una funció IAM, utilitzeu l'ordre esmentada a continuació:

aws iam crear-rol --nom-rol rol d'usuari --assume-role-policy-document dossier: // trust-role-policy.json


A continuació es mostra la descripció dels camps esmentats anteriorment:

    • -nom-rol: Aquest camp s'utilitza per introduir el nom que s'assignarà a aquesta funció IAM. Substituïu el valor 'user-role' pel nom de rol IAM que trieu.
    • –assume-role-policy-document: En aquest camp, especifiqueu la ruta tal com s'indica a l'ordre. Substituïu trust-role-policy.json pel nom de la política tal com heu especificat a la secció anterior.

En executar aquesta ordre, retornarà diverses dades a la sortida, per exemple, ARN, Path, ID, etc.:


Llegeix més:

En assumir aquesta funció, l'usuari podrà realitzar el 'ReadOnlyAccess' acció amb el cub S3. L'ordre es dóna de la següent manera:

aws iam attach-role-policy --nom-rol rol d'usuari --política-arn 'arn:aws:iam::aws:policy/AmazonS3ReadOnlyAccess'


A l'ordre anterior:

    • -nom-rol: Substitueix ' rol d'usuari' al camp –role-name amb el Nom de la funció IAM que heu especificat anteriorment en aquest tutorial.
    • –policy-arn: L'arn especificat a -policy-arn fa referència al permís ReadOnlyAccess per al bucket S3.

En aquesta imatge, a la funció se li ha assignat el permís ReadOnlyAccess per al bucket S3:


Per verificar si s'ha assignat el permís al rol o no, utilitzeu l'ordre següent:

aws iam list-attached-role-policies --nom-rol rol d'usuari


Substituïu el 'rol d'usuari' amb el vostre nom de rol IAM.

El 'AmazonS3ReadOnlyAccess' s'ha adjuntat permís a la funció IAM. La sortida de l'ordre es dóna de la següent manera:

Pas 4: creeu les claus d'accés

En aquesta secció, crearem les claus d'accés per a l'usuari. Les claus d'accés s'utilitzaran per iniciar sessió al compte d'AWS:

aws iam create-access-key --nom d'usuari usuari de demostració


Substituïu el usuari de demostració amb el vostre nom d'usuari IAM donat en el moment de crear un usuari.

Aquí, l'ordre ha retornat un conjunt de parells de claus d'accés (AccessKeyId i clau d'accés secreta)  amb detalls addicionals, com ara la data de creació, l'estat, etc. Desa AccessKeyId i SecretAccessKey tal com es requereixen més endavant al tutorial:


Llegeix més:

Pas 5: configureu la clau d'accés i verifiqueu l'usuari IAM

Per configurar la clau d'accés, proporcioneu l'ordre següent al CMD i, a continuació, introduïu l'ID de la clau d'accés i la clau d'accés secreta:

configurar aws


Proporcioneu l'identificador de la clau d'accés i la clau d'accés secreta a la CLI que es van crear al pas 4 d'aquesta secció. Per a la regió, hem mantingut la configuració predeterminada. Els usuaris poden configurar qualsevol format de sortida per al format de sortida predeterminat. Per a aquesta demostració, hem especificat el JSON format:


Per verificar si l'usuari IAM s'ha configurat, proporcioneu l'ordre següent a la CLI:

aws sts get-caller-identity


La sortida de l'ordre indica que el 'usuari de demostració' s'ha configurat correctament i actualment està iniciat la sessió al compte d'AWS:


Per determinar que l'usuari d'IAM pot enumerar les instàncies EC2 i que actualment no té accés al bucket S3, utilitzeu l'ordre següent:

aws ec2 descriure-instàncies --consulta 'Reserves[*].Instàncies[*].[VpcId, InstanceId, ImageId, InstanceType]'


La sortida de l'ordre es dóna de la següent manera:


Ara, proporcioneu l'ordre següent per verificar si l'usuari pot accedir al cub S3:

aws s3 ls


Això mostrarà el 'Accés denegat' error que indica que l'usuari no té permís per accedir al bucket S3:

Pas 6: Assumiu el rol IAM

L'usuari té permís per enumerar les funcions IAM dins del compte d'AWS. Per tant, per assumir el rol, primer adquirirem la informació necessària, com ara ARN, executant la següent comanda:

aws iam llista-rols --consulta 'Rols[?RoleName == 'usuari-rol'].[RoleName, Arn]'


Substituïu el 'rol d'usuari' pel nom del rol IAM al camp 'Nom del rol'.

L'ARN s'ha donat a la sortida de l'ordre esmentada anteriorment:


Ara que tenim l'ARN del rol IAM, podem assumir el rol mitjançant l'ordre següent:

aws sts assumir el paper --rol-arn 'arn:aws:iam::123456789012:rol/exemple-rol' --rol-session-name AWSCLI-Sessió


A l'ordre anterior:

    • –rol-arn: Substituïu el valor esmentat per a –role-arn per l'ARN de la funció IAM.
    • –nom-sessió-rol: L'usuari pot proporcionar qualsevol nom de preferència per a aquest camp.

En executar l'ordre esmentada anteriorment, s'ha retornat un conjunt de credencials temporals. Aquestes credencials temporals s'utilitzaran per assumir la funció IAM amb el permís desitjat, és a dir, ReadOnlyAccess. S'utilitzaran AccessKeyId i SecretAccessKey mentre es configuren aquestes credencials temporals:


Aquí hi ha una breu descripció de la sortida de l'ordre:

    • SessionToken: El testimoni de sessió s'utilitza per crear l'inici de sessió basat en la sessió. Deseu el valor d'aquest camp, ja que serà necessari durant la configuració de les credencials.
    • Caducitat: El testimoni de sessió té una data i una hora de caducitat. El testimoni no servirà de res després del temps especificat i l'usuari no podrà assumir la funció.

Pas 7: configureu la variable d'entorn

Per configurar les credencials temporals, utilitzarem l'ordre 'set' per a Windows i després proporcionarem el valor de l'identificador de la clau d'accés, la clau d'accés secreta, el testimoni de sessió, etc.:

Per a Windows

conjunt AWS_ACCESS_KEY_ID =RoleAccessKeyID


Substituïu el RoleAccessKeyID per l'ID de la clau d'accés que ha retornat l'ordre al pas 6.

Per al sistema operatiu Linux

exportar AWS_ACCESS_KEY_ID =RoleAccessKeyID


Substituïu el RoleAccessKeyID per l'ID de la clau d'accés que ha retornat l'ordre del pas 6.

La clau d'accés s'ha configurat:


A continuació, configurarem la clau d'accés secreta mitjançant l'ordre 'set' per a Windows:

Per a Windows

conjunt AWS_SECRET_ACCESS_KEY =RoleSecretKey


Substituïu la RoleSecretKey pel valor de la clau d'accés secreta que ha retornat l'ordre del pas 6.

Per al sistema operatiu Linux

exportar AWS_SECRET_ACCESS_KEY =RoleSecretKey


Substituïu l'AWS_SECRET_ACCESS_KEY per la clau d'accés secreta que ha retornat l'ordre del pas 6.

La clau d'accés secreta s'ha configurat correctament:


Finalment, configurarem el testimoni de sessió per establir l'inici de sessió basat en sessió. Per a aquest propòsit, utilitzeu l'ordre esmentada a continuació:

Per a Windows

conjunt AWS_SESSION_TOKEN =RoleSessionToken


Substituïu el RoleSessionToken pel valor de Session Token que ha retornat l'ordre del pas 6.

Per al sistema operatiu Linux

exportar AWS_SESSION_TOKEN =RoleSessionToken


Substituïu el RoleSessionToken pel valor de Session Token que ha retornat l'ordre del pas 6.

El valor del testimoni de sessió s'ha configurat correctament:


Per copiar el valor del testimoni de sessió del CMD, premeu “CTRL+MAJ+C” .

Després de configurar les variables d'entorn, verifiqueu mitjançant l'ordre següent si l'usuari ha assumit la funció:

aws sts get-caller-identity


La sortida de l'ordre verifica que la funció IAM ha estat assumit amb èxit per l'usuari com és el retorn d'ARN 'arn:aws:sts::123456789012:assumed-role/user-role/AWSCLI-Session' en lloc de “arn:aws:iam::123456789012:usuari/usuari de demostració”:


Com que la funció conté el permís ReadOnlyAccess, l'usuari hauria de poder enlistar els cubs ara. Per a aquest propòsit, proporcioneu l'ordre següent a la CLI:

aws s3 ls


La sortida de l'ordre inclou correctament tot el cub S3 configurat actualment al compte d'AWS:


Tanmateix, l'usuari no podrà accedir al servei EC2, ja que la funció assumida no té permís per al servei EC2. Per verificar-ho, utilitzeu l'ordre següent:

aws ec2 descriure-instàncies --consulta 'Reserves[*].Instàncies[*].[VpcId, InstanceId, ImageId, InstanceType]'


Anteriorment, l'usuari podia accedir a la informació del servei EC2. Tanmateix, en executar l'ordre esmentada anteriorment, an 'Accés denegat' s'ha produït un error. L'usuari ha assumit correctament el rol d'IAM:


Tot això és d'aquesta secció.

Consell addicional: desactiveu les variables d'entorn

Per tornar a l'usuari IAM, és a dir, l'usuari de demostració, l'usuari pot eliminar les variables d'entorn configurant les variables d'entorn en cadenes buides. Les següents són les ordres donades:

Per a Windows

CONJUNT AWS_ACCESS_KEY_ID =
CONJUNT AWS_SECRET_ACCESS_KEY =
CONJUNT AWS_SESSION_TOKEN =


Per a Linux

Utilitzeu l'ordre esmentada a continuació:

sense fixar AWS_ACCESS_KEY_ID AWS_SECRET_ACCESS_KEY AWS_SESSION_TOKEN


Les ordres esmentades anteriorment desactivaran les variables d'entorn:


Després d'executar les ordres anteriors, la consola ara hauria de retornar el fitxer 'usuari de demostració' com a usuari connectat actualment en lloc del rol assumit, és a dir, rol d'usuari. Per a això, utilitzarem la següent comanda:

aws sts get-caller-identity


La sortida de l'ordre indica que l'usuari que ha iniciat sessió actualment és l'usuari de demostració:


De la mateixa manera, per iniciar sessió com a usuari root, seguiu el 'C:\Usuaris%USERPERFILE%.aws' camí i feu clic al fitxer de credencials:


Dins del fitxer de credencials, substituïu els valors de la clau d'accés i la clau d'accés secreta per l'accés i la clau d'accés secreta de l'usuari root:


Proporcioneu l'ordre següent a la CLI per verificar si les credencials estan configurades correctament:

configurar aws


Aquí, a la imatge següent, podem veure que la clau d'accés i la clau d'accés secret de l'usuari root s'han configurat correctament:


Això és tot d'aquesta secció del tutorial.

Mètode 2: Ús del paràmetre –profile

Un altre mètode per assumir el paper és utilitzar el camp '–profile' a la CLI. Aquesta secció de l'article presenta la implementació pràctica d'assumir un paper a AWS mitjançant -profile. A continuació es mostren els passos per fer-ho:

Pas 1: creeu un usuari d'IAM

Per crear un usuari IAM, inicieu sessió al compte d'usuari root mitjançant la CLI mitjançant l'ordre següent:

configurar aws


Les credencials ja estan configurades a la CLI per a aquesta demostració, tal com es mostra a la sortida de l'ordre:


Aprèn més:

Per crear un usuari IAM, proporcioneu l'ordre següent a la CLI:

aws iam create-user --nom d'usuari usuari de perfil


L'usuari s'ha creat correctament. Deseu l'ARN de l'usuari tal com es mostra a la imatge següent. L'ARN d'aquest usuari IAM s'utilitzarà més endavant en aquest tutorial. Actualment, no hi ha cap permís associat amb aquest usuari d'IAM:


Llegeix més:

Pas 2: creeu la clau d'accés

A AWS, a cada usuari se li assigna un parell de claus d'accés per iniciar la sessió. Per crear les claus d'accés per a aquest usuari, proporcioneu-li l'ordre següent:

aws iam create-access-key --nom d'usuari usuari de perfil


Aquesta ordre retorna un conjunt de claus d'accés. Desa el AccessKeyId i SecretAccessKey ja que serà necessari quan inicieu sessió al compte d'AWS:


Ara, si iniciem sessió a l'AWS CLI utilitzant aquests AccessKeyId i SecretAccessKey, i accedim a qualsevol recurs, p. Cubell S3, el 'Accés denegat' es produirà un error. Això es deu al fet que actualment no hi ha permisos associats a l'usuari IAM. Per iniciar sessió a l'AWS CLI, utilitzeu l'ordre següent i proporcioneu l'ID de la clau d'accés i la clau d'accés secreta tal com es va crear anteriorment:

configurar aws --Perfil usuari de perfil


Substituïu el 'usuari de perfil' amb el nom d'usuari IAM que heu proporcionat en crear l'usuari.

Aquí, hem iniciat sessió correctament a l'AWS CLI com a usuari d'IAM:


Per verificar si aquest usuari té permisos de només lectura per al bucket S3, proporcioneu l'ordre següent a la CLI:

aws s3 ls --Perfil usuari de perfil


Substituïu l'usuari del perfil pel nom d'usuari IAM que heu proporcionat en crear l'usuari.

Com que l'usuari root no ha assignat cap permís a aquest usuari, es produirà el ' Accés denegat ” error:

Pas 3: creeu una política de confiança i un rol d'IAM

Una política de confiança determina si un usuari o un recurs d'AWS és una entitat de confiança per assumir la funció i adquirir els permisos. Aquesta relació de confiança es crea especificant l'ARN de l'usuari IAM o el recurs AWS dins de la política de permisos.

Per crear una política de confiança dins de l'IAM, proporcioneu l'ordre següent a la CLI:

Per a Windows

bloc de notes trust-policy.json


Substituïu el trust-policy.json amb el nom de la vostra preferència per a la política.

Per al sistema operatiu Linux

perquè trust-role-policy.json


Substituïu el trust-policy.json amb el nom de la vostra preferència per a la política.

Els usuaris poden utilitzar qualsevol editor de text de la seva preferència. Per a aquesta demostració, estem utilitzant el bloc de notes:


Això obrirà el bloc de notes per crear la política de confiança. Enganxeu la política següent al bloc de notes i premeu 'CTRL + S' des del teclat per aplicar i desar els canvis:

{
'Versió' : '2012-10-17' ,
'Declaració' : {
'Efecte' : 'Permetre' ,
'Principal' : {
'AWS' : 'arn:aws:iam::012345678910:usuari/usuari de perfil'
} ,
'Acció' : 'sts:AssumeRole'
}
}


A la política anterior: AWS: Substituïu el valor 'arn:aws:iam::012345678910:user/policy-user' per l'ARN de l'usuari IAM creat anteriorment en aquesta secció.

La política s'ha editat al bloc de notes:


A continuació, crearem una funció IAM i adjuntarem la política de confiança anterior. Utilitzeu l'ordre següent per crear un rol IAM:

aws iam crear-rol --nom-rol mirol --assume-role-policy-document dossier: // trust-policy.json


A la comanda esmentada anteriorment:

    • -nom-rol: Substituïu el 'mirol' amb el nom del rol IAM que trieu.
    • –assume-role-policy-document: En aquest camp, substituïu el terme 'trust-policy.json' amb el nom de la vostra política de confiança IAM

La funció IAM s'ha creat correctament. Deseu la funció IAM. Deseu l'ARN de la funció IAM tal com es destaca a la imatge següent. Aquest ARN s'utilitzarà mentre es configura el perfil de l'usuari:


La política de confiança adjunta a l'IAM identifica si l'usuari té confiança o no per assumir la funció. La política de permisos determina si el rol IAM té el permís necessari per dur a terme una determinada acció amb els serveis d'AWS o no.

Com que la política de confiança s'ha adjuntat a la funció IAM, el següent pas és adjuntar la política de permisos a la funció IAM. L'ordre esmentada a continuació s'utilitzarà per adjuntar la política de permisos al rol IAM:

aws iam attach-role-policy --nom-rol mirol --política-arn 'arn:aws:iam::aws:policy/AmazonS3ReadOnlyAccess'


Aquí, la política de permisos s'ha adjuntat a la funció IAM mitjançant CLI:

Pas 4: Configura el perfil

Perquè l'usuari assumeixi aquesta funció, primer configurarem aquest perfil dins de les credencials d'AWS. Per adjuntar aquestes credencials temporals, proporcioneu l'ordre següent:

bloc de notes ~ / .aws / config


Consell addicional: resol 'Camí no especificat' al Bloc de notes

El fitxer de configuració contindrà la configuració [predeterminada] de l'AWS CLI. Tanmateix, si el bloc de notes mostra 'El sistema no pot trobar el camí especificat', introduïu l'ordre esmentada a continuació:

bloc de notes .aws / config


Els usuaris de Linux poden utilitzar el 'perquè' editor per configurar el perfil. Els usuaris poden utilitzar qualsevol editor de les seves preferències per obrir el fitxer de configuració d'AWS a la màquina local:


Dins del fitxer de configuració obert al Bloc de notes, editeu els canvis següents:

[ perfil d'usuari-perfil ]
rol_arn = arn:aws:iam::012345678910:rol / myrol
perfil_font =usuari de perfil


En el fragment anterior:

    • rol_arn: Substituïu el valor 'arn:aws:iam::012345678910:role/myrole' per l'ARN de la funció IAM.
    • perfil_font: En aquest camp, proporcioneu el nom de l'usuari IAM que es va crear al pas 1 d'aquest mètode.

Després de fer els canvis necessaris, premeu 'CTRL + S' des del teclat per aplicar i desar els canvis:


Ara, per verificar si l'usuari ara pot enumerar els cubs S3 o no, proporcioneu l'ordre següent a la CLI:

aws s3 ls --Perfil usuari de perfil


A l'ordre anterior: -usuari de perfil: En aquest camp, substituïu el valor 'ús del perfil' pel nom que especifiqueu al fitxer de configuració.

Com hem especificat 'profile-user' dins del fitxer de configuració, per tant, utilitzarem el mateix nom amb l'ordre a CLI. Anteriorment, l'usuari no podia accedir al servei S3 d'AWS ja que no se li assignava cap permís. La funció IAM té el permís de 'ReadOnlyAccess' del compartiment S3 i, per tant, en assumir aquesta funció, l'usuari pot llistar els compartiments des del tauler de control S3:


Això és tot d'aquest mètode del tutorial.

Mètode 3: ús de MFA (autenticació multifactor)

En activar l'autenticació multifactor, l'usuari pot configurar una capa addicional de seguretat al compte de l'usuari. Amb l'MFA activat, els usuaris no autoritzats no poden accedir al compte d'un usuari encara que proporcionin una contrasenya i un nom d'usuari. L'MFA és un codi de sis dígits necessari per iniciar sessió al compte. Per obtenir més informació sobre l'autenticació multifactor, consulteu aquest article:

A continuació es mostren els passos per assumir una funció amb MFA mitjançant CLI:

Pas 1: creeu un usuari d'IAM i activeu l'MFA

Per a aquest pas, l'usuari pot utilitzar la CLI per crear l'usuari o accedir a la Consola de gestió d'AWS. Inicieu sessió al compte d'usuari root mitjançant l'ordre següent:

configurar aws


La sortida de l'ordre es dóna de la següent manera:


Per crear un usuari, proporcioneu l'ordre següent a la CLI:

aws iam create-user --nom d'usuari usuari mfa


A l'ordre anterior: -nom d'usuari: Substituïu el 'usuari mfa' amb el nom d'usuari IAM que trieu.

L'usuari s'ha creat correctament. Deseu l'ARN de l'usuari tal com serà necessari més endavant en aquesta secció. Actualment, a aquest usuari no se li han assignat cap permís:


Per habilitar l'MFA, visiteu la Consola de gestió d'AWS i cerqueu el servei IAM. Feu clic a sobre dels resultats que es mostren:


Feu clic a l'opció Usuaris del panell de navegació esquerre del servei IAM. Al tauler d'usuaris, feu clic al nom d'usuari per configurar l'MFA:


A la interfície següent, toqueu 'Credencials de seguretat' opció:


Desplaceu-vos cap avall fins a Autenticació multifactor secció i feu clic a 'Assigna un dispositiu MFA' botó:


Proporcioneu a nom significatiu en el Nom del dispositiu camp de text a la interfície que es mostra:


Desplaceu-vos cap avall fins a la secció del dispositiu MFA. Es presenten a l'usuari diverses opcions per habilitar l'MFA, com ara escanejar el codi QR, mitjançant la clau de seguretat o el testimoni de maquinari TOTP. Per a aquesta demostració, seleccioneu 'Aplicació d'autenticació' opció:


Toqueu 'Pròxim' botó a la part inferior de la interfície per continuar més endavant:


Feu clic a 'Mostra el codi QR' com es mostra a la imatge següent:


Llança el aplicació al teu mòbil o portàtil per escanejar el codi QR. Toqueu “+” opció de la interfície VIP de Symantec:


A Play Store, Symantec VIP s'anomena Accés VIP.

A la interfície següent de Symantec VIP, feu clic a Escaneja el codi QR botó a la part inferior de la interfície:


Escaneja el codi QR de l'AWS MFA Interfície de l'aplicació Authenticator mostrat. Aquest codi generarà una sèrie de codis que seran necessaris per iniciar sessió a la consola de l'usuari d'IAM:


Es generarà l'aplicació Symantec VIP OTP de sis dígits després d'escanejar el codi QR. Aquests codis seguiran arribant després de cada 30 segons . La captura de pantalla següent mostra els dos codis que es generen:


Proporcioneu els codis al Codi MFA 1 i Codi MFA 2 camps de text a la interfície de l'aplicació Authenticator de MFA. Feu clic a 'Afegeix MFA' botó després per habilitar la funcionalitat:


L'MFA s'ha habilitat correctament per a l'usuari d'IAM. Això pot ser verificat per la 'Autenticació multifactor (MFA)' secció de la 'Credencials de seguretat' pestanya de la Usuari d'IAM . Des d'aquesta secció, deseu el valor d'Identificador, ja que serà necessari mentre assumiu el rol:

Pas 2: adjunteu la política amb l'usuari

Perquè un usuari assumeixi una funció, l'usuari ha de poder enumerar la funció IAM per determinar quina funció ha d'assumir i el permís per assumir la funció. Per equipar l'usuari amb el permís necessari, seguiu del Mètode 1 d'aquest tutorial

Pas 3: creeu una política de confiança i un rol d'IAM

El següent pas és crear una política de confiança per determinar si l'usuari és una entitat de confiança o no. Aquesta política de confiança s'adjuntarà a la funció IAM. Per crear la política de confiança i el rol d'IAM, aneu al símbol del sistema i seguiu-lo del Mètode 1 d'aquest article.

Pas 4: creeu una clau d'accés

Perquè l'usuari sigui autoritzat i autenticat, es genera un parell de claus d'accés que són úniques a nivell mundial a la plataforma AWS. Aquests parells de claus s'utilitzen en el moment d'iniciar sessió al compte d'AWS. Per crear les claus d'accés per a l'usuari d'IAM, seguiu les instruccions del Mètode 1 d'aquest article.

Pas 5: configureu les credencials

L'usuari d'AWS només pot accedir als recursos i serveis d'AWS si les credencials estan configurades correctament. En aquesta secció del Mètode, configurarem les credencials de l'usuari IAM proporcionant la clau d'accés i la clau d'accés secreta a la interfície de línia d'ordres. Per a això, seguiu el del Mètode 1 d'aquest tutorial.

Pas 6:  assumeix la funció d'IAM

Després d'adjuntar correctament la funció IAM i implementar la política de confiança, l'usuari ara pot assumir la funció d'IAM. Per a aquest propòsit, proporcioneu l'ordre següent a la CLI:

aws iam create-access-key --nom d'usuari usuari mfa


Aquí la clau s'ha creat correctament per a l'usuari IAM. Deseu AccessKeyId i SecretAccessKey, ja que seran necessaris per iniciar sessió al compte d'AWS:


El següent pas és configurar les claus d'accés a l'AWS CLI. Utilitzeu l'ordre esmentada a continuació per configurar la CLI:

configurar aws


Proporcioneu la clau d'accés i la clau d'accés secreta a la CLI per a les configuracions:


Per verificar si l'usuari IAM ha iniciat sessió a l'AWS CLI, utilitzeu l'ordre següent:

aws sts get-caller-identity


La sortida de l'ordre es dóna de la següent manera, que indica que l'usuari ha iniciat sessió correctament a la consola AWS:


L'usuari té permís per enumerar els rols IAM dins del compte d'AWS. L'ordre que es mostra a continuació s'utilitza per llistar els rols d'IAM:

aws iam llista-rols --consulta 'Rols[?RoleName == 'mfa-role'].[RoleName, Arn]


A l'ordre anterior: Nom del rol: Dins d'aquest camp, substituïu el valor 'mfa-role' pel nom del vostre rol d'IAM.

La sortida de l'ordre es dóna de la següent manera:


Per assumir la funció d'IAM amb MFA, utilitzeu l'ordre assumir rol amb paràmetres addicionals, com ara el número de sèrie i el codi testimoni. Proporcioneu l'ordre següent a la CLI:

aws sts assumir el paper --rol-arn 'arn:aws:iam::123456789012:rol/m-role' --rol-session-name AWSCLI-Sessió --número de sèrie 'arn:aws:iam::012345678910:mfa/admindevice' --codi-token '123456'


A l'ordre anterior:

    • –rol-arn: Substituïu el valor d'aquest camp per l'ARN de la vostra funció IAM.
    • –nom-sessió-rol: En aquest camp, l'usuari pot proporcionar el nom de sessió que vulgui.
    • -número de sèrie: Substituïu el valor d'aquest camp pel valor d'identificador de la interfície MFA que s'ha desat anteriorment.
    • -codi-token: Aquest valor s'ha de substituir pel codi actual que es mostra a la interfície VIP de Symantec.

El codi actual que es mostra a Symantec VIP es dóna de la següent manera. El mateix codi s'utilitzarà al valor –token-code de l'ordre:


La sortida de l'ordre contindrà les credencials temporals, com ara un testimoni de sessió, una clau d'accés, una clau d'accés secreta, etc.:

Pas 7: configureu les variables d'entorn

Les claus d'accés i el testimoni de sessió retornats s'utilitzaran ara per establir l'inici de sessió basat en la sessió i per assumir la funció. La implementació detallada per configurar l'entorn es discuteix a del Mètode 1.

Pensaments finals

Per assumir un paper mitjançant CLI, hi ha tres mètodes, és a dir, mitjançant el STS (servei de testimoni de seguretat), el paràmetre -profile o l'MFA (autenticació multifactor). Perquè un usuari assumeixi una funció, primer s'ha d'establir una política de confiança. Aquesta política de confiança determina si l'usuari és una entitat de confiança o no. Aquesta funcionalitat és necessària, ja que aborda les preocupacions de seguretat dels experts i de les persones en TI. A més, l'usuari només pot assumir el rol si està equipat amb els permisos necessaris.

Quan un usuari assumeix un paper a l'AWS, es crea un inici de sessió basat en sessió per proporcionar accés per temps limitat a l'usuari amb els permisos desitjats. Es genera un testimoni que caduca al cap d'un temps determinat i, per tant, l'usuari ja no pot realitzar la tasca administrativa amb recursos d'AWS. Aquest article proporciona una implementació pràctica dels tres mètodes per assumir un paper a AWS CLI.