Quiconque parvient à entrer dans votre compte AWS peut supprimer toutes vos machines, emporter vos données ou, le plus fréquent, créer des dizaines de machines puissantes pour miner des cryptomonnaies et vous laisser la facture. Cela arrive tous les jours, et presque toujours pour la même raison : un mot de passe divulgué sans double authentification, ou une clé d'accès publiée par erreur dans un dépôt public.
Se protéger prend vingt minutes et ne coûte rien. Ce sont quatre mesures, et la première est celle qui compte vraiment : si vous n'en faites qu'une, que ce soit celle-là.
Avant de commencer : ce que signifie chaque chose
- Compte racine (root)
- L'utilisateur avec lequel le compte AWS a été créé, celui qui se connecte avec l'adresse e-mail. Il peut tout faire, y compris fermer le compte, et on ne peut pas le limiter. C'est pourquoi il faut le garder sous clé et ne pas l'utiliser au quotidien.
- Double authentification (MFA)
- Une deuxième étape à la connexion, en plus du mot de passe : un code qui change toutes les 30 secondes dans une application du téléphone, ou une clé physique. Si l'on vous vole le mot de passe, sans le téléphone, personne n'entre.
- Application d'authentification
- Une application gratuite du téléphone qui génère ces codes (Google Authenticator, Microsoft Authenticator, Authy et d'autres). N'importe laquelle convient.
- IAM
- Le service AWS où l'on crée les utilisateurs et où on leur donne des permissions.
- Utilisateur IAM
- Une identité à l'intérieur de votre compte, avec son propre nom et son mot de passe, dont vous pouvez limiter les actions. C'est avec cela que vous devriez vous connecter chaque jour, plutôt qu'avec le compte racine.
- Clé d'accès
- Le « nom d'utilisateur et mot de passe » qu'utilisent les programmes pour parler à AWS. Le compte racine ne devrait en avoir aucune.
- Contacts alternatifs
- Adresses et téléphones de facturation, d'exploitation et de sécurité qu'AWS prévient s'il se passe quelque chose. S'ils ne sont pas à jour, les alertes n'arrivent à personne.
Pas à pas
Activez la double authentification sur le compte racine
Connectez-vous à AWS avec l'adresse e-mail du compte (le compte racine). En haut à droite, menu de votre nom, Informations d'identification de sécurité. Dans le bloc Authentification multifacteur (MFA), cliquez sur Attribuer un dispositif MFA. Choisissez Application d'authentification, ouvrez l'application sur votre téléphone, scannez le code QR et saisissez deux codes successifs. C'est fait : désormais, se connecter avec le compte racine demandera le code du téléphone.
Vous pouvez attribuer plusieurs dispositifs. Ajoutez-en un second (le téléphone d'un autre responsable, ou une clé physique rangée dans un tiroir) au cas où vous perdriez le premier : récupérer un compte racine sans double authentification est un processus lent avec AWS.
Supprimez les clés d'accès du compte racine
Sur le même écran Informations d'identification de sécurité, bloc Clés d'accès. S'il y en a, désactivez-la et, quand vous aurez vérifié que rien ne cesse de fonctionner, supprimez-la. Une clé du compte racine est un passe-partout qui n'expire pas ; rien ne devrait l'utiliser. Les programmes qui ont besoin d'un accès utilisent des utilisateurs ou des rôles aux permissions limitées (il y a des guides pour les deux dans cette section).
Créez un utilisateur administrateur pour le quotidien
Ouvrez IAM, Utilisateurs, Créer un utilisateur. Nom : votre nom ou
admin-nombre. Cochez Fournir l'accès à la console et choisissez un mot de passe. Dans les permissions, Attacher directement des politiques et cochez AdministratorAccess : il pourra presque tout faire, mais ni fermer le compte ni changer les données de paiement, qui restent réservés au compte racine. Créez l'utilisateur et notez l'adresse de connexion affichée (elle contient le numéro de votre compte).Si vous êtes plusieurs, un utilisateur par personne. Ne partagez jamais un compte : quand quelque chose cassera, vous voudrez savoir qui l'a fait.
Mettez aussi la double authentification sur cet utilisateur
Connectez-vous avec le nouvel utilisateur, menu de votre nom, Informations d'identification de sécurité, et attribuez un dispositif MFA comme à l'étape 1. Rendez-la obligatoire pour tous les utilisateurs que vous créez. Désormais, connectez-vous toujours avec cet utilisateur et conservez le mot de passe du compte racine dans un gestionnaire de mots de passe, pour ne l'utiliser que lorsqu'AWS l'exige (changer les données de paiement, fermer le compte, quelque opération rare).
Mettez à jour les contacts et créez une alerte de dépenses
Avec le compte racine, menu de votre nom, Compte : vérifiez l'adresse e-mail principale et remplissez les Contacts alternatifs (facturation, exploitation, sécurité) avec des adresses que quelqu'un lit. Ce sont celles qu'AWS utilise pour vous avertir d'une clé divulguée ou d'un usage anormal. Et créez un budget avec alerte par e-mail (il y a un guide dans cette section) : si quelqu'un entre et commence à créer des machines, l'alerte de prévision de dépenses sera probablement le premier signal.
Vérifiez de temps en temps
Une fois par trimestre, dans IAM, onglet Utilisateurs : toutes ces personnes travaillent-elles encore ici ? Ont-elles toutes la MFA ? Y a-t-il des clés d'accès inutilisées depuis des mois (colonne « Dernière utilisation ») ? Supprimez ce qui est en trop. IAM propose en plus un rapport d'informations d'identification téléchargeable qui résume tout cela dans un tableau.
Ce qui peut mal tourner
J'ai perdu le téléphone avec la double authentification du compte racine
Si vous avez enregistré un second dispositif, utilisez-le et retirez celui qui est perdu. Sinon, AWS a un processus de récupération qui vérifie l'e-mail et le téléphone du compte ; il est lent, et c'est pour cela que nous insistons sur le fait d'avoir deux dispositifs.
Un programme a cessé de fonctionner quand j'ai supprimé la clé du compte racine
Ce programme utilisait le passe-partout. Créez pour lui un utilisateur IAM avec uniquement les permissions nécessaires (guide dans cette section) et donnez-lui sa propre clé. C'est exactement le problème que vous vouliez découvrir.
On me demande la double authentification à chaque fois et c'est pénible
C'est le prix à payer, et il est faible comparé à un compte volé. Les applications d'authentification prennent trois secondes. Si cela gêne vraiment, une clé physique USB est encore plus rapide.
J'ai reçu un e-mail d'AWS disant que ma clé est dans un dépôt public
C'est réel et c'est urgent : des programmes cherchent des clés sur Internet et les utilisent en quelques minutes. Connectez-vous, désactivez cette clé immédiatement, vérifiez dans EC2 de toutes les régions si des machines qui ne sont pas à vous sont apparues, et répondez au dossier de support qu'AWS aura ouvert.
Dans Simplio
Simplio applique ces mêmes règles pour vous : chaque utilisateur se connecte avec son mot de passe et sa double authentification obligatoire (sans codes de récupération par e-mail qui pourraient être volés), et les actions sensibles la redemandent. Les clés AWS que vous enregistrez sont stockées chiffrées et ne sont jamais réaffichées, ou n'existent tout simplement pas si vous vous connectez par rôle. Et le journal d'activité dit qui a fait quoi, quand et depuis où.
La même chose, dans AWS et dans Simplio
| Dans la console AWS | Dans Simplio | |
|---|---|---|
| Double authentification pour toute l'équipe | Configurer la MFA utilisateur par utilisateur dans IAM et vérifier qu'ils le font | Obligatoire pour tous les utilisateurs de Simplio, sans codes de récupération par e-mail |
| Limiter ce que fait chaque personne | Politiques IAM écrites à la main | Permissions par action et par machine, avec des cases à cocher |
| Savoir qui a fait quoi | CloudTrail | Journal d'activité en langage courant |