Amazon EC2 : requiert MFA (GetSessionToken) pour des opérations EC2 spécifiques - AWS Identity and Access Management

Amazon EC2 : requiert MFA (GetSessionToken) pour des opérations EC2 spécifiques

Cet exemple montre comment vous pouvez créer une politique basée sur l'identité qui autorise un accès total à toutes les opérations d'API AWS dans Amazon EC2. Cependant, il refuse explicitement l'accès aux opérations d'API TerminateInstances et StopInstances si l'utilisateur n'est pas authentifié à l'aide de l'authentification MFA. Pour le faire par programmation, l'utilisateur doit inclure des valeurs SerialNumber et TokenCode facultatives lors de l'appel de l'opération GetSessionToken. Cette opération renvoie les informations d'identification temporaires qui ont été authentifiées à l'aide de MFA. Pour en savoir plus sur GetSessionToken, consultez Demande d’informations d’identification temporaires pour les utilisateurs dans des environnements non fiables.

À quoi sert cette politique ?

  • L'instruction AllowAllActionsForEC2 autorise toutes les actions Amazon EC2.

  • L'instruction DenyStopAndTerminateWhenMFAIsNotPresent rejette les actions StopInstances et TerminateInstances lorsque le contexte de MFA est manquant. Cela signifie que les actions sont refusées lorsque le contexte d'authentification multi-facteur est manquant (c'est-à-dire, quand l'authentification MFA n'a pas été utilisée). Un refus remplace l'autorisation.

Note

Le contrôle de la condition MultiFactorAuthPresent de l'instruction Deny ne doit pas être {"Bool":{"aws:MultiFactorAuthPresent":false}}, car cette clé n'est pas présente et ne peut pas être évaluée quand l'authentification MFA n'est pas utilisée. Utilisez donc plutôt le contrôle BoolIfExists pour voir si la clé est présente avant de vérifier la valeur. Pour en savoir plus, consultez Opérateurs de condition ...IfExists.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowAllActionsForEC2", "Effect": "Allow", "Action": "ec2:*", "Resource": "*" }, { "Sid": "DenyStopAndTerminateWhenMFAIsNotPresent", "Effect": "Deny", "Action": [ "ec2:StopInstances", "ec2:TerminateInstances" ], "Resource": "*", "Condition": { "BoolIfExists": {"aws:MultiFactorAuthPresent": false} } } ] }