Amazon EC2: requiere MFA (GetSessionToken) para operaciones EC2 específicas
En este ejemplo se muestra cómo crear una política basada en identidad que permita el acceso completo a todas las operaciones de API de AWS en Amazon EC2. Sin embargo, deniega de forma explícita el acceso a las operaciones de API StopInstances
y TerminateInstances
si el usuario no está autenticado mediante la Multi-Factor Authentication (MFA). Para hacer esto mediante programación, el usuario debe incluir los valores opcionales TokenCode
y SerialNumber
al llamar a la operación GetSessionToken
. Esta operación devuelve las credenciales temporales que se hayan autenticado con MFA. Para obtener más información acerca del GetSessionToken, consulte Solicitud de credenciales para usuarios de entornos que no son de confianza.
¿Qué hace esta política?
-
La instrucción
AllowAllActionsForEC2
permite todas las acciones de Amazon EC2. -
La declaración
DenyStopAndTerminateWhenMFAIsNotPresent
rechaza las accionesTerminateInstances
yStopInstances
cuando falta el contexto de MFA. Esto significa que las acciones se deniegan cuando falta el contexto de la autenticación multifactor (lo que indica que no se ha utilizado MFA). Una denegación anula el permiso.
nota
La verificación de la condición de MultiFactorAuthPresent
en la instrucción Deny
no debe ser {"Bool":{"aws:MultiFactorAuthPresent":false}}
ya que dicha clave no está presente y no puede evaluarse cuando no se utiliza MFA. Por lo tanto, utilice la verificación BoolIfExists
para ver si la clave está presente antes de comprobar el valor. Para obtener más información, consulte Operadores de condición …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} } } ] }