Pouvez-vous exiger MFA pour les comptes AWS IAM?

23

Est-il possible d'exiger que l'authentification multifacteur (MFA) soit activée pour des comptes IAM spécifiques / tous dans Amazon Web Services?

Il existe des options pour les exigences de mot de passe et il est clair comment on peut choisir de l'ajouter à son compte, mais il n'est pas clair s'il existe une option pour forcer les utilisateurs à avoir MFA.

Joe
la source
Politique IAM qui requiert le MFA pour la plupart des actions: docs.aws.amazon.com/IAM/latest/UserGuide/…
Simon Woodside

Réponses:

13

La réponse est oui, il y en a. En utilisant une condition. Par exemple, pour les comptes d'administrateur:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "*",
      "Resource": "*", 
      "Condition":
      {
          "Null":{"aws:MultiFactorAuthAge":"false"}
      }
    }
  ]
}

Il appliquera MFA pour l'authentification par mot de passe et l'authentification basée sur des jetons à l'aide de l'API.

smad
la source
6
Le faire de cette façon le nécessiterait à la fois pour l'accès à la console et à l'API; serait-il possible de l'exiger uniquement pour l' accès à la console?
jeffbyrnes
Aucune idée. Je sais que c'est ennuyeux pour l'API (CLI) car MFA n'est pas bien pris en charge. BTW Je ne vois pas vraiment l'intérêt de mettre en place une sécurité renforcée si c'est un moyen de la contourner en utilisant une autre méthode d'accès.
smad
3
@smad Je pense que le fait serait que les informations d'identification des jetons seront générées automatiquement et stockées sur le disque dur de l'utilisateur, de sorte que le seul vecteur d'attaque les obtienne de l'ordinateur de l'utilisateur, soit via un logiciel malveillant, soit en volant l'ordinateur, etc. Le mot de passe sur d'autre part, il peut être faible ou réutilisé sur d'autres sites, il existe donc un vecteur d'attaque supplémentaire pour le forcer brutalement ou pour l'obtenir à partir d'un vidage de mot de passe depuis un site piraté. Une politique de mot de passe peut aider mais il est difficile d'empêcher ppl, par exemple d'utiliser un mot de dictionnaire avec seulement le i remplacé par un 1 ou!
danny
@jeffbyrnes Lorsque vous activez un utilisateur pour MFA, il n'est activé par défaut que pour l'accès à la console. Vous devez ensuite utiliser une stratégie IAM comme celle-ci pour définir les actions API / CLI qui nécessitent le MFA, le cas échéant.
SeanFromIT
1
Je ne suis pas sûr que cela fonctionne plus - du moins, sauf si je ne l'ai pas appliqué correctement! (en tant que nouvelle stratégie, affectée au groupe Administrateurs). Les administrateurs nouveaux et existants de mon compte peuvent se connecter sans avoir configuré MFA.
Tim Malone
8

Après un peu de regard, il semble que la réponse soit "en quelque sorte". Dans IAM, un administrateur peut configurer un MFA pour un autre utilisateur IAM. Bien que cela puisse être un peu délicat si vous configurez un MFA virtuel, c'est possible. Ensuite, si l'utilisateur n'a pas été autorisé à mettre à jour / supprimer son MFA, cela est effectivement requis.

Bien que je n'aie pas encore déterminé la liste complète des actions qui devraient être refusées (ou tout simplement non accordées), ce message semble avoir les informations, et je mettrai à jour cette réponse une fois que je l'aurai testée.

[Mise à jour]

J'ai pu configurer des utilisateurs en tant qu'utilisateurs avancés (ce qui ne leur a pas permis d'accéder à des fonctions IAM, même si je suis sûr que vous pourriez être plus précis) et implémenter leur MFA avec eux. En utilisant cette méthodologie, ils ne pourront pas la désactiver.

Joe
la source
1
savez-vous s'il est possible de laisser les utilisateurs IAM configurer eux-mêmes MFA?
cavalcade
Si c'est le cas, je n'ai pas trouvé le chemin.
Joe
2
@MattTagg oui c'est possible, voir docs.aws.amazon.com/IAM/latest/UserGuide/…
dasil003
1

Oui, vous pouvez exiger MFA pour les comptes IAM à la fois pour la console Web et pour la awscliligne de commande. En fait, il n'est pas possible d'exiger de manière fiable MFA pour la console Web sans l'exiger pour la awscliligne de commande, car les deux atteignent les mêmes API. Je dis «de manière fiable» car avec une stratégie IAM complexe, il est possible d'autoriser certaines awscliopérations sans MFA tout en appliquant MFA pour la console Web. Cependant, les résultats sont quelque peu imprévisibles et, en outre, les clés IAM sont également, sinon plus dangereuses, non protégées. Ma recommandation est de l'exiger pour les deux, puis de créer des clés non protégées pour des utilisations spéciales où MFA est absolument contre-indiqué. Pour les processus automatisés, les rôles seraient généralement un meilleur choix.

Pour faciliter les opérations MFA sur la ligne de commande, j'ai créé un ensemble de scripts bash et un exemple de stratégie d'application MFA soigneusement conçu qui facilitent la connexion / le détachement de vMFAd, ainsi que le démarrage et la gestion des sessions MFA. Ils fonctionnent sur les variantes macOS et Linux, mais probablement pas sur Windows (non testé).

Ville
la source
0

Apparemment non. Il semble que MFA pour les comptes IAM est facultatif, mais vous feriez mieux de publier sur les forums de support AWS pour une réponse faisant autorité.

Tom O'Connor
la source
Merci pour le lien, mais il répond à une question différente sur le moment où le MFA sera requis une fois qu'il sera activé. Cette question est de savoir si l'activation peut être appliquée.
Joe
0

Nous avons documenté quelques considérations pour le multifacteur AWS API en général (où ajouter les conditions, quelles sont les implications, etc.) dans la documentation de certains outils personnalisés ( https://github.com/kreuzwerker/awsu ) que nous avons développés pour utiliser Yubikeys comme source pour les jetons TOTP. Cela facilite le travail avec les rôles et les informations d'identification à long terme + les jetons de session.

bâillement
la source