AWS: permite a los usuarios de IAM autenticados por MFA administrar su propio dispositivo MFA en la página My Security Credentials (Mis credenciales de seguridad) - AWS Identity and Access Management

AWS: permite a los usuarios de IAM autenticados por MFA administrar su propio dispositivo MFA en la página My Security Credentials (Mis credenciales de seguridad)

En este ejemplo se muestra cómo crear una política que permite a los usuarios de IAM que se autentican mediante la autenticación multifactor (MFA) administrar su propio dispositivo MFA en la página My Security Credentials (Mis credenciales de seguridad). En esta página de la Consola de administración de AWS se muestra información de la cuenta y del usuario, pero el usuario solo puede ver y editar su propio dispositivo MFA. Para permitir a los usuarios administrar todas sus credenciales con MFA, consulte AWS: permite a los usuarios de IAM autenticados por MFA administrar sus propias credenciales en la página My Security Credentials (Mis credenciales de seguridad)..

nota

Si un usuario de IAM con esta política no está autenticado por MFA, esta política deniega el acceso a todas las acciones de AWS excepto las necesarias para autenticarse mediante MFA. Para utilizar la AWS CLI y la API de AWS, los usuarios de IAM primero deben recuperar su token de MFA mediante la operación GetSessionToken de AWS STS y, a continuación, utilizar dicho token para autenticar la operación deseada. Otras políticas, como las políticas basadas en recursos u otras políticas basadas en identidad, pueden permitir acciones en otros servicios. Esta política denegará ese acceso si el usuario de IAM no está autenticado con MFA.

Para obtener información acerca de cómo pueden acceder los usuarios a la página My Security Credentials (Mis credenciales de seguridad), consulte Cómo cambian los usuarios de IAM su propia contraseña (consola).

¿Qué hace esta política?

  • La instrucción AllowViewAccountInfo permite al usuario ver los detalles de un dispositivo MFA virtual que está habilitado para el usuario. Este permiso debe estar en su propia instrucción, ya que no es posible especificar el ARN de un recurso. En su lugar, debe especificar "Resource" : "*".

  • La instrucción AllowManageOwnVirtualMFADevice permite al usuario crear, actualizar y eliminar su propio dispositivo MFA virtual. El ARN de recurso de esta instrucción permite el acceso únicamente a un dispositivo MFA que tenga el mismo nombre que el usuario que ha iniciado sesión en ese momento. Los usuarios no pueden crear ni eliminar ningún dispositivo MFA virtual distinto del suyo.

  • La instrucción AllowManageOwnUserMFA permite al usuario ver o administrar su propio dispositivo MFA o U2F virtual o físico. El ARN de recurso de esta instrucción permite el acceso únicamente al propio usuario de IAM. Los usuarios no pueden ver ni administrar el dispositivo MFA de otros usuarios.

  • La instrucción DenyAllExceptListedIfNoMFA deniega el acceso a todas las acciones de todos los servicios de AWS, salvo algunas acciones indicadas, pero solo si el usuario no ha iniciado sesión con MFA. La instrucción utiliza una combinación de "Deny" y "NotAction" para denegar explícitamente el acceso a las acciones que no se indican en la lista. Esta instrucción no deniega ni permite los elementos enumerados. Son otras instrucciones de la política las que permiten las acciones. Para obtener más información acerca de la lógica de esta instrucción, consulte NotAction con Deny. Si el usuario ha iniciado sesión con MFA, la prueba Condition no se cumple y esta instrucción no deniega ninguna acción. En este caso, otras políticas o instrucciones determinan los permisos del usuario.

    Esta instrucción garantiza que cuando el usuario no ha iniciado sesión con MFA únicamente pueda realizar las acciones que se muestran. Además, puede realizar las acciones mostradas solo si otra instrucción o política permite el acceso a estas acciones.

    La versión ...IfExists del operador Bool garantiza que si falta la clave aws:MultiFactorAuthPresent, la condición devuelve el valor verdadero. Esto significa que a un usuario que obtiene acceso a una operación de la API con credenciales a largo plazo, como una clave de acceso, se le deniega el acceso a las operaciones de la API que no son de IAM.

Esta política no permite a los usuarios ver la página Users (Usuarios) de la consola de IAM ni utilizar esa página para obtener acceso a su propia información de usuario. Para permitir esto, añada la acción iam:ListUsers a la instrucción AllowViewAccountInfo y a la instrucción DenyAllExceptListedIfNoMFA.

aviso

No permita añadir permiso para eliminar un dispositivo MFA sin autenticación MFA. Los usuarios con esta política es posible que intenten asignarse a sí mismos un dispositivo MFA y reciban un error que indica que no están autorizados para realizar iam:DeleteVirtualMFADevice. Si esto ocurre, no agregue ese permiso a la declaración DenyAllExceptListedIfNoMFA. A los usuarios que no se han autenticado con MFA nunca se les debe permitir eliminar su dispositivo MFA. Los usuarios pueden ver este error si han empezado anteriormente la asignación de un dispositivo MFA virtual a su usuario y cancelado el proceso. Para solucionar este problema, usted u otro administrador debe eliminar el dispositivo MFA existente del usuario con la AWS CLI o la API de AWS. Para obtener más información, consulte No tengo autorización para realizar la operación iam:DeleteVirtualMFADevice.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowViewAccountInfo", "Effect": "Allow", "Action": "iam:ListVirtualMFADevices", "Resource": "*" }, { "Sid": "AllowManageOwnVirtualMFADevice", "Effect": "Allow", "Action": [ "iam:CreateVirtualMFADevice", "iam:DeleteVirtualMFADevice" ], "Resource": "arn:aws:iam::*:mfa/${aws:username}" }, { "Sid": "AllowManageOwnUserMFA", "Effect": "Allow", "Action": [ "iam:DeactivateMFADevice", "iam:EnableMFADevice", "iam:GetUser", "iam:ListMFADevices", "iam:ResyncMFADevice" ], "Resource": "arn:aws:iam::*:user/${aws:username}" }, { "Sid": "DenyAllExceptListedIfNoMFA", "Effect": "Deny", "NotAction": [ "iam:CreateVirtualMFADevice", "iam:EnableMFADevice", "iam:GetUser", "iam:ListMFADevices", "iam:ListVirtualMFADevices", "iam:ResyncMFADevice", "sts:GetSessionToken" ], "Resource": "*", "Condition": { "BoolIfExists": {"aws:MultiFactorAuthPresent": "false"} } } ] }