Créons nos utilisateurs

Maintenant que nous avons vu les bases de l'IAM, je vous propose que nous créions nos premiers utilisateurs.

Pour les besoins de ce tutoriel, nous allons créer trois utilisateurs :

  • Un utilisateur console, qui aura des droits sur l'ensemble d'Amazon, mais uniquement en lecture seule, il nous permettra de contrôler nos déploiements.
  • Un utilisateur programmatique, qui nous permettra de faire nos déploiements. Pour ce dernier, nous appliquerons la politique du least privilege, et nous n'allons pour l'instant lui donner aucun droit.
  • Un utilisateur "Superadmin" programmatique, qui permettra de piloter le compte de déploiement (dans une infrastructure classique, il s'agit souvent d'une autre équipe, qui va créer le compte de déploiement)

Créer l'utilisateur console (web)

Nous allons donc commencer par créer notre utilisateur console. Pour ce dernier, nous lui donnerons une AWS managed policy lui donnant un accès en lecture seule sur l'ensemble du compte.

Pour ce faire, nous allons cliquer sur "Services" puis taper "IAM" dans la barre de recherche.

On clique sur le lien qui s'est affiché.

Ensuite, nous allons cliquer sur "Users" sur la barre latérale gauche.

Enfin, en cliquant sur "Add user", vous pouvez créer votre utilisateur.

  • Le nom d'utilisateur est libre, ça sera le nom que vous taperez pour vous connecter
  • En "Access type", on choisit donc uniquement AWS Management Console access
  • Vous pouvez mettre vous-même un mot de passe, ou en générer un automatiquement, comme vous le souhaitez.

Maintenant nous allons mettre les autorisations à notre utilisateur, choisissez donc "Attach existing policies directly" et tapez "ReadOnlyAccess" dans la barre de recherche, cherchez ensuite le policy ayant exactement ce nom et cochez la case associée.

Pour les autres pages, vous pouvez directement faire suivant, nous parlerons des tags ultérieurement.

Votre utilisateur est maintenant créé, félicitations!

Avant de passer à la suite, nous allons faire deux actions supplémentaires :

  • Nommer le compte AWS
  • Ajouter un MFA à notre utilisateur

Nommer le compte

Comme vous pouvez le voir, AWS m'indique une URL de connexion un peu barbare, avec mon numéro de compte. C'est bien gentil, mais je ne vais pas me souvenir d'un ID pareil.

Il faut savoir qu'il est aussi possible de nommer votre compte AWS, cela permet :

  • Au niveau de la facturation d'avoir le nom du compte au lieu de son identifiant
  • D'utiliser l'alias du nom de compte de pour assume role ou la connection console

Nous allons donc nommer notre compte AWS.

Pour ça, on retourne sur la page d'accueil d'IAM, et on clique sur customize à côté de l'URL du compte.

Vous pouvez choisir un alias, qui doit être unique. Une fois validé, vous aurez une url plus "friendly".

Activer le MFA

Nous allons aussi activer le MFA sur notre utilisateur lecture seule, a noté qu'activer un MFA sur l'ensemble des utilisateurs est une bonne pratique de sécurité recommandée par AWS.

Nous allons donc retourner à la page d'accueil des utilisateurs et cliquer sur notre utilisateur nouvellement créé.

En cliquant sur l'onglet "Security credentials", vous pourrez constater qu'AWS nous indique qu'il n'y a pas de MFA attaché à ce compte.

Il est donc possible de rattacher un MFA en cliquant sur "Manage", les options disponibles sont les mêmes que pour le compte root. Il est fortement recommandé d'utiliser un autre MFA pour le compte (par exemple deux codes authenticator différents) que celui du compte root.

Une fois validé, vous pourrez voir que le MFA est requis à la connexion.

Créer l'utilisateur programmatique

Maintenant nous allons créer l'utilisateur programmatique, cet utilisateur sera utilisé pour faire nos déploiements.

Pour l'instant, nous allons simplement créer l'utilisateur, sans lui attacher de droits.

Comme je l'ai dit précédemment, la politique de sécurité à utiliser est celle dite du "least privilege", nous modifierons donc cet utilisateur au fur et à mesure pour lui donner les droits dont il a besoin pour faire ses actions.

De la même manière que précédemment, on retourne donc sur la page d'accueil des utilisateurs et nous recliquons sur "Add user".

Cette fois, nous choisissons "Programmatic access". Une fois de plus, vous pouvez nommer l'utilisateur comme bon vous semble!

Comme expliqué, nous n'allons pour le moment positionner aucune permission sur ce compte. Nous les définirons petit à petit lorsque nous en aurons besoin.

Une fois terminé, vous arriverez à un écran similaire à celui-ci (j'ai masqué ma clé évidemment). Je vous recommande fortement de télécharger le fichier csv contenant la clé et la clé privée générée.

A noter que lorsque vous créez une clé sur AWS, le seul moment ou vous pouvez récupérer le couple Access Key / Secret Access Key est lors de la création.

Si vous veniez à perdre ce dernier, il serait nécessaire de détruire et recréer une nouvelle clé. De plus, vous êtes limités à 2 clés par utilisateur.

Nous utiliserons ces accès ultérieurement, donc conservez les bien au chaud!

Créer l'administrateur

A ce moment, vous allez me dire "OK, tu nous dis de ne pas utiliser le compte root, parce qu'il a tous les droits, mais on va créer un utilisateur qui a tous les droits!".

Et vous avez presque raison.

Nous allons effectivement créer un utilisateur "full admin" sur notre compte. Mais en réalité, il n'aura pas 100% des droits.

Comme je vous l'avais indiqué plus tôt, certaines actions spécifiques sont uniquement autorisées pour le compte root, comme par exemple la clotûre du compte.

Dans le cadre de notre tutoriel, cet utilisateur est nécessaire, néanmoins, comme je l'ai indiqué plus tôt, en entreprise, cette gestion est normalement dans deux équipes distinctes. L'administrateur créé les comptes pour que le déploiement puisse se faire.

Donc, nous allons créer un utilisateur. Je vais volontairement pas vous expliquer comment faire vu que vous savez le faire maintenant!

L'utilisateur que nous allons créer doit avoir un accès programmatique et console à la fois, et il doit être sécurisé. Nous allons attacher l'AWS Managed Policy "AdministratorAccess".

Une fois de plus, gardez les informations de connexion de côté, nous les utiliserons bientôt!

Page suivante : Cost management et AWS