Comment assumer un rôle IAM à l'aide de l'AWS CLI ?

Comment Assumer Un Role Iam A L Aide De L Aws Cli



Comme AWS propose plusieurs services et d'énormes avantages, il est tout à fait naturel que les problèmes de sécurité aient été soulevés par les experts informatiques. Pour répondre à ces problèmes de sécurité, le service IAM a été introduit par AWS. AWS IAM est l'un des principaux services Web permettant aux utilisateurs de sécuriser les ressources AWS. IAM fournit la fonctionnalité de gestion centralisée des accès aux services AWS en définissant les autorisations pour les différents utilisateurs.

Aperçu rapide

Dans cet article, vous découvrirez :







Qu'est-ce que le rôle AWS IAM ?
Qu'est-ce que le rôle Assumer dans AWS ?
Comment assumer un rôle IAM à l'aide de l'AWS CLI ?



Dernières pensées



Grâce aux rôles et autorisations IAM, nous pouvons déterminer l'accès authentifié et autorisé aux services AWS. Ces rôles et autorisations ne peuvent être attribués que par l'utilisateur racine (propriétaire) du compte AWS.





Qu'est-ce que le rôle AWS IAM ?

Le rôle IAM est une identité créée par l'utilisateur racine au sein du compte AWS. Cette identité se voit attribuer des autorisations spécifiques qui définissent l'étendue de l'accès du rôle IAM aux ressources AWS. Ces autorisations peuvent être gérées par AWS ou définies de manière personnalisée par l'utilisateur racine.

Un rôle IAM est très similaire à l'utilisateur IAM, sauf que le rôle IAM est une identité avec certaines autorisations tandis que l'utilisateur peut assumer ces rôles pour exécuter certaines fonctionnalités. Les autorisations accordées au rôle définissent les actions qui peuvent être entreprises avec cette identité (rôle IAM).



Qu'est-ce que le rôle Assumer dans AWS ?

Assume Role est l'une des fonctionnalités du service AWS IAM qui permet à l'utilisateur d'agir avec les services AWS bien que les autorisations d'accès ou de manipulation de la ressource au sein du service ne soient pas attribuées à l'utilisateur. Ces autorisations sont indirectement attribuées à l'utilisateur lorsqu'un rôle est assumé. Un ensemble d'informations d'identification temporaires ainsi qu'une connexion basée sur une session sont utilisés pour accéder aux ressources AWS.

Ces informations d'identification temporaires incluent une clé d'accès secrète, un ID de clé d'accès et un jeton de sécurité. Les rôles IAM créés par l'utilisateur racine AWS peuvent être assumés par les autres utilisateurs du compte AWS ou par les utilisateurs dont l'ARN est mentionné dans la politique du rôle. La stratégie qui contient l'ARN des utilisateurs ou des ressources est appelée Politique de confiance .

Quelle est la différence entre la politique d’autorisation et la politique de confiance ?

Avant d'implémenter la fonctionnalité d'assumer un rôle via différentes méthodes, deux concepts fondamentaux doivent être compris par l'utilisateur. Il existe deux types de stratégies dans le service IAM :

    • Politique de confiance : Une stratégie de confiance détermine qui peut assumer un rôle IAM spécifique. Pour qu'un rôle soit assumé par un utilisateur, l'ARN de l'utilisateur est mentionné dans la politique de confiance du rôle IAM. Cette politique de confiance détermine si l'utilisateur ou les ressources sont une entité de confiance pour assumer ce rôle.
    • Politique d'autorisation : Cette stratégie détermine ce qu'un utilisateur peut faire ou quelles actions peuvent être effectuées avec le rôle.

Comment assumer un rôle IAM à l'aide de l'AWS CLI ?

Assumer un rôle revient à se déguiser en un autre utilisateur authentifié et autorisé à effectuer certaines actions. Tout en assumant une identité, AWS a veillé à ce que la sécurité reste intacte.

Comprenons le fonctionnement de la fonctionnalité Assume-role en considérant l'exemple suivant.

Par exemple, il existe un utilisateur dans le compte AWS auquel aucune autorisation n'a été attribuée pour le compartiment S3. Le « Accès en lecture seule » est appelée la stratégie d'autorisation qui est attachée à un rôle IAM. Pour que l'utilisateur assume ce rôle, l'ARN de l'utilisateur est mentionné dans la politique du rôle IAM. Cette politique est désormais appelée « politique de confiance » et c'est différent de la politique d'autorisation. La politique de confiance est cruciale car elle aide AWS à déterminer si l'utilisateur est une entité autorisée ou non.

Notez que l'ARN est mentionné dans la politique de confiance et non dans la politique d'autorisation du rôle IAM. En assumant un rôle, l'utilisateur peut effectuer quelques actions administratives définies par la politique d'autorisation du rôle. Ces actions incluent l'ajout, la suppression, la modification ou la restauration d'une ressource, etc.

Voici les trois méthodes pour assumer un rôle avec AWS CLI :

Méthode 1 : Utilisation du STS (Security Token Service)

Les utilisateurs peuvent assumer un rôle en exécutant les commandes de la section STS (Secure Token Service) qui renvoie un ensemble d'informations d'identification temporaires. Les informations d'identification temporaires sont utilisées pour établir une connexion basée sur une session afin d'effectuer des appels API vers les ressources. Cependant, il existe deux exceptions en utilisant le STS, c'est-à-dire GetFederationToken et GetSessionToken.

L'utilisateur n'a pas le droit d'accéder à ces jetons afin de sécuriser les informations confidentielles des jetons de session et de fédération. Pour que la sécurité ne soit compromise en aucun cas. En assumant un rôle, un utilisateur peut élever les privilèges qui lui sont attribués.

Dans cette section de l'article, nous demanderons un ensemble d'informations d'identification temporaires à l'aide des commandes STS. Voici les étapes :

Étape 1 : Créer un utilisateur et une stratégie d'utilisateur

Premièrement, nous allons créer un utilisateur IAM sans autorisations. A cet effet, ouvrez le CMD depuis le menu Démarrer de Windows :


Seulement le utilisateur root peut créer un Utilisateur IAM au sein du compte AWS. Par conséquent, connectez-vous au compte racine AWS à l'aide de la commande suivante :

AWS configurer


Les informations d'identification sont déjà configurées dans la CLI pour cette démo, comme indiqué dans le résultat de la commande :


Apprendre encore plus:

À créer un utilisateur IAM , fournissez la commande suivante à la CLI :

aws je suis créer un utilisateur --nom d'utilisateur utilisateur de démonstration


Remplace le utilisateur de démonstration avec votre Nom d'utilisateur IAM.

Sauver la 'Arn' donné dans la sortie de la commande tel qu'il sera requis quand créer le Politique de confiance :


En savoir plus:

La prochaine étape consiste à permis l'utilisateur (utilisateur démo ) à assumer un rôle . A cet effet, créez un Fichier JSON en utilisant n'importe quel éditeur de texte tu préfères. Pour cette démo, nous avons utilisé Bloc-notes comme spécifié dans la commande mentionnée ci-dessous :

Pour les fenêtres

bloc-notes user-policy.json


Remplace le politique d'utilisation avec le nom de votre stratégie IAM.

Pour le système d'exploitation Linux

parce que user-policy.json


Pour le moment, nous utilisons le système d'exploitation Windows pour cette démo :


Cela ouvrira le bloc-notes. Collez la politique suivante dans le bloc-notes et appuyez sur 'CTRL+S' depuis le clavier pour enregistrer les modifications :

{
'Version' : '2012-10-17' ,
'Déclaration' : [
{
'Effet' : 'Permettre' ,
'Action' : [
'ec2 : Décrire*' ,
'iam : Liste des rôles' ,
'sts : AssumeRole'
] ,
'Ressource' : '*'
}
]
}


Vous trouverez ci-dessous une brève description de la politique spécifiée :

    • ec2 : Décrivez : Cette autorisation spécifie que l'utilisateur peut afficher ou répertorier toutes les AMI, instantanés ou instances EC2.
    • iam:ListRoles : Cette autorisation spécifie que l'utilisateur peut répertorier tous les rôles au sein du service IAM.
    • sts : AssumeRôle : Cette autorisation signifie que l'utilisateur peut assumer un rôle défini dans le service IAM.

Ici, la politique a été modifiée dans le bloc-notes et est enregistrée :


Chaque AWS Ressource se voit attribuer un Nom de la ressource d'accès (ARN) lequel identifie de manière unique la ressource. Pour déterminer l'ARN de la stratégie, utilisez la commande mentionnée ci-dessous.

aws je crée une politique --Nom de la politique politique d'utilisation --document-politique déposer: // user-policy.json


Dans la commande mentionnée ci-dessus :

    • -Nom de la politique: Remplacer la valeur « politique d'utilisation » avec n’importe quel nom de politique de votre choix.
    • –document de politique : Dans ce champ, remplacez le « user-policy.json » avec le nom du fichier json qui contient la stratégie de l'utilisateur.

Le résultat de la commande mentionnée ci-dessus est le suivant. Sauver la 'Arn' mentionné dans le résultat de la stratégie car il sera requis lors de l'attachement de cette stratégie à l'utilisateur :

Étape 2 : Joindre la stratégie à l'utilisateur

Cette politique permettra à l'utilisateur de lister les Instances EC2 , AMIs , etc. Lorsque l'utilisateur assume un rôle avec une autorisation différente, il pourra effectuer uniquement cette action spécifique, comme le permet la stratégie d'autorisation.

Pour associer la stratégie à l'utilisateur créé précédemment dans cette section, utilisez la commande suivante :

aws iam attach-user-policy --nom d'utilisateur utilisateur de démonstration --policy-arn 'arn:aws:iam::123456789:policy/user-policy'


Dans la commande mentionnée ci-dessus :

    • -nom d'utilisateur: Remplace le 'utilisateur démo' dans le -nom d'utilisateur champ avec votre nom d'utilisateur IAM.
    • –police-arn : De même, dans le –politique-arn, spécifie le 'Arn' à partir de la sortie de la commande précédente, c'est-à-dire –create-policy.

En exécutant la commande après avoir apporté les modifications requises, la stratégie a été correctement attachée à l'utilisateur :


Pour vérifier si la stratégie a été attachée à l'utilisateur, fournissez la commande suivante à la CLI :

aws iam list-attached-user-policy --nom d'utilisateur utilisateur de démonstration


Remplace le utilisateur de démonstration avec votre IAM nom d'utilisateur spécifié lors de la création de l'utilisateur.

Le résultat de la commande suivante vérifie que la stratégie a été correctement attachée à l'utilisateur :

Étape 3 : Créer une stratégie de confiance et un rôle IAM

Une relation de confiance est établie lorsqu’une ressource ou l’ARN d’un utilisateur est spécifié dans une stratégie. Cette fonctionnalité permet ensuite aux utilisateurs ou à l'entité d'effectuer certaines actions car ils sont considérés comme fiables par la politique.

Dans cette étape, nous allons créer une stratégie qui établit la relation de confiance entre le rôle IAM et l'utilisateur. Cette politique de confiance sera attachée au rôle IAM. Le rôle IAM sera ensuite assumé par l'utilisateur, ce qui lui permettra indirectement d'effectuer les actions spécifiées dans la politique.

Pour créer une politique de confiance, les commandes sont données comme suit :

Pour les fenêtres

bloc-notes trust-role-policy.json


Remplace le trust-role-policy.json avec le nom de votre préférence pour la politique.

Pour le système d'exploitation Linux

parce que trust-role-policy.json


Remplace le trust-role-policy.json avec le nom de votre préférence pour la politique.

La politique de confiance suit le Format JSON comme précisé par le .json extension dans la commande suivante :


Cela ouvrira le bloc-notes. Pâte ce qui suit politique dans le bloc-notes et appuyez sur le bouton 'CTRL+S' du clavier pour enregistrer les modifications. L'ARN de l'utilisateur peut également être copié à partir du tableau de bord de l'utilisateur de la console IAM. Pour cela, visitez le tableau de bord IAM et cliquez sur le nom de l'utilisateur. À partir de la configuration affichée, copiez l'ARN de l'utilisateur affiché dans la section Résumé. :

{
'Version' : '2012-10-17' ,
'Déclaration' : {
'Effet' : 'Permettre' ,
'Majeur' : {
'AWS' : 'arn:aws:iam::123456789012:user/exemple-utilisateur'
} ,
'Action' : 'sts : AssumeRole'
}
}


Dans la politique mentionnée ci-dessus :

    • AWS : Remplace le Valeur du champ AWS 'arn:aws:iam::123456789012:user/example-user' avec le ARN de l'utilisateur qui était affiché dans la sortie de la commande –create-user.

L'utilisateur peut empêcher d'autres utilisateurs d'assumer le rôle IAM en spécifiant l'ARN de l'utilisateur dans le champ 'AWS' champ:


En savoir plus:

Maintenant, créez un rôle IAM et attachez-y la stratégie de confiance. Pour créer un rôle IAM, utilisez la commande mentionnée ci-dessous :

aws je crée un rôle --nom de rôle rôle d'utilisateur --assume-role-policy-document déposer: // trust-role-policy.json


Voici la description des champs mentionnés ci-dessus :

    • -nom de rôle: Ce champ permet de saisir le nom qui sera attribué à ce rôle IAM. Remplacez la valeur « user-role » par le nom du rôle IAM de votre choix.
    • –assume-role-policy-document : Dans ce champ, spécifiez le chemin tel qu'indiqué dans la commande. Remplacez trust-role-policy.json par le nom de la stratégie que vous avez spécifié dans la section précédente.

En exécutant cette commande, plusieurs informations seront renvoyées dans la sortie, par exemple ARN, chemin, ID, etc :


En savoir plus:

En assumant ce rôle, l'utilisateur pourra effectuer le « Accès en lecture seule » action avec le bucket S3. La commande est donnée comme suit :

aws iam attach-role-politique --nom de rôle rôle d'utilisateur --policy-arn 'arn:aws:iam::aws:policy/AmazonS3ReadOnlyAccess'


Dans la commande ci-dessus :

    • -nom de rôle: Remplacer ' rôle d'utilisateur' dans le champ –role-name avec le Nom du rôle IAM que vous avez spécifié plus tôt dans ce didacticiel.
    • –police-arn : L'arn spécifié dans –policy-arn fait référence à l'autorisation ReadOnlyAccess pour le compartiment S3.

Dans cette image, le rôle s'est vu attribuer l'autorisation ReadOnlyAccess pour le compartiment S3 :


Pour vérifier si l'autorisation a été attribuée au rôle ou non, utilisez la commande suivante :

aws iam list-attached-role-policies --nom de rôle rôle d'utilisateur


Remplace le 'rôle d'utilisateur' avec votre nom de rôle IAM.

Le « AmazonS3ReadOnlyAccess » l'autorisation a été attachée au rôle IAM. Le résultat de la commande est donné comme suit :

Étape 4 : Créer les clés d'accès

Dans cette section, nous allons créer les clés d'accès pour l'utilisateur. Les clés d'accès seront utilisées pour se connecter au compte AWS :

aws iam créer-clé d'accès --nom d'utilisateur utilisateur de démonstration


Remplace le utilisateur de démonstration avec votre nom d'utilisateur IAM donné au moment de la création d'un utilisateur.

Ici, la commande a renvoyé un ensemble de paires de clés d'accès (AccessKeyId et Secret Access Key) avec des détails supplémentaires tels que la date de création, l'état, etc. Sauvegarder les AccessKeyId et SecretAccessKey car ils sont requis plus loin dans le didacticiel :


En savoir plus:

Étape 5 : configurer la clé d'accès et vérifier l'utilisateur IAM

Pour configurer la clé d'accès, fournissez la commande suivante au CMD, puis entrez l'ID de la clé d'accès et la clé d'accès secrète :

AWS configurer


Fournissez l'ID de clé d'accès et la clé d'accès secrète à la CLI qui ont été créés à l'étape 4 de cette section. Pour la région, nous avons conservé les paramètres par défaut. Les utilisateurs peuvent configurer n'importe quel format de sortie pour le format de sortie par défaut. Pour cette démo, nous avons précisé le JSON format:


Afin de vérifier si l'utilisateur IAM a été configuré, fournissez la commande suivante à la CLI :

aws sts obtenir l'identité de l'appelant


Le résultat de la commande indique que le 'utilisateur de démonstration' a été configuré avec succès et est actuellement connecté au compte AWS :


Pour déterminer que l'utilisateur IAM peut répertorier les instances EC2 et n'a actuellement pas accès au compartiment S3, utilisez la commande suivante :

aws ec2 décrire-instances --requête 'Réservations[*].Instances[*].[VpcId, InstanceId, ImageId, InstanceType]'


Le résultat de la commande est donné comme suit :


Maintenant, fournissez la commande suivante pour vérifier si l'utilisateur peut accéder au compartiment S3 :

aws s3 ls


Cela affichera le 'Accès refusé' erreur qui indique que l'utilisateur n'est pas autorisé à accéder au bucket S3 :

Étape 6 : Assumer le rôle IAM

L'utilisateur est autorisé à répertorier les rôles IAM au sein du compte AWS. Par conséquent, pour assumer le rôle, nous allons d'abord acquérir les informations nécessaires telles que l'ARN en exécutant la commande suivante :

aws iam liste-rôles --requête 'Rôles[?RoleName == 'user-role'].[RoleName, Arn]'


Remplacez le « rôle d'utilisateur » par le nom du rôle IAM dans le champ « Nom de rôle ».

L'ARN a été donné dans le résultat de la commande mentionnée ci-dessus :


Maintenant que nous avons l'ARN du rôle IAM, nous pouvons assumer le rôle en utilisant la commande suivante :

aws sts assumer le rôle --role-arn 'arn:aws:iam::123456789012:role/exemple-rôle' --role-nom-de-session Session AWSCLI


Dans la commande ci-dessus :

    • –rôle-arn : Remplacez la valeur mentionnée pour –role-arn par l'ARN du rôle IAM.
    • –nom-de-session-rôle : L'utilisateur peut fournir n'importe quel nom de préférence pour ce champ.

En exécutant la commande mentionnée ci-dessus, un ensemble d'informations d'identification temporaires a été renvoyé. Ces informations d'identification temporaires seront utilisées pour assumer le rôle IAM avec l'autorisation souhaitée, c'est-à-dire ReadOnlyAccess. Les AccessKeyId et SecretAccessKey seront utilisés lors de la configuration de ces informations d'identification temporaires :


Voici une brève description du résultat de la commande :

    • Jeton de session : Le jeton de session est utilisé pour créer la connexion basée sur la session. Enregistrez la valeur de ce champ car elle sera requise lors de la configuration des informations d'identification.
    • Expiration: Le jeton de session a une date et une heure d'expiration. Le jeton ne sera d'aucune utilité après le délai spécifié et l'utilisateur ne pourra pas assumer le rôle.

Étape 7 : configurer la variable d'environnement

Pour configurer les informations d'identification temporaires, nous utiliserons la commande « set » pour Windows, puis fournirons la valeur de l'ID de clé d'accès, de la clé d'accès secrète, du jeton de session, etc. :

Pour les fenêtres

ensemble AWS_ACCESS_KEY_ID = ID de clé d'accès au rôle


Remplacez le RoleAccessKeyID par l'ID de clé d'accès qui a été renvoyé par la commande à l'étape 6.

Pour le système d'exploitation Linux

exporter AWS_ACCESS_KEY_ID = ID de clé d'accès au rôle


Remplacez le RoleAccessKeyID par l'ID de clé d'accès qui a été renvoyé par la commande à l'étape 6.

La clé d'accès a été configurée :


Ensuite, nous allons configurer la clé d'accès secrète en utilisant la commande « set » pour Windows :

Pour les fenêtres

ensemble AWS_SECRET_ACCESS_KEY =CléSecretRôle


Remplacez RoleSecretKey par la valeur de clé d'accès secrète renvoyée par la commande à l'étape 6.

Pour le système d'exploitation Linux

exporter AWS_SECRET_ACCESS_KEY =CléSecretRôle


Remplacez AWS_SECRET_ACCESS_KEY par la clé d'accès secrète renvoyée par la commande à l'étape 6.

La clé d'accès secrète a été configurée avec succès :


Enfin, nous configurerons le jeton de session pour établir la connexion basée sur la session. Pour cela, utilisez la commande mentionnée ci-dessous :

Pour les fenêtres

ensemble AWS_SESSION_TOKEN =Jeton de session de rôle


Remplacez RoleSessionToken par la valeur du jeton de session renvoyée par la commande à l'étape 6.

Pour le système d'exploitation Linux

exporter AWS_SESSION_TOKEN =Jeton de session de rôle


Remplacez RoleSessionToken par la valeur du jeton de session renvoyée par la commande à l'étape 6.

La valeur du jeton de session a été configurée avec succès :


Pour copier la valeur du jeton de session depuis CMD, appuyez sur 'CTRL + MAJ + C' .

Après avoir configuré les variables d'environnement, vérifiez à l'aide de la commande suivante si le rôle a été assumé par l'utilisateur :

aws sts obtenir l'identité de l'appelant


Le résultat de la commande vérifie que le rôle IAM a été assumé avec succès par l'utilisateur car le retour ARN est 'arn:aws:sts::123456789012:assumed-role/user-role/AWSCLI-Session' au lieu de 'arn:aws:iam::123456789012:user/demo-user' :


Comme le rôle contient l'autorisation ReadOnlyAccess, l'utilisateur devrait pouvoir inscrire les compartiments maintenant. Pour cela, fournissez la commande suivante à la CLI :

aws s3 ls


Le résultat de la commande répertorie avec succès tous les compartiments S3 actuellement configurés dans le compte AWS :


Cependant, l'utilisateur ne pourra pas accéder au service EC2 car le rôle assumé n'a aucune autorisation pour le service EC2. Pour vérifier cela, utilisez la commande suivante :

aws ec2 décrire-instances --requête 'Réservations[*].Instances[*].[VpcId, InstanceId, ImageId, InstanceType]'


Auparavant, l'utilisateur pouvait accéder aux informations du service EC2. Cependant, lors de l'exécution de la commande mentionnée ci-dessus, un 'Accès refusé' Une erreur s'est produite. L'utilisateur a assumé avec succès le rôle IAM :


Tout cela vient de cette section.

Astuce bonus : désactivez les variables d'environnement

Pour revenir à l'utilisateur IAM, c'est-à-dire l'utilisateur de démonstration, l'utilisateur peut supprimer les variables d'environnement en définissant les variables d'environnement sur des chaînes vides. Voici les commandes données :

Pour les fenêtres

ENSEMBLE AWS_ACCESS_KEY_ID =
ENSEMBLE AWS_SECRET_ACCESS_KEY =
ENSEMBLE AWS_SESSION_TOKEN =


Pour Linux

Utilisez la commande mentionnée ci-dessous :

désarmé AWS_ACCESS_KEY_ID AWS_SECRET_ACCESS_KEY AWS_SESSION_TOKEN


Les commandes mentionnées ci-dessus supprimeront les variables d'environnement :


Après avoir exécuté les commandes ci-dessus, la console devrait maintenant renvoyer le 'utilisateur de démonstration' en tant qu'utilisateur actuellement connecté au lieu du rôle assumé, c'est-à-dire le rôle d'utilisateur. Pour cela, nous utiliserons la commande suivante :

aws sts obtenir l'identité de l'appelant


Le résultat de la commande indique que l'utilisateur actuellement connecté est un utilisateur de démonstration :


De même, pour vous connecter en tant qu'utilisateur root, suivez les 'C:\Utilisateurs%USERPROFILE%.aws' chemin et cliquez sur le fichier d'informations d'identification :


Dans le fichier d’informations d’identification, remplacez les valeurs de la clé d’accès et de la clé d’accès secrète par l’accès et la clé d’accès secrète de l’utilisateur root :


Fournissez la commande suivante à la CLI pour vérifier si les informations d'identification sont correctement configurées :

AWS configurer


Ici, dans l'image ci-dessous, nous pouvons voir que la clé d'accès et la clé d'accès secrète de l'utilisateur root ont été configurées avec succès :


C'est tout de cette section du didacticiel.

Méthode 2 : utilisation du paramètre –profile

Une autre méthode pour assumer ce rôle consiste à utiliser le champ « –profile » dans la CLI. Cette section de l'article présente la mise en œuvre pratique de la prise en charge d'un rôle dans AWS via –profile. Voici les étapes à suivre :

Étape 1 : Créer un utilisateur IAM

Pour créer un utilisateur IAM, connectez-vous au compte utilisateur root via CLI à l'aide de la commande suivante :

AWS configurer


Les informations d'identification sont déjà configurées dans la CLI pour cette démo, comme indiqué dans le résultat de la commande :


Apprendre encore plus:

Pour créer un utilisateur IAM, fournissez la commande suivante à la CLI :

aws je suis créer un utilisateur --nom d'utilisateur utilisateur de profil


L'utilisateur a été créé avec succès. Enregistrez l'ARN de l'utilisateur comme affiché dans l'image ci-dessous. L'ARN de cet utilisateur IAM sera utilisé plus tard dans ce didacticiel. Actuellement, aucune autorisation n'est associée à cet utilisateur IAM :


En savoir plus:

Étape 2 : Créer une clé d'accès

Dans AWS, chaque utilisateur se voit attribuer une paire de clés d'accès pour la connexion. Pour créer les clés d'accès pour cet utilisateur, fournissez-lui la commande suivante :

aws iam créer-clé d'accès --nom d'utilisateur utilisateur de profil


Cette commande renvoie un ensemble de clés d'accès. Sauvegarder le ID de clé d'accès et Clé d'accès secrète car cela sera nécessaire lors de la connexion au compte AWS :


Maintenant, si nous nous connectons à l'AWS CLI en utilisant ces AccessKeyId et SecretAccessKey, et accédons à n'importe quelle ressource, par ex. Seau S3, le 'Accès refusé' une erreur se produira. En effet, aucune autorisation n'est actuellement associée à l'utilisateur IAM. Pour vous connecter à l'AWS CLI, utilisez la commande suivante et fournissez l'ID de clé d'accès et la clé d'accès secrète tels que créés précédemment :

AWS configurer --profil utilisateur de profil


Remplace le « utilisateur-profil » avec le nom d'utilisateur IAM que vous avez fourni lors de la création de l'utilisateur.

Ici, nous nous sommes connectés avec succès à l'AWS CLI en tant qu'utilisateur IAM :


Pour vérifier si cet utilisateur dispose d'autorisations en lecture seule pour le compartiment S3, fournissez la commande suivante à la CLI :

aws s3 ls --profil utilisateur de profil


Remplacez l'utilisateur de profil par le nom d'utilisateur IAM que vous avez fourni lors de la création de l'utilisateur.

Comme cet utilisateur n'a reçu aucune autorisation de la part de l'utilisateur root, cela entraînera le message ' Accès refusé ' erreur:

Étape 3 : Créer une stratégie de confiance et un rôle IAM

Une stratégie de confiance détermine si un utilisateur ou une ressource AWS est une entité de confiance pour assumer le rôle et acquérir les autorisations. Cette relation d'approbation est créée en spécifiant l'ARN de l'utilisateur IAM ou de la ressource AWS dans la stratégie d'autorisation.

Pour créer une stratégie de confiance dans IAM, fournissez la commande suivante à la CLI :

Pour les fenêtres

bloc-notes trust-policy.json


Remplace le trust-policy.json avec le nom de votre préférence pour la politique.

Pour le système d'exploitation Linux

parce que trust-role-policy.json


Remplace le trust-policy.json avec le nom de votre préférence pour la politique.

Les utilisateurs peuvent utiliser n'importe quel éditeur de texte de leur choix. Pour cette démo, nous utilisons le bloc-notes :


Cela ouvrira le bloc-notes pour créer la politique de confiance. Collez la politique suivante dans le bloc-notes et appuyez sur 'CTRL+S' depuis le clavier pour appliquer et enregistrer les modifications :

{
'Version' : '2012-10-17' ,
'Déclaration' : {
'Effet' : 'Permettre' ,
'Majeur' : {
'AWS' : 'arn:aws:iam::012345678910:user/profil-user'
} ,
'Action' : 'sts : AssumeRole'
}
}


Dans la politique ci-dessus : AWS : Remplacez la valeur « arn:aws:iam::012345678910:user/policy-user » par l'ARN de l'utilisateur IAM créé précédemment dans cette section.

La politique a été modifiée dans le bloc-notes :


Ensuite, nous allons créer un rôle IAM et y attacher la politique de confiance ci-dessus. Utilisez la commande suivante pour créer un rôle IAM :

aws je crée un rôle --nom de rôle mon rôle --assume-role-policy-document déposer: // trust-policy.json


Dans la commande mentionnée ci-dessus :

    • -nom de rôle: Remplace le 'mon rôle' avec le nom de rôle IAM de votre choix.
    • –assume-role-policy-document : Dans ce champ, remplacez le terme « trust-policy.json » avec le nom de votre stratégie de confiance IAM

Le rôle IAM a été créé avec succès. Enregistrez le rôle IAM. Enregistrez l'ARN du rôle IAM comme mis en évidence dans l'image suivante. Cet ARN sera utilisé lors de la configuration du profil de l'utilisateur :


La stratégie de confiance attachée à l'IAM identifie si l'utilisateur est approuvé ou non pour assumer le rôle. La stratégie d'autorisation détermine si le rôle IAM dispose ou non de l'autorisation requise pour effectuer une certaine action avec les services AWS.

Comme la stratégie de confiance a été attachée au rôle IAM, l'étape suivante consiste à attacher la stratégie d'autorisation au rôle IAM. La commande mentionnée ci-dessous sera utilisée pour attacher la stratégie d'autorisation au rôle IAM :

aws iam attach-role-politique --nom de rôle mon rôle --policy-arn 'arn:aws:iam::aws:policy/AmazonS3ReadOnlyAccess'


Ici, la stratégie d'autorisation a été attachée au rôle IAM via CLI :

Étape 4 : Configurer le profil

Pour que l'utilisateur assume ce rôle, nous allons d'abord configurer ce profil dans les informations d'identification d'AWS. Pour joindre ces informations d'identification temporaires, fournissez la commande suivante :

bloc-notes ~ / .aws / configuration


Astuce bonus : résolvez « Chemin non spécifié » dans le Bloc-notes

Le fichier de configuration contiendra le paramètre [par défaut] de l'AWS CLI. Cependant, si le bloc-notes affiche le message « Le système ne trouve pas le chemin spécifié », entrez la commande mentionnée ci-dessous :

bloc-notes .aws / configuration


Les utilisateurs de Linux peuvent utiliser le 'parce que' éditeur pour configurer le profil. Les utilisateurs peuvent utiliser n'importe quel éditeur de leur choix pour ouvrir le fichier de configuration d'AWS sur la machine locale :


Dans le fichier de configuration ouvert dans le Bloc-notes, modifiez les modifications suivantes :

[ profil utilisateur-profil ]
rôle_arn = arn:aws:iam::012345678910:rôle / mon rôle
profil_source =utilisateur-profil


Dans l'extrait ci-dessus :

    • rôle_arn : Remplacez la valeur « arn:aws:iam::012345678910:role/myrole » par l'ARN du rôle IAM.
    • profil_source : Dans ce champ, indiquez le nom de l'utilisateur IAM créé à l'étape 1 de cette méthode.

Après avoir effectué les modifications requises, appuyez sur 'CTRL+S' depuis le clavier pour appliquer et enregistrer les modifications :


Maintenant, pour vérifier si l'utilisateur peut désormais répertorier les compartiments S3 ou non, fournissez la commande suivante à la CLI :

aws s3 ls --profil utilisateur de profil


Dans la commande ci-dessus : –utilisateur-profil : Dans ce champ, remplacez la valeur « profile-use » par le nom que vous spécifiez dans le fichier de configuration.

Comme nous avons spécifié « profile-user » dans le fichier de configuration, nous utiliserons donc le même nom avec la commande dans CLI. Auparavant, l'utilisateur ne pouvait pas accéder au service S3 d'AWS car aucune autorisation ne lui était attribuée. Le rôle IAM a l'autorisation « ReadOnlyAccess » du bucket S3 et donc, en assumant ce rôle, l'utilisateur peut lister les buckets à partir du tableau de bord S3 :


C'est tout à partir de cette méthode du tutoriel.

Méthode 3 : Utilisation de MFA (authentification multifacteur)

En activant l'authentification multifacteur, l'utilisateur peut configurer une couche de sécurité supplémentaire pour le compte de l'utilisateur. Avec MFA activé, les utilisateurs non autorisés ne peuvent pas accéder au compte d’un utilisateur même s’ils fournissent un mot de passe et un nom d’utilisateur. Le MFA est un code à six chiffres requis pour se connecter au compte. Pour en savoir plus sur l'authentification multifacteur, reportez-vous à cet article :

Voici les étapes pour assumer un rôle avec MFA via CLI :

Étape 1 : Créer un utilisateur IAM et activer MFA

Pour cette étape, l'utilisateur peut soit utiliser la CLI pour créer l'utilisateur, soit accéder à AWS Management Console. Connectez-vous au compte utilisateur root à l'aide de la commande suivante :

AWS configurer


Le résultat de la commande est donné comme suit :


Pour créer un utilisateur, fournissez la commande suivante à la CLI :

aws je suis créer un utilisateur --nom d'utilisateur utilisateur mfa


Dans la commande ci-dessus : -nom d'utilisateur: Remplace le « utilisateur mfa » avec le nom d'utilisateur IAM de votre choix.

L'utilisateur a été créé avec succès. Enregistrez l'ARN de l'utilisateur car il sera requis plus tard dans cette section. Actuellement, cet utilisateur ne dispose d'aucune autorisation :


Pour activer le MFA, visitez la AWS Management Console et recherchez le service IAM. Cliquez dessus parmi les résultats affichés :


Cliquez sur l'option Utilisateurs dans le volet de navigation de gauche du service IAM. Dans le tableau de bord Utilisateurs, cliquez sur le nom d'utilisateur pour configurer le MFA :


Sur l'interface suivante, appuyez sur le « Identifiants de sécurité » option:


Faites défiler jusqu'à Authentification multifacteur section et cliquez sur le « Attribuer un périphérique MFA » bouton:


Fournir un nom significatif dans le Nom de l'appareil champ de texte sur l'interface affichée :


Faites défiler jusqu’à la section Appareil MFA. L'utilisateur se voit proposer diverses options pour activer le MFA, par exemple en scannant le code QR, via la clé de sécurité ou le jeton matériel TOTP. Pour cette démo, sélectionnez le 'Application d'authentification' option:


Appuyez sur le 'Suivant' en bas de l'interface pour continuer :


Clique le 'Afficher le code QR' comme le montre l'image ci-dessous :


Lancez le application sur votre mobile ou ordinateur portable pour scanner le code QR. Appuyez sur le '+' option depuis l'interface Symantec VIP :


Sur le Play Store, Symantec VIP est nommé VIP Access.

Sur l'interface suivante de Symantec VIP, cliquez sur le Scanner le code QR bouton en bas de l'interface :


Scannez le code QR depuis AWS MFA Interface de l'application de l'authentificateur affiché. Ce code générera une série de codes qui seront nécessaires pour se connecter à la console de l'utilisateur IAM :


L'application Symantec VIP générera OTP à six chiffres après avoir scanné le code QR. Ces codes continueront à apparaître après chaque 30 secondes . La capture d'écran ci-dessous montre les deux codes générés :


Fournir les codes au Code AMF 1 et Code AMF 2 champs de texte sur l’interface de l’application Authenticator de MFA. Clique le « Ajouter une MFA » bouton ensuite pour activer la fonctionnalité :


Le MFA a été activé avec succès pour l'utilisateur IAM. Cela peut être vérifié par le « Authentification multifacteur (MFA) » section de la « Identifiants de sécurité » onglet du Utilisateur IAM . Dans cette section, enregistrez la valeur de l'identifiant car elle sera requise pour assumer le rôle :

Étape 2 : Joindre la stratégie à l'utilisateur

Pour qu'un utilisateur puisse assumer un rôle, il doit être en mesure de répertorier le rôle IAM afin de déterminer le rôle à assumer et l'autorisation d'assumer le rôle. Pour doter l'utilisateur de l'autorisation requise, suivez de la méthode 1 dans ce tutoriel

Étape 3 : Créer une stratégie de confiance et un rôle IAM

L'étape suivante consiste à créer une stratégie de confiance pour déterminer si l'utilisateur est une entité de confiance ou non. Cette politique de confiance sera ensuite attachée au rôle IAM. Pour créer la stratégie de confiance et le rôle IAM, accédez à l'invite de commande et suivez de la méthode 1 dans cet article.

Étape 4 : Créer une clé d'accès

Pour que l'utilisateur soit autorisé et authentifié, une paire de clés d'accès mondialement uniques sur la plateforme AWS est générée. Ces paires de clés sont utilisées au moment de la connexion au compte AWS. Pour créer les clés d'accès pour l'utilisateur IAM, suivez les de la méthode 1 dans cet article.

Étape 5 : Configurer les informations d'identification

L'utilisateur AWS ne peut accéder aux ressources et services AWS que si les informations d'identification sont correctement configurées. Dans cette section de la méthode, nous allons configurer les informations d'identification de l'utilisateur IAM en fournissant la clé d'accès et la clé d'accès secrète à l'interface de ligne de commande. A cet effet, suivez les de la méthode 1 de ce tutoriel.

Étape 6 : Assumez le rôle IAM

Après avoir attaché avec succès le rôle IAM et implémenté la stratégie de confiance, l'utilisateur peut désormais assumer le rôle IAM. Pour cela, fournissez la commande suivante à la CLI :

aws iam créer-clé d'accès --nom d'utilisateur utilisateur mfa


Ici, la clé a été créée avec succès pour l'utilisateur IAM. Enregistrez AccessKeyId et SecretAccessKey car ils seront nécessaires pour vous connecter au compte AWS :


L'étape suivante consiste à configurer les clés d'accès dans l'AWS CLI. Utilisez la commande mentionnée ci-dessous pour configurer la CLI :

AWS configurer


Fournissez la clé d'accès et la clé d'accès secrète à la CLI pour les configurations :


Pour vérifier si l'utilisateur IAM s'est connecté à l'AWS CLI, utilisez la commande suivante :

aws sts obtenir l'identité de l'appelant


Le résultat de la commande est donné comme suit, ce qui indique que l'utilisateur s'est connecté avec succès à la console AWS :


L'utilisateur a l'autorisation de répertorier les rôles IAM au sein du compte AWS. La commande ci-dessous est utilisée pour lister les rôles IAM :

aws iam liste-rôles --requête 'Rôles[?RoleName == 'mfa-role'].[RoleName, Arn]


Dans la commande ci-dessus : Nom de rôle: Dans ce champ, remplacez la valeur « mfa-role » par le nom de votre rôle IAM.

Le résultat de la commande est donné comme suit :


Pour assumer le rôle IAM avec MFA, utilisez la commande assume role avec des paramètres supplémentaires tels que le numéro de série et le code du jeton. Fournissez la commande suivante à la CLI :

aws sts assumer le rôle --role-arn 'arn:aws:iam::123456789012:role/m-role' --role-nom-de-session Session AWSCLI --numéro de série 'arn:aws:iam::012345678910:mfa/admindevice' --code-jeton '123456'


Dans la commande ci-dessus :

    • –rôle-arn : Remplacez la valeur de ce champ par l'ARN de votre rôle IAM.
    • –nom-de-session-rôle : Dans ce champ, l'utilisateur peut fournir le nom de session de son choix.
    • -numéro de série: Remplacez la valeur de ce champ par la valeur de l'identifiant de l'interface MFA enregistrée précédemment.
    • –code-jeton : Cette valeur est à remplacer par le code actuel affiché dans l'interface Symantec VIP.

Le code actuel affiché dans Symantec VIP est indiqué comme suit. Le même code sera utilisé dans la valeur –token-code de la commande :


Le résultat de la commande contiendra les informations d'identification temporaires telles qu'un jeton de session, une clé d'accès, une clé d'accès secrète, etc :

Étape 7 : configurer les variables d'environnement

Les clés d'accès et le jeton de session renvoyé seront désormais utilisés pour établir la connexion basée sur la session et assumer le rôle. L'implémentation détaillée de la configuration de l'environnement est abordée dans de la méthode 1.

Dernières pensées

Pour assumer un rôle à l'aide de CLI, il existe trois méthodes, à savoir via le STS (service de jeton de sécurité), le paramètre –profile ou le MFA (Multi-Factor Authentication). Pour qu'un utilisateur puisse assumer un rôle, une politique de confiance doit d'abord être établie. Cette politique de confiance détermine si l'utilisateur est une entité de confiance ou non. Cette fonctionnalité est nécessaire car elle répond aux préoccupations de sécurité des experts informatiques et des particuliers. De plus, l'utilisateur ne peut assumer le rôle que s'il dispose des autorisations requises.

Lorsqu'un utilisateur assume un rôle dans AWS, une connexion basée sur une session est créée pour fournir un accès à durée limitée à l'utilisateur disposant des autorisations souhaitées. Un jeton est généré et expire après une heure spécifique et l'utilisateur ne peut donc plus effectuer la tâche d'administration avec les ressources AWS. Cet article fournit une implémentation pratique des trois méthodes pour assumer un rôle dans l'AWS CLI.