

# Autenticación multifactor de AWS en IAM
<a name="id_credentials_mfa"></a>

Para más seguridad, le recomendamos que configure la autenticación multifactor (MFA) para ayudar a proteger sus recursos de AWS. Puede habilitar la MFA para Usuario raíz de la cuenta de AWS de todas las Cuentas de AWS, incluidas las cuentas independientes, las cuentas de administración y las cuentas miembro, así como para sus usuarios de IAM. Recomendamos, en lo posible, utilizar la MFA resistente al phishing, como las claves de paso y de seguridad. Estos autenticadores basados en FIDO utilizan criptografía de clave pública y son resistentes al phishing, a los ataques de intermediarios y a los de repetición, por lo que ofrecen un mayor nivel de seguridad que las opciones basadas en TOTP.

La MFA se aplica a todos los tipos de cuentas para su usuario raíz. Para obtener más información, consulte [Protección de sus credenciales de usuario raíz de la cuenta de AWS Organizations](root-user-best-practices.md#ru-bp-organizations). 

Cuando habilita MFA para el usuario raíz, esto solo afecta a las credenciales del usuario raíz. Los usuarios de IAM de la cuenta son identidades diferenciadas que tienen sus propias credenciales, y cada identidad tiene su propia configuración de MFA. Para obtener más información sobre cómo usar la MFA para proteger al usuario raíz, consulte [Autenticación multifactor para Usuario raíz de la cuenta de AWS](enable-mfa-for-root.md).

Los usuarios de IAM y Usuario raíz de la cuenta de AWS pueden registrar hasta ocho dispositivos de MFA de cualquier tipo. El registro de varios dispositivos de MFA puede proporcionar flexibilidad y ayudarlo a reducir el riesgo de interrupción del acceso en caso de pérdida o rotura de un dispositivo. Solo necesita un dispositivo de MFA para iniciar sesión en la Consola de administración de AWS o crear una sesión a través de la AWS CLI.

**nota**  
Se recomienda exigir a los usuarios humanos que utilicen credenciales temporales cuando accedan a AWS. ¿Ha considerado la posibilidad de usar AWS IAM Identity Center? Puede usar IAM Identity Center para administrar de forma centralizada el acceso a múltiples Cuentas de AWS y proporcionar a los usuarios un acceso protegido por MFA y de inicio de sesión único a todas sus cuentas asignadas desde un solo lugar. Con IAM Identity Center, puede crear y administrar identidades de usuario en IAM Identity Center o conectarse fácilmente a su proveedor de identidades existente compatible con SAML 2.0. Para obtener más información, consulte [¿Qué es el Centro de identidades de IAM?](https://docs.aws.amazon.com/singlesignon/latest/userguide/what-is.html) en la *Guía del usuario de AWS IAM Identity Center*.

La MFA aporta seguridad adicional que exige a los usuarios que proporcionen una autenticación exclusiva obtenida de un mecanismo de MFA admitido de AWS, además de las credenciales de inicio de sesión cuando se accede a sitios web o servicios de AWS.

## Tipos de MFA
<a name="id_credentials_mfa-types"></a>

AWS admite los siguientes tipos de MFA:

**Contents**
+ [Claves de acceso y claves de seguridad](#passkeys-security-keys-for-iam-users)
+ [Aplicaciones de autenticador virtual](#virtual-auth-apps-for-iam-users)
+ [Tokens TOTP físicos](#hardware-totp-token-for-iam-users)

### Claves de acceso y claves de seguridad
<a name="passkeys-security-keys-for-iam-users"></a>

AWS Identity and Access Management admite claves de acceso y claves de seguridad para MFA. Según los estándares FIDO, las claves de acceso utilizan la criptografía de clave pública para proporcionar una autenticación sólida y resistente a la suplantación de identidad que es más segura que las contraseñas. AWS admite dos tipos de claves de acceso: claves de acceso vinculadas al dispositivo (claves de seguridad) y claves de acceso sincronizadas.
+ **Claves de seguridad**: son dispositivos físicos, como una YubiKey, que se utilizan como segundo factor de autenticación. Una sola clave de seguridad puede admitir varias cuentas de usuario raíz y usuarios de IAM.
+ **Claves de acceso sincronizadas**: utilizan administradores de credenciales de proveedores como Google, Apple, cuentas de Microsoft y servicios de terceros como 1Password, Dashlane y Bitwarden como segundo factor.

Puede utilizar autenticadores biométricos integrados, como Touch ID en los MacBooks de Apple, para desbloquear el administrador de credenciales e iniciar sesión en AWS. Las claves de acceso se crean con el proveedor que elija mediante su huella digital, su rostro o el PIN del dispositivo. También puede utilizar una clave de acceso de autenticación entre dispositivos (CDA) de un dispositivo, como un dispositivo móvil o una clave de seguridad de hardware, para iniciar sesión en otro dispositivo, como una computadora portátil. Para obtener más información, consulte [cross-device authentication](https://passkeys.dev/docs/reference/terms/#cross-device-authentication-cda) (CDA).

Puede sincronizar las claves de acceso entre sus dispositivos para facilitar el inicio de sesión con AWS y mejorar la usabilidad y la capacidad de recuperación. Para obtener más información acerca de la habilitación de las claves de acceso y las claves de seguridad, consulte [Habilitación de una clave de acceso o clave de seguridad para el usuario raíz (consola)](enable-fido-mfa-for-root.md).

FIDO Alliance mantiene una lista de todos los [productos certificados por FIDO](https://fidoalliance.org/certification/fido-certified-products/) que son compatibles con las especificaciones de FIDO.

### Aplicaciones de autenticador virtual
<a name="virtual-auth-apps-for-iam-users"></a>

Una aplicación de autenticador virtual se ejecuta en un teléfono u otro dispositivo y emula un dispositivo físico. Las aplicaciones de autenticación virtual aplican el algoritmo de [contraseña temporal de un solo uso](https://datatracker.ietf.org/doc/html/rfc6238) (TOTP) y admiten varios tokens en un mismo dispositivo. El usuario debe escribir un código válido del dispositivo cuando se le solicite durante el proceso de inicio de sesión. Cada token asignado a un usuario debe ser único. Un usuario no puede escribir un código desde el token de otro usuario para la autenticación.

Recomendamos utilizar MFA resistentes al phishing, [como las claves de paso o de seguridad](#passkeys-security-keys-for-iam-users), para obtener la máxima protección. Si aún no puede utilizar las claves de paso o de seguridad, recomendamos que utilice un dispositivo MFA virtual mientras espera la aprobación de la compra de hardware o su llegada. Para ver una lista de algunas aplicaciones compatibles que puede utilizar como dispositivos de MFA virtuales, consulte [Autenticación multifactor (MFA)](https://aws.amazon.com/iam/features/mfa/?audit=2019q1).

Para obtener instrucciones acerca de cómo configurar un dispositivo de MFA virtual para un usuario de IAM, consulte [Asignación de un dispositivo de MFA virtual en la Consola de administración de AWS](id_credentials_mfa_enable_virtual.md).

**nota**  
Los dispositivos MFA virtuales no asignados en su Cuenta de AWS se eliminan al agregar nuevos dispositivos MFA virtuales a través de la Consola de administración de AWS o mediante el proceso de inicio de sesión. Los dispositivos MFA virtuales no asignados son dispositivos de su cuenta, pero que el usuario raíz de la cuenta o los usuarios de IAM no utilizan para el proceso de inicio de sesión. Se eliminan para poder agregar nuevos dispositivos MFA virtuales a su cuenta. También le permite reutilizar los nombres de los dispositivos.  
Para ver los dispositivos MFA virtuales no asignados en su cuenta, puede usar el comando [list-virtual-mfa-devices](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iam/list-virtual-mfa-devices.html) AWS CLI o una llamada a la [API](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListVirtualMFADevices.html).
Para desactivar un dispositivo MFA virtual, puede utilizar el comando [deactivate-mfa-device](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iam/deactivate-mfa-device.html) AWS CLI o una llamada a la [API](https://docs.aws.amazon.com/IAM/latest/APIReference/API_DeactivateMFADevice.html). El dispositivo dejará de estar asignado.
Para conectar un dispositivo MFA virtual no asignado al usuario raíz o los usuarios de IAM de su Cuenta de AWS, necesitará el código de autenticación generado por el dispositivo junto con el comando [enable-mfa-device](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iam/enable-mfa-device.html) AWS CLI o la llamada a la [API](https://docs.aws.amazon.com/IAM/latest/APIReference/API_EnableMFADevice.html).

### Tokens TOTP físicos
<a name="hardware-totp-token-for-iam-users"></a>

Un dispositivo de hardware genera un código numérico de seis dígitos basado en el [algoritmo de contraseña temporal de un solo uso (TOTP)](https://datatracker.ietf.org/doc/html/rfc6238). El usuario debe escribir un código válido del dispositivo en otra página web durante el inicio de sesión.

Estos tokens se utilizan exclusivamente con Cuentas de AWS. Solo se pueden utilizar tokens que posean sus propias semillas de token que estén compartidas de manera secura con AWS. Las semillas de token son claves secretas que se generan en el momento de la producción de los tokens. Los tokens comprados en otras fuentes no funcionarán con IAM. Para garantizar la compatibilidad, debe comprar su dispositivo MFA de hardware en uno de los siguientes enlaces: [token OTP](https://www.amazon.com/SafeNet-IDProve-Time-based-6-Digit-Services/dp/B002CRN5X8) o [tarjeta de pantalla OTP](https://www.amazon.com/SafeNet-IDProve-Card-Amazon-Services/dp/B00J4NGUO4).
+ Cada dispositivo MFA asignado a un usuario debe ser único. Un usuario no puede escribir un código desde el dispositivo de otro usuario para la autenticación. Para obtener más información sobre los dispositivos MFA físicos admitidos, consulte [Autenticación multifactor (MFA)](https://aws.amazon.com/iam/features/mfa/?audit=2019q1).
+ Si desea utilizar un dispositivo de MFA físico, le recomendamos que utilice las claves de seguridad como una alternativa a los dispositivos TOTP físicos. Las claves de seguridad no requieren batería, son eficaces ante intentos de suplantación de identidad y admiten varios usuarios en un solo dispositivo.

Solo puede habilitar una clave de acceso o clave de seguridad desde la Consola de administración de AWS, no desde la AWS CLI ni desde la API de AWS. Para poder habilitar una clave de seguridad, debe tener acceso físico al dispositivo.

Para obtener instrucciones sobre cómo configurar un token TOTP físico para un usuario de IAM, consulte [Asignación de un token de TOTP de hardware en la Consola de administración de AWS](id_credentials_mfa_enable_physical.md).

**nota**  
**MFA basada en mensaje de texto SMS**: AWS finalizó la compatibilidad con la habilitación de la autenticación multifactor (MFA) por SMS. Recomendamos a los clientes que tienen usuarios de IAM que utilizan la MFA basada en mensajes de texto SMS que cambien a uno de los siguientes métodos alternativos: [clave de acceso o clave de seguridad](id_credentials_mfa_enable_fido.md), [dispositivo MFA virtual (basado en software)](id_credentials_mfa_enable_virtual.md) o [dispositivo MFA físico](id_credentials_mfa_enable_physical.md). Puede identificar a los usuarios de su cuenta con un dispositivo MFA de SMS asignado. En la consola de IAM, seleccione **Usuarios** en el panel de navegación y busque usuarios con **SMS** en la columna **MFA** de la tabla.

## Recomendaciones de MFA
<a name="id_credentials_mfa-recommendations"></a>

Para ayudar a proteger sus identidades de AWS, siga estas recomendaciones para la autenticación MFA. 
+ Recomendamos utilizar MFA resistentes al phishing, como las [claves de paso y de seguridad](#passkeys-security-keys-for-iam-users), como dispositivo de MFA. Los autenticadores basados en FIDO brindan la mejor protección contra ataques como el phishing.
+ Le recomendamos que habilite varios dispositivos MFA para el Usuario raíz de la cuenta de AWS y los usuarios de IAM en las Cuentas de AWS. Esto le permite subir el nivel de seguridad de sus Cuentas de AWS y simplificar la administración de acceso a usuarios con privilegios elevados, como el Usuario raíz de la cuenta de AWS.
+ Puede registrar hasta **ocho** dispositivos MFA de cualquier combinación de los [tipos de MFA admitidos actualmente](https://aws.amazon.com/iam/features/mfa/) con el Usuario raíz de la cuenta de AWS y los usuarios de IAM. Con varios dispositivos MFA, solo necesita un dispositivo MFA para iniciar sesión en la Consola de administración de AWS o crear una sesión a través de AWS CLI como ese usuario. Un usuario de IAM debe autenticarse con un dispositivo de MFA existente para habilitar o deshabilitar un dispositivo de MFA adicional.
+ En caso de pérdida, robo o inaccesibilidad de un dispositivo MFA, puede utilizar uno de los dispositivos MFA restantes para acceder a la Cuenta de AWS sin seguir el procedimiento de recuperación de Cuenta de AWS. En caso de pérdida o robo de un dispositivo MFA, este debe disociarse del principal de IAM al que está asociado.
+ El uso de varios MFA permite que sus empleados que se encuentren en ubicaciones geográficamente dispersas o que trabajen de forma remota utilicen MFA basado en hardware para acceder a AWS sin necesidad de coordinar un intercambio físico de un único dispositivo de hardware entre empleados.
+ El uso de dispositivos MFA adicionales para los directores de IAM permite utilizar uno o más MFA para el uso diario y, al mismo tiempo, mantener los dispositivos MFA físicos en una ubicación física segura, como una bóveda o una caja fuerte para realizar copias de seguridad y redundancia.

**Notas**  
No se puede pasar la información del MFA de una clave de seguridad o de paso a las operaciones de la API de AWS STS para solicitar credenciales temporales. Obtenga credenciales para utilizarlas con la AWS CLI y los SDK de AWS cuando use una clave de seguridad o de paso ejecutando el comando `aws login`.
No puede utilizar los comandos de la AWS CLI ni operaciones de la API de AWS para activar [FIDO security keys](id_credentials_mfa_enable_fido.md) (Claves de seguridad FIDO).
No puede utilizar el mismo nombre para más de un usuario raíz o dispositivo MFA de IAM.

## Recursos adicionales
<a name="id_credentials_mfa-resources"></a>

Los siguientes recursos pueden ayudarle a obtener más información sobra MFA.
+ Para obtener más información sobre el uso de MFA para acceder a AWS, consulte [Inicio de sesión con MFA habilitado](console_sign-in-mfa.md).
+  Puede aprovechar IAM Identity Center para activar el acceso seguro de MFA al portal de acceso de AWS, a las aplicaciones integradas de IAM Identity Center y a la AWS CLI. Para obtener más información, consulte [Habilitar la MFA en IAM Identity Center](https://docs.aws.amazon.com/singlesignon/latest/userguide/mfa-getting-started.html).

# Asignación de una clave de acceso o de seguridad en la Consola de administración de AWS
<a name="id_credentials_mfa_enable_fido"></a>

Las claves de acceso son un tipo de [dispositivo de autenticación multifactor (MFA)](id_credentials_mfa.md) que puede utilizar para proteger sus recursos de AWS. AWS admite claves de acceso sincronizadas y claves de acceso vinculadas al dispositivo, también conocidas como claves de seguridad. 

Las claves de acceso sincronizadas le permiten a los usuarios de IAM acceder a sus credenciales de inicio de sesión de FIDO en muchos de sus dispositivos, incluso en los nuevos, sin tener que volver a inscribir todos los dispositivos en cada cuenta. Las claves de acceso sincronizadas incluyen administradores de credenciales propios, como Google, Apple y Microsoft, y administradores de credenciales de terceros, como 1Password, Dashlane y Bitwarden, como segundo factor. También puede utilizar la tecnología biométrica en el dispositivo (por ejemplo, TouchID, FaceID) para desbloquear el administrador de credenciales elegido para utilizar contraseñas. 

Como alternativa, las claves de acceso vinculadas al dispositivo están vinculadas a una clave de seguridad FIDO que se conecta a un puerto USB de su computadora y, a continuación, se pulsa cuando se le solicite para completar el proceso de inicio de sesión de forma segura. Si ya utiliza una clave de seguridad FIDO con otros servicios y tiene una [configuración compatible con AWS](id_credentials_mfa_fido_supported_configurations.md) (por ejemplo, YubiKey 5 Series de Yubico), también puede utilizarla con AWS. De lo contrario, deberá adquirir una clave de seguridad FIDO si desea utilizar WebAuthn para MFA en AWS. Además, las llaves de seguridad FIDO con compatibles con varios usuarios raíz o de IAM en el mismo dispositivo, lo que mejora su utilidad para la seguridad de las cuentas. Para obtener información sobre las especificaciones y opciones de compra de ambos tipos de dispositivo, consulte [Autenticación multifactor](https://aws.amazon.com/iam/details/mfa/).

Puede registrar hasta **ocho** dispositivos MFA de cualquier combinación de los [tipos de MFA admitidos actualmente](https://aws.amazon.com/iam/features/mfa/) con el Usuario raíz de la cuenta de AWS y los usuarios de IAM. Con varios dispositivos MFA, solo necesita un dispositivo MFA para iniciar sesión en la Consola de administración de AWS o crear una sesión a través de AWS CLI como ese usuario. Le recomendamos que registre varios dispositivos MFA. Por ejemplo, puede registrar un autenticador integrado y también una clave de seguridad que guarde en un lugar físico seguro. Si no puede utilizar el autenticador integrado, puede utilizar su clave de seguridad registrada. Para las aplicaciones de autenticación, también recomendamos activar la copia de seguridad en la nube o la característica de sincronización en esas aplicaciones para evitar perder el acceso a la cuenta si pierde o se rompe el dispositivo que contiene las aplicaciones de autenticación.

**nota**  
Se recomienda exigir a los usuarios humanos que utilicen credenciales temporales cuando accedan a AWS. Sus usuarios pueden federarse en AWS con un proveedor de identidades donde se autentican con sus credenciales corporativas y configuraciones MFA. Para administrar el acceso a AWS y a las aplicaciones empresariales, le recomendamos que utilice IAM Identity Center. Para obtener más información, consulte la [Guía del usuario del IAM Identity Center](https://docs.aws.amazon.com/singlesignon/latest/userguide/what-is.html). 

**Topics**
+ [Permisos necesarios](#enable-fido-mfa-for-iam-user-permissions-required)
+ [Habilitación de una clave de acceso o clave de seguridad para su propio usuario de IAM (consola)](#enable-fido-mfa-for-own-iam-user)
+ [Habilitación de una clave de acceso o clave de seguridad para otro usuario de IAM (consola)](#enable-fido-mfa-for-iam-user)
+ [Sustitución de una clave de acceso o clave de seguridad](#replace-fido-mfa)
+ [Configuraciones admitidas para usar las claves de acceso y las claves de seguridad](id_credentials_mfa_fido_supported_configurations.md)

## Permisos necesarios
<a name="enable-fido-mfa-for-iam-user-permissions-required"></a>

Para administrar una clave de acceso FIDO para su propio usuario de IAM mientras protege las acciones confidenciales relacionadas con MFA, debe tener los permisos de la siguiente política:

**nota**  
Los valores de ARN son valores estáticos y no son un indicador de qué protocolo se utilizó para registrar el autenticador. El protocolo U2F está obsoleto, por lo que todas las nuevas implementaciones utilizan WebAuthn.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "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:EnableMFADevice",
                "iam:GetUser",
                "iam:ListMFADevices",
                "iam:ResyncMFADevice"
            ],
            "Resource": "*",
            "Condition": {
                "BoolIfExists": {
                    "aws:MultiFactorAuthPresent": "false"
                }
            }
        }
    ]
}
```

------

## Habilitación de una clave de acceso o clave de seguridad para su propio usuario de IAM (consola)
<a name="enable-fido-mfa-for-own-iam-user"></a>

Solo puede habilitar una clave de acceso o clave de seguridad para su propio usuario de IAM desde la Consola de administración de AWS, no desde la AWS CLI ni desde la API de AWS. Para poder habilitar una clave de seguridad, debe tener acceso físico al dispositivo.

**Cómo habilitar una clave de acceso o clave de seguridad para su propio usuario de IAM (consola)**

1. Utilice el ID de su cuenta de AWS o el alias de su cuenta, el nombre de usuario de IAM y la contraseña para iniciar sesión en la [consola de IAM](https://console.aws.amazon.com/iam).
**nota**  
Para su comodidad, la página de inicio de sesión AWS utiliza una cookie del navegador para recordar su nombre de usuario de IAM y la información de su cuenta. Si ha iniciado sesión anteriormente como un usuario diferente, elija **Iniciar sesión en otra cuenta** cerca del final de la página para volver a la página principal de inicio de sesión. Desde allí, puede escribir su ID de cuenta AWS o su alias de cuenta, de modo que se lo redirija a la página de inicio de sesión del usuario de IAM y tenga acceso a su cuenta.

   Para obtener el ID de la Cuenta de AWS, contacte con su administrador.

1. En la esquina superior derecha de la barra de navegación, elija su nombre de usuario y, a continuación, **Security credentials** (Credenciales de seguridad).   
![\[Enlace de credenciales de seguridad de la Consola de administración de AWS\]](http://docs.aws.amazon.com/es_es/IAM/latest/UserGuide/images/security-credentials-user.shared.console.png)

1. En la página del usuario de IAM seleccionado, elija la pestaña **Credenciales de seguridad**.

1. En **autenticación multifactor (MFA)**, seleccione **Asignar dispositivo MFA**.

1. En la página de **Nombres del dispositivo de MFA**, introduzca un **Nombre de dispositivo**, elija **Clave de acceso o Clave de seguridad** y, a continuación, elija **Siguiente**.

1. En **Configurar dispositivo**, configure su clave de acceso. Cree una clave de acceso con datos biométricos, como su rostro o huella digital, con el PIN del dispositivo o al insertar la clave de seguridad FIDO en el puerto USB de la computadora y al pulsarla.

1. Siga las instrucciones de su navegador y, a continuación, seleccione **Continuar**.

Ya ha registrado su clave de acceso o clave de seguridad para utilizarla con AWS. Para obtener más información sobre el uso de MFA con la Consola de administración de AWS, consulte [Inicio de sesión con MFA habilitado](console_sign-in-mfa.md). 

## Habilitación de una clave de acceso o clave de seguridad para otro usuario de IAM (consola)
<a name="enable-fido-mfa-for-iam-user"></a>

Solo puede habilitar una clave de acceso o clave de seguridad para otro usuario de IAM desde la Consola de administración de AWS, no desde la AWS CLI ni desde la API de AWS.

**Cómo habilitar una clave de acceso o clave de seguridad para otro usuario de IAM (consola)**

1. Inicie sesión en la Consola de administración de AWS y abra la consola de IAM en [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

1. En el panel de navegación, seleccione **Users (Usuarios)**.

1. En **Usuarios**, elija el nombre del usuario para el que desea activar la MFA.

1. En la página del usuario de IAM seleccionado, elija la pestaña **Credenciales de seguridad**. 

1. En **autenticación multifactor (MFA)**, seleccione **Asignar dispositivo MFA**.

1. En la página de **Nombres del dispositivo de MFA**, introduzca un **Nombre de dispositivo**, elija **Clave de acceso o Clave de seguridad** y, a continuación, elija **Siguiente**.

1. En **Configurar dispositivo**, configure su clave de acceso. Cree una clave de acceso con datos biométricos, como su rostro o huella digital, con el PIN del dispositivo o al insertar la clave de seguridad FIDO en el puerto USB de la computadora y al pulsarla.

1. Siga las instrucciones de su navegador y, a continuación, seleccione **Continuar**.

Ya ha registrado una clave de acceso o clave de seguridad para que la utilice otro usuario de IAM con AWS. Para obtener más información sobre el uso de MFA con la Consola de administración de AWS, consulte [Inicio de sesión con MFA habilitado](console_sign-in-mfa.md).

## Sustitución de una clave de acceso o clave de seguridad
<a name="replace-fido-mfa"></a>

Puede tener hasta ocho dispositivos de MFA de cualquier combinación de los [tipos de MFA admitidos actualmente](https://aws.amazon.com/iam/features/mfa/) asignados a un usuario a la vez con el Usuario raíz de la cuenta de AWS y los usuarios de IAM. Si el usuario pierde un autenticador FIDO o necesita sustituirlo por cualquier motivo, antes debe desactivar el autenticador FIDO antiguo. Después, puede añadir un nuevo dispositivo MFA para el usuario.
+ Para desactivar el dispositivo que tenga asociado actualmente a otro usuario de IAM, consulte [Desactivación de un dispositivo MFA](id_credentials_mfa_disable.md).
+ Para agregar una nueva clave de seguridad FIDO para un usuario de IAM, consulte [Habilitación de una clave de acceso o clave de seguridad para su propio usuario de IAM (consola)](#enable-fido-mfa-for-own-iam-user).

Si no tiene acceso a una nueva clave de acceso o clave de seguridad, puede habilitar un nuevo dispositivo MFA virtual o token TOTP físico. Consulte una de las siguientes opciones para obtener instrucciones:
+ [Asignación de un dispositivo de MFA virtual en la Consola de administración de AWS](id_credentials_mfa_enable_virtual.md) 
+ [Asignación de un token de TOTP de hardware en la Consola de administración de AWS](id_credentials_mfa_enable_physical.md) 

# Configuraciones admitidas para usar las claves de acceso y las claves de seguridad
<a name="id_credentials_mfa_fido_supported_configurations"></a>

Puede utilizar las claves de acceso de FIDO2 vinculadas al dispositivo, también conocidas como claves de seguridad, como un método de autenticación multifactor (MFA) con IAM mediante el uso de las configuraciones admitidas actualmente. Entre ellos, se encuentran los dispositivos FIDO2 admitidos por IAM y los navegadores que con compatibles con FIDO2. Antes de registrar su dispositivo FIDO2, compruebe que esté utilizando la última versión del navegador y del sistema operativo (SO). Las funciones pueden comportarse de forma diferente en los distintos navegadores, autenticadores y clientes del sistema operativo. Si el registro del dispositivo falla en un navegador, puede intentar registrarse en otro navegador. 

FIDO2 es un estándar de autenticación abierto y una extensión de FIDO U2F, que ofrece el mismo alto nivel de seguridad basado en la criptografía de clave pública. FIDO2 se compone de la especificación de autenticación web del W3C (WebAuthn API) y del Protocolo de cliente a autenticador (CTAP) de FIDO Alliance, un protocolo de capa de aplicación. El CTAP permite la comunicación entre el cliente o la plataforma, como un navegador o un sistema operativo, con un autenticador externo. Cuando se habilita un autenticador certificado FIDO en AWS, la clave de seguridad crea un nuevo par de claves para utilizarlo solo con AWS. En primer lugar, introduzca sus credenciales. Cuando se le solicite, pulse en la clave de seguridad, que responde a la solicitud de verificación de autenticación emitida por AWS. Para obtener más información sobre el estándar FIDO2, consulte [FIDO2 Project](https://en.wikipedia.org/wiki/FIDO2_Project) (Proyecto FIDO2).

## Dispositivos FIDO2 compatibles con AWS
<a name="id_credentials_mfa_fido_supported_devices"></a>

IAM es compatible con dispositivos de seguridad FIDO2 que se conectan a sus dispositivos a través de USB, Bluetooth o NFC. IAM también admite autenticadores de plataforma como TouchID o FaceID. IAM no admite el registro de contraseña local para Windows Hello. Para crear y utilizar contraseñas, los usuarios de Windows deben utilizar la [autenticación entre dispositivos](https://passkeys.dev/docs/reference/terms/#cross-device-authentication-cda), en la que se utiliza una contraseña de un dispositivo, como un dispositivo móvil o una clave de seguridad de hardware, para iniciar sesión en otro dispositivo, como un portátil.

**nota**  
AWS requiere acceso al puerto USB físico en el equipo para verificar su dispositivo FIDO2. Las claves de seguridad no funcionan con máquinas virtuales, conexiones remotas o en el modo incógnito de un navegador.

FIDO Alliance mantiene una lista de todos los [productos FIDO2](https://fidoalliance.org/certification/fido-certified-products/) que son compatibles con las especificaciones de FIDO.

## Navegadores compatibles con FIDO2
<a name="id_credentials_mfa_fido_browsers"></a>

La disponibilidad de los dispositivos de seguridad FIDO2 que se ejecutan en un navegador web depende de la combinación del navegador y el sistema operativo. En la actualidad, los siguientes navegadores admiten el uso de claves de seguridad:


****  

| Navegador web | macOS 10.15\$1 | Windows 10 | Linux | iOS 14.5\$1 | Android 7\$1 | 
| --- | --- | --- | --- | --- | --- | 
| Chrome | Sí | Sí | Sí | Sí | No | 
| Safari | Sí | No | No | Sí | No | 
| Edge | Sí | Sí | No | Sí | No | 
| Firefox | Sí | Sí | No | Sí | No | 

**nota**  
La mayoría de las versiones de Firefox que actualmente admiten FIDO2 no lo hacen de forma predeterminada. Para obtener instrucciones sobre la habilitación de FIDO2 en Firefox, consulte [Solucionar problemas con claves de acceso y claves de seguridad FIDO](troubleshoot_mfa-fido.md).  
Es posible que Firefox en macOS no sea totalmente compatible con los flujos de trabajo de autenticación entre dispositivos para las claves de acceso. Es posible que se le pida que toque una clave de seguridad en lugar de continuar con la autenticación entre dispositivos. Le recomendamos usar otro navegador, como Chrome o Safari, para iniciar sesión con claves de acceso en macOS.

Para más información sobre la compatibilidad del navegador con un dispositivo certificado para FIDO2, como YubiKey, consulte [Compatibilidad de los sistemas operativos y los navegadores web con FIDO2 y U2F](https://support.yubico.com/hc/en-us/articles/360016615020-Operating-system-and-web-browser-support-for-FIDO2-and-U2F).

### Complementos de navegador
<a name="id_credentials_mfa_fido_plugins"></a>

AWS es compatible solo con los navegadores que admiten FIDO2 de forma nativa. AWS no es compatible con el uso de complementos para agregar compatibilidad con los navegadores de FIDO2. Algunos complementos de navegador son incompatibles con el estándar FIDO2 y pueden causar resultados inesperados con las claves de seguridad FIDO2. 

Para obtener información sobre la desactivación de complementos del navegador y otras sugerencias para la solución de problemas, consulte [No puedo habilitar mi clave de seguridad FIDO](troubleshoot_mfa-fido.md#troubleshoot_mfa-fido-cant-enable). 

## Certificaciones de dispositivos
<a name="id_credentials_mfa_fido_certifications"></a>

Recopilamos y asignamos certificaciones relacionadas con el dispositivo, como la validación FIPS y el nivel de certificación FIDO, solo durante el registro de una clave de seguridad. La certificación de su dispositivo se obtiene del [Servicio de metadatos (MDS) de FIDO Alliance](https://fidoalliance.org/metadata/). Si el estado de certificación o el nivel de su clave de seguridad cambian, eso no se reflejará de manera automática en las etiquetas del dispositivo. Para actualizar la información de certificación de un dispositivo, vuelva a registrar el dispositivo para obtener la información de certificación actualizada. 

AWS proporciona los siguientes tipos de certificación como claves de condición durante el registro del dispositivo, obtenidos del FIDO MDS: niveles de certificación FIPS-140-2, FIPS-140-3 y FIDO. Puede especificar el registro de autenticadores específicos en sus políticas de IAM, según el tipo y el nivel de certificación que prefiera. Para obtener más información, consulte las políticas a continuación.

### Ejemplos de políticas para certificaciones de dispositivos
<a name="id_credentials_mfa_fido_certifications_policies"></a>

Los siguientes casos de uso muestran ejemplos de políticas que le permiten registrar dispositivos MFA con certificaciones FIPS.

**Topics**
+ [Caso de uso 1: permitir el registro únicamente de dispositivos que tengan certificaciones FIPS-140-2 L2](#id_credentials_mfa_fido_certifications_policies_use_case_1)
+ [Caso de uso 2: permitir el registro de dispositivos que tengan las certificaciones FIPS-140-2 L2 y FIDO L1](#id_credentials_mfa_fido_certifications_policies_use_case_2)
+ [Caso de uso 3: permitir el registro de dispositivos que tengan las certificaciones FIPS-140-2 L2 o FIPS-140-3 L2](#id_credentials_mfa_fido_certifications_policies_use_case_3)
+ [Caso de uso 4: permitir el registro de dispositivos que cuentan con la certificación FIPS-140-2 L2 y que admiten otros tipos de MFA, como los autenticadores virtuales y el TOTP físico](#id_credentials_mfa_fido_certifications_policies_use_case_4)

#### Caso de uso 1: permitir el registro únicamente de dispositivos que tengan certificaciones FIPS-140-2 L2
<a name="id_credentials_mfa_fido_certifications_policies_use_case_1"></a>

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [{
            "Effect": "Allow",
            "Action": "iam:EnableMFADevice",
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "iam:RegisterSecurityKey" : "Create"
                }
            }
        },
        {
            "Effect": "Allow",
            "Action": "iam:EnableMFADevice",
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "iam:RegisterSecurityKey" : "Activate",
                    "iam:FIDO-FIPS-140-2-certification": "L2"
                }
            }
        }
    ]
}
```

------

#### Caso de uso 2: permitir el registro de dispositivos que tengan las certificaciones FIPS-140-2 L2 y FIDO L1
<a name="id_credentials_mfa_fido_certifications_policies_use_case_2"></a>

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [{
            "Effect": "Allow",
            "Action": "iam:EnableMFADevice",
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "iam:RegisterSecurityKey" : "Create"
                }
            }
        },
        {
            "Effect": "Allow",
            "Action": "iam:EnableMFADevice",
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "iam:RegisterSecurityKey" : "Activate",
                    "iam:FIDO-FIPS-140-2-certification": "L2",
                    "iam:FIDO-certification": "L1"
                }
            }
        }
    ]
}
```

------

#### Caso de uso 3: permitir el registro de dispositivos que tengan las certificaciones FIPS-140-2 L2 o FIPS-140-3 L2
<a name="id_credentials_mfa_fido_certifications_policies_use_case_3"></a>

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [{
            "Effect": "Allow",
            "Action": "iam:EnableMFADevice",
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "iam:RegisterSecurityKey" : "Create"
                }
            }
        },
        {
            "Effect": "Allow",
            "Action": "iam:EnableMFADevice",
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "iam:RegisterSecurityKey" : "Activate",
                    "iam:FIDO-FIPS-140-2-certification": "L2"
                }
            }
        },
        {
            "Effect": "Allow",
            "Action": "iam:EnableMFADevice",
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "iam:RegisterSecurityKey" : "Activate",
                    "iam:FIDO-FIPS-140-3-certification": "L2"
                }
            }
        }
    ]
}
```

------

#### Caso de uso 4: permitir el registro de dispositivos que cuentan con la certificación FIPS-140-2 L2 y que admiten otros tipos de MFA, como los autenticadores virtuales y el TOTP físico
<a name="id_credentials_mfa_fido_certifications_policies_use_case_4"></a>

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "iam:EnableMFADevice",
      "Resource": "*",
      "Condition": {
        "StringEquals": {
          "iam:RegisterSecurityKey": "Create"
        }
      }
    },
    {
      "Effect": "Allow",
      "Action": "iam:EnableMFADevice",
      "Resource": "*",
      "Condition": {
        "StringEquals": {
          "iam:RegisterSecurityKey": "Activate",
          "iam:FIDO-FIPS-140-2-certification": "L2"
        }
      }
    },
    {
      "Effect": "Allow",
      "Action": "iam:EnableMFADevice",
      "Resource": "*",
      "Condition": {
        "Null": {
          "iam:RegisterSecurityKey": "true"
        }
      }
    }
  ]
}
```

------

## AWS CLI y API de AWS
<a name="id_credentials_mfa_fido_cliapi"></a>

AWS admite el uso de claves de acceso y claves de seguridad solo en la Consola de administración de AWS. El uso de claves de acceso y claves de seguridad para la MFA no es compatible con la [AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/) ni la [API de AWS](https://aws.amazon.com/tools/), y tampoco se pueden utilizar para acceder a las [operaciones de la API protegidas por la MFA](id_credentials_mfa_configure-api-require.md).

## Recursos adicionales
<a name="id_credentials_mfa_fido_additional_resources"></a>
+ Para obtener más información sobre el uso de claves de seguridad en AWS, consulte [Asignación de una clave de acceso o de seguridad en la Consola de administración de AWS](id_credentials_mfa_enable_fido.md).
+ Para obtener ayuda con la resolución de problemas de claves de acceso y claves de seguridad en AWS, consulte [Solucionar problemas con claves de acceso y claves de seguridad FIDO](troubleshoot_mfa-fido.md).
+ Para obtener información general del sector sobre la compatibilidad con FIDO2, consulte [Proyecto FIDO2](https://en.wikipedia.org/wiki/FIDO2_Project). 

# Asignación de un dispositivo de MFA virtual en la Consola de administración de AWS
<a name="id_credentials_mfa_enable_virtual"></a>

**importante**  
AWS recomienda, en lo posible, utilizar una clave de paso o de seguridad para la MFA en AWS. Para obtener más información, consulte [Asignación de una clave de acceso o de seguridad en la Consola de administración de AWS](id_credentials_mfa_enable_fido.md).

Puede utilizar un teléfono u otro dispositivo como dispositivo de autenticación multifactor (MFA) virtual. Para ello, instale una aplicación móvil que cumpla con [RFC 6238, un algoritmo TOTP (contraseña de un solo uso basada en el tiempo) basado en estándares](https://datatracker.ietf.org/doc/html/rfc6238). Estas aplicaciones generan un código de autenticación de seis dígitos. Dado que los autenticadores pueden usarse en dispositivos móviles que no son seguros y los códigos podrían compartirse con personas no autorizadas, la MFA basada en TOTP no brinda el mismo nivel de seguridad que las opciones resistentes al phishing, como las claves de acceso y de seguridad de [FIDO2](https://en.wikipedia.org/wiki/FIDO_Alliance#FIDO2). Recomendamos utilizar las claves de paso o de seguridad para la MFA a fin de obtener la máxima protección contra ataques como el phishing.

Si aún no puede utilizar las claves de paso o de seguridad, recomendamos que utilice un dispositivo MFA virtual mientras espera la aprobación de la compra de cualquier hardware o su llegada

La mayoría de aplicaciones de MFA virtual admiten la creación de varios dispositivos virtuales, lo que le permite utilizar la misma aplicación para varias Cuentas de AWS o usuarios. Puede registrar hasta **ocho** dispositivos de MFA de cualquier combinación de los [tipos de MFA](https://aws.amazon.com/iam/features/mfa/) con los usuarios de IAM y Usuario raíz de la cuenta de AWS. Solo necesita un dispositivo de MFA para iniciar sesión en la Consola de administración de AWS o crear una sesión a través de la AWS CLI. Le recomendamos que registre varios dispositivos MFA. En el caso de las aplicaciones de autenticación, también recomendamos habilitar la copia de seguridad en la nube o la característica de sincronización para evitar perder el acceso a la cuenta si pierde o se rompe su dispositivo.

AWS requiere una aplicación de MFA virtual que genere una contraseña de un solo uso (OTP) de seis dígitos. Para obtener una lista de las aplicaciones MFA virtuales que puede utilizar, consulte [Autenticación multifactor](https://aws.amazon.com/iam/features/mfa/?audit=2019q1). 

**Topics**
+ [Permisos necesarios](#mfa_enable_virtual_permissions-required)
+ [Habilite un dispositivo MFA virtual para un usuario de IAM (Consola)](#enable-virt-mfa-for-iam-user)
+ [Reemplazar un dispositivo MFA virtual](#replace-virt-mfa)

## Permisos necesarios
<a name="mfa_enable_virtual_permissions-required"></a>

Para administrar dispositivos MFA virtuales para su usuario de IAM, debe contar con los permisos de la siguiente política: [AWS: permite a los usuarios de IAM autenticados por MFA administrar su propio dispositivo MFA en la página Credenciales de seguridad](reference_policies_examples_aws_my-sec-creds-self-manage-mfa-only.md).

## Habilite un dispositivo MFA virtual para un usuario de IAM (Consola)
<a name="enable-virt-mfa-for-iam-user"></a>

Puede utilizar IAM en la Consola de administración de AWS para habilitar y administrar un dispositivo MFA virtual para un usuario de IAM en su cuenta. Puede asociar etiquetas a los recursos de IAM, incluidos los dispositivos MFA virtuales, a fin de identificar, organizar y controlar el acceso a ellos. Puede etiquetar dispositivos MFA virtuales solo cuando utiliza la AWS CLI o la API de AWS. Para habilitar y administrar un dispositivo MFA utilizando la AWS CLI o la API de AWS, consulte [Asignación de dispositivos de MFA en la AWS CLI o API de AWS](id_credentials_mfa_enable_cliapi.md). Para más información acerca del etiquetado de recursos de IAM, consulte [Etiquetas para recursos de AWS Identity and Access Management](id_tags.md). 

**nota**  
Debe tener acceso físico al hardware que alojará el dispositivo MFA virtual del usuario para poder configurar la MFA. Por ejemplo, puede configurar MFA para un usuario que utilice un dispositivo MFA virtual que se ejecute en un smartphone. En ese caso, debe tener el smartphone disponible para completar el asistente. Por este motivo, puede interesarle que los usuarios puedan configurar y administrar sus propios dispositivos MFA virtuales. En ese caso, debe conceder a los usuarios los permisos necesarios para realizar las acciones de IAM necesarias. Para obtener más información y consultar un ejemplo de una política de IAM que concede dichos permisos, consulte el [Tutorial de IAM: permitir a los usuarios administrar sus credenciales y configuración de MFA](tutorial_users-self-manage-mfa-and-creds.md) y [AWS: permite a los usuarios de IAM autenticados por MFA administrar su propio dispositivo MFA en la página Credenciales de seguridad](reference_policies_examples_aws_my-sec-creds-self-manage-mfa-only.md) en la política de ejemplo. 

**Para habilitar un dispositivo MFA virtual para un usuario de IAM (consola)**

1. Inicie sesión en la Consola de administración de AWS y abra la consola de IAM en [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

1. En el panel de navegación, seleccione **Usuarios**.

1. En la lista **Users** (Usuarios), elija el nombre de usuario de IAM.

1. Elija la pestaña **Credenciales de seguridad**. En **autenticación multifactor (MFA)**, seleccione **Asignar dispositivo MFA**.

1. En el asistente, escriba un **Nombre de dispositivo**, elija **Aplicación del autenticador** y luego, **Siguiente**.

   IAM generará y mostrará la información de configuración del dispositivo MFA virtual, incluido un gráfico de código QR. El gráfico es una representación de la "clave de configuración secreta" que se puede introducir manualmente en dispositivos que no admiten códigos QR.

1. Abra su aplicación de MFA virtual. Para ver una lista de las aplicaciones que puede utilizar para alojar dispositivos MFA virtuales, consulte [Multi-Factor Authentication](https://aws.amazon.com/iam/details/mfa/). 

   Si la aplicación de MFA virtual admite varios dispositivos o cuentas de MFA, elija la opción para crear un nuevo dispositivo o cuenta de MFA virtual.

1. Determine si la aplicación MFA admite códigos QR y, a continuación, lleve a cabo alguna de las siguientes operaciones:
   + Desde el asistente, elija **Show QR code (Mostrar código QR)** y, a continuación, utilice la aplicación para escanear el código QR. Puede ser un ícono de cámara o una opción de **Código de escaneo** que utiliza la cámara del dispositivo para escanear el código.
   + En el asistente, elija **Show secret key** (Mostrar clave secreta) y, a continuación, escriba la clave secreta en su aplicación MFA.

   Cuando haya terminado, el dispositivo MFA virtual comenzará a generar contraseñas de uso único. 

1. En la página **Configurar el dispositivo**, en el cuadro **Código MFA 1**, escriba la contraseña de uso único que aparece actualmente en el dispositivo MFA virtual. Espere hasta 30 segundos a que el dispositivo genere una nueva contraseña de uso único. A continuación, escriba la otra contraseña de uso único en el cuadro **MFA code 2 (Código MFA 2)**. Elija **Add MFA** (Agregar MFA). 
**importante**  
Envíe su solicitud inmediatamente después de generar los códigos. Si genera los códigos y después espera demasiado tiempo a enviar la solicitud, el dispositivo MFA se asociará correctamente al usuario, pero no estará sincronizado. Esto ocurre porque las contraseñas temporales de un solo uso (TOTP) caducan tras un corto periodo de tiempo. Si esto ocurre, puede [volver a sincronizar el dispositivo](id_credentials_mfa_sync.md).

Ahora el dispositivo MFA virtual ya está listo para utilizarlo con AWS. Para obtener más información sobre el uso de MFA con la Consola de administración de AWS, consulte [Inicio de sesión con MFA habilitado](console_sign-in-mfa.md).

**nota**  
Los dispositivos MFA virtuales no asignados en su Cuenta de AWS se eliminan al agregar nuevos dispositivos MFA virtuales a través de la Consola de administración de AWS o mediante el proceso de inicio de sesión. Los dispositivos MFA virtuales no asignados son dispositivos de su cuenta, pero que el usuario raíz de la cuenta o los usuarios de IAM no utilizan para el proceso de inicio de sesión. Se eliminan para poder agregar nuevos dispositivos MFA virtuales a su cuenta. También le permite reutilizar los nombres de los dispositivos.  
Para ver los dispositivos MFA virtuales no asignados en su cuenta, puede usar el comando [list-virtual-mfa-devices](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iam/list-virtual-mfa-devices.html) AWS CLI o una llamada a la [API](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListVirtualMFADevices.html).
Para desactivar un dispositivo MFA virtual, puede utilizar el comando [deactivate-mfa-device](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iam/deactivate-mfa-device.html) AWS CLI o una llamada a la [API](https://docs.aws.amazon.com/IAM/latest/APIReference/API_DeactivateMFADevice.html). El dispositivo dejará de estar asignado.
Para conectar un dispositivo MFA virtual no asignado al usuario raíz o los usuarios de IAM de su Cuenta de AWS, necesitará el código de autenticación generado por el dispositivo junto con el comando [enable-mfa-device](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iam/enable-mfa-device.html) AWS CLI o la llamada a la [API](https://docs.aws.amazon.com/IAM/latest/APIReference/API_EnableMFADevice.html).

## Reemplazar un dispositivo MFA virtual
<a name="replace-virt-mfa"></a>

Los usuarios de IAM y Usuario raíz de la cuenta de AWS pueden registrar hasta **ocho** dispositivos de MFA de cualquier combinación de los tipos de MFA. Si el usuario pierde un dispositivo o debe reemplazarlo por cualquier motivo, desactive el antiguo dispositivo. Después, puede añadir el nuevo dispositivo para el usuario.
+ Para desactivar el dispositivo que tenga asociado actualmente a otro usuario de IAM, consulte [Desactivación de un dispositivo MFA](id_credentials_mfa_disable.md).
+ Para agregar un dispositivo MFA virtual de sustitución para otro usuario de IAM, siga los pasos que se indican en el procedimiento [Habilite un dispositivo MFA virtual para un usuario de IAM (Consola)](#enable-virt-mfa-for-iam-user) anterior.
+ Para agregar un dispositivo MFA virtual de reemplazo para Usuario raíz de la cuenta de AWS, siga los pasos que se indican en el procedimiento [Habilitación de un dispositivo MFA virtual para el usuario raíz (consola)](enable-virt-mfa-for-root.md).

# Asignación de un token de TOTP de hardware en la Consola de administración de AWS
<a name="id_credentials_mfa_enable_physical"></a>

**importante**  
AWS recomienda, en lo posible, utilizar una clave de paso o de seguridad para la MFA en AWS. Para obtener más información, consulte [Asignación de una clave de acceso o de seguridad en la Consola de administración de AWS](id_credentials_mfa_enable_fido.md).

Un token TOTP de hardware genera un código numérico de seis dígitos basado en un algoritmo de contraseña temporal de un solo uso (TOTP). El usuario debe escribir un código válido del dispositivo cuando se le solicite durante el proceso de inicio de sesión. Todos los dispositivos MFA asignados a un usuario deben ser únicos; un usuario no puede escribir el código del dispositivo de otro usuario para autenticarlo. Los dispositivos MFA no se pueden compartir entre cuentas o usuarios.

Los tokens TOTP de hardware y las [claves de seguridad FIDO](id_credentials_mfa_enable_fido.md) son dispositivos físicos que se compran. Los dispositivos MFA de hardware generan códigos TOTP para la autenticación al iniciar sesión en AWS. Se basan en baterías, las cuales pueden necesitar ser reemplazadas y resincronizadas con AWS en el tiempo. Las claves de seguridad FIDO, que utilizan criptografía de clave pública, no requieren baterías y ofrecen un proceso de autenticación perfecto. Recomendamos utilizar las claves de seguridad FIDO para evitar la suplantación de identidad, ya que ofrecen una alternativa más segura a los dispositivos TOTP. Además, las llaves de seguridad FIDO con compatibles con varios usuarios raíz o de IAM en el mismo dispositivo, lo que mejora su utilidad para la seguridad de las cuentas. Para obtener información sobre las especificaciones y opciones de compra de ambos tipos de dispositivo, consulte [Autenticación multifactor](https://aws.amazon.com/iam/details/mfa/).



Se puede habilitar un token TOTP de hardware para un usuario de IAM desde la Consola de administración de AWS, la línea de comandos o la API de IAM. Para habilitar un dispositivo MFA para su Usuario raíz de la cuenta de AWS, consulte [Habilitación de un token TOTP de hardware para el usuario raíz de la (consola)](enable-hw-mfa-for-root.md).

Puede registrar hasta **ocho** dispositivos MFA de cualquier combinación de los [tipos de MFA admitidos actualmente](https://aws.amazon.com/iam/features/mfa/) con el Usuario raíz de la cuenta de AWS y los usuarios de IAM. Con varios dispositivos MFA, solo necesita un dispositivo MFA para iniciar sesión en la Consola de administración de AWS o crear una sesión a través de AWS CLI como ese usuario.

**importante**  
Se recomienda habilitar varios dispositivos MFA para que los usuarios puedan seguir accediendo a la cuenta en caso de pérdida o inaccesibilidad del dispositivo MFA.

**nota**  
Si desea habilitar el dispositivo MFA desde la línea de comandos, utilice [https://docs.aws.amazon.com/cli/latest/reference/iam/enable-mfa-device.html](https://docs.aws.amazon.com/cli/latest/reference/iam/enable-mfa-device.html). Para habilitar el dispositivo MFA con la API de IAM, utilice la operación [https://docs.aws.amazon.com/IAM/latest/APIReference/API_EnableMFADevice.html](https://docs.aws.amazon.com/IAM/latest/APIReference/API_EnableMFADevice.html). 

**Topics**
+ [Permisos necesarios](#enable-hw-mfa-for-iam-user-permissions-required)
+ [Habilitar un token TOTP de hardware para su propio usuario de IAM (consola)](#enable-hw-mfa-for-own-iam-user)
+ [Habilitar un token TOTP de hardware para otro usuario de IAM (consola)](#enable-hw-mfa-for-iam-user)
+ [Reemplazar un dispositivo MFA físico](#replace-phys-mfa)

## Permisos necesarios
<a name="enable-hw-mfa-for-iam-user-permissions-required"></a>

Para administrar un token TOTP de hardware para su propio usuario de IAM mientras protege acciones sensibles relacionadas con MFA, debe tener los permisos de la siguiente política:

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "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:EnableMFADevice",
                "iam:GetUser",
                "iam:ListMFADevices",
                "iam:ResyncMFADevice"
            ],
            "Resource": "arn:aws:iam::*:user/${aws:username}",
            "Condition": {
                "BoolIfExists": {
                    "aws:MultiFactorAuthPresent": "false"
                }
            }
        }
    ]
}
```

------

## Habilitar un token TOTP de hardware para su propio usuario de IAM (consola)
<a name="enable-hw-mfa-for-own-iam-user"></a>

 Puede habilitar su propio token TOTP de hardware desde la Consola de administración de AWS.

**nota**  
Para poder habilitar un dispositivo MFA físico, debe tener acceso físico al dispositivo.

**Para habilitar un token TOTP de hardware para su propio usuario de IAM (consola)**

1. Utilice el ID de su cuenta de AWS o el alias de su cuenta, el nombre de usuario de IAM y la contraseña para iniciar sesión en la [consola de IAM](https://console.aws.amazon.com/iam).
**nota**  
Para su comodidad, la página de inicio de sesión AWS utiliza una cookie del navegador para recordar su nombre de usuario de IAM y la información de su cuenta. Si ha iniciado sesión anteriormente como un usuario diferente, elija **Iniciar sesión en otra cuenta** cerca del final de la página para volver a la página principal de inicio de sesión. Desde allí, puede escribir su ID de cuenta AWS o su alias de cuenta, de modo que se lo redirija a la página de inicio de sesión del usuario de IAM y tenga acceso a su cuenta.

   Para obtener el ID de la Cuenta de AWS, contacte con su administrador.

1. En la esquina superior derecha de la barra de navegación, elija su nombre de usuario y, a continuación, **Security credentials** (Credenciales de seguridad).   
![\[Enlace de credenciales de seguridad de la Consola de administración de AWS\]](http://docs.aws.amazon.com/es_es/IAM/latest/UserGuide/images/security-credentials-user.shared.console.png)

1. En la pestaña **Credenciales de AWS IAM**, en la sección **Autenticación multifactor (MFA)**, elija **Asignar dispositivo MFA**.

1. En el asistente, escriba un **Device name** (Nombre del dispositivo), elija **Hardware TOTP token** (Token TOTP de hardware) y, a continuación, elija **Next** (Siguiente).

1. Escriba el número de serie del dispositivo. Por lo general, se encuentra en la parte posterior del dispositivo.

1. En el cuadro **Código MFA 1**, escriba el número de seis dígitos que se encuentra en el dispositivo MFA. Es posible que tenga que pulsar el botón de la parte anterior del dispositivo para mostrar el número.  
![\[Panel de IAM, dispositivo MFA\]](http://docs.aws.amazon.com/es_es/IAM/latest/UserGuide/images/MFADevice.png)

1. Espere 30 segundos a que el dispositivo actualice el código y, a continuación, escriba el número de seis dígitos siguiente en el cuadro **Código MFA 2**. Es posible que tenga que volver a pulsar el botón de la parte anterior del dispositivo para mostrar el otro número.

1. Elija **Agregar MFA**.
**importante**  
Envíe su solicitud inmediatamente después de generar los códigos de autenticación. Si genera los códigos y después espera demasiado tiempo a enviar la solicitud, el dispositivo MFA se asociará correctamente al usuario, pero no estará sincronizado. Esto ocurre porque las contraseñas temporales de un solo uso (TOTP) caducan tras un corto periodo de tiempo. Si esto ocurre, puede [volver a sincronizar el dispositivo](id_credentials_mfa_sync.md).

El dispositivo ya está listo para utilizarlo con AWS. Para obtener más información sobre el uso de MFA con la Consola de administración de AWS, consulte [Inicio de sesión con MFA habilitado](console_sign-in-mfa.md).

## Habilitar un token TOTP de hardware para otro usuario de IAM (consola)
<a name="enable-hw-mfa-for-iam-user"></a>

 Puede habilitar un token TOTP de hardware para otro usuario de IAM desde la Consola de administración de AWS.

**Para habilitar un token TOTP de hardware para otro usuario de IAM (consola)**

1. Inicie sesión en la Consola de administración de AWS y abra la consola de IAM en [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

1. En el panel de navegación, seleccione **Usuarios**.

1. Elija el nombre del usuario para el que desea activar la MFA.

1. Elija la pestaña **Credenciales de seguridad**. En **autenticación multifactor (MFA)**, seleccione **Asignar dispositivo MFA**.

1. En el asistente, escriba un **Nombre del dispositivo**, elija **Token TOTP de hardware** y, a continuación, elija **Siguiente**.

1. Escriba el número de serie del dispositivo. Por lo general, se encuentra en la parte posterior del dispositivo.

1. En el cuadro **Código MFA 1**, escriba el número de seis dígitos que se encuentra en el dispositivo MFA. Es posible que tenga que pulsar el botón de la parte anterior del dispositivo para mostrar el número.  
![\[Panel de IAM, dispositivo MFA\]](http://docs.aws.amazon.com/es_es/IAM/latest/UserGuide/images/MFADevice.png)

1. Espere 30 segundos a que el dispositivo actualice el código y, a continuación, escriba el número de seis dígitos siguiente en el cuadro **Código MFA 2**. Es posible que tenga que volver a pulsar el botón de la parte anterior del dispositivo para mostrar el otro número.

1. Elija **Agregar MFA**.
**importante**  
Envíe su solicitud inmediatamente después de generar los códigos de autenticación. Si genera los códigos y después espera demasiado tiempo a enviar la solicitud, el dispositivo MFA se asociará correctamente al usuario, pero no estará sincronizado. Esto ocurre porque las contraseñas temporales de un solo uso (TOTP) caducan tras un corto periodo de tiempo. Si esto ocurre, puede [volver a sincronizar el dispositivo](id_credentials_mfa_sync.md).

El dispositivo ya está listo para utilizarlo con AWS. Para obtener más información sobre el uso de MFA con la Consola de administración de AWS, consulte [Inicio de sesión con MFA habilitado](console_sign-in-mfa.md).

## Reemplazar un dispositivo MFA físico
<a name="replace-phys-mfa"></a>

Puede tener hasta ocho dispositivos MFA de cualquier combinación de los [tipos de MFA admitidos actualmente](https://aws.amazon.com/iam/features/mfa/) asignados a un usuario a la vez con el Usuario raíz de la cuenta de AWS y los usuarios de IAM. Si el usuario pierde un dispositivo o debe reemplazarlo por cualquier motivo, primero debe desactivar el antiguo dispositivo. Después, puede añadir el nuevo dispositivo para el usuario.
+ Para desactivar el dispositivo que tenga asociado actualmente a un usuario, consulte [Desactivación de un dispositivo MFA](id_credentials_mfa_disable.md).
+ Para agregar un token TOTP de hardware de reemplazo para un usuario de IAM, siga los pasos del procedimiento [Habilitar un token TOTP de hardware para otro usuario de IAM (consola)](#enable-hw-mfa-for-iam-user) anterior en este tema.
+ Para agregar un token TOTP de hardware de reemplazo para el Usuario raíz de la cuenta de AWS, siga los pasos del procedimiento [Habilitación de un token TOTP de hardware para el usuario raíz de la (consola)](enable-hw-mfa-for-root.md) anterior de este tema.

# Asignación de dispositivos de MFA en la AWS CLI o API de AWS
<a name="id_credentials_mfa_enable_cliapi"></a>

Puede utilizar comandos de la AWS CLI u operaciones de la API de AWS para habilitar un dispositivo MFA virtual para un usuario de IAM. No es posible habilitar un dispositivo MFA para el Usuario raíz de la cuenta de AWS con la AWS CLI, la API de AWS, las herramientas para Windows PowerShell ni con ninguna otra herramienta de línea de comandos. Sin embargo, puede utilizar la Consola de administración de AWS para habilitar un dispositivo MFA para el usuario raíz. 

Al habilitar un dispositivo MFA desde la Consola de administración de AWS, esta ejecuta varias operaciones automáticamente. En cambio, si crea un dispositivo virtual utilizando la AWS CLI, las Tools for Windows PowerShell o la API de AWS, entonces deberá realizar los pasos manualmente y en el orden correcto. Por ejemplo, para crear un dispositivo MFA virtual, debe crear el objeto de IAM y extraer el código como una cadena o un código QR gráfico. A continuación, debe sincronizar el dispositivo y asociarlo con un usuario de IAM. Consulte la sección **Examples** de [New-IAMVirtualMFADevice](https://docs.aws.amazon.com/powershell/latest/reference/Index.html?page=New-IAMVirtualMFADevice.html&tocid=New-IAMVirtualMFADevice) para obtener más detalles. Para un dispositivo físico, puede omitir el paso de creación e ir directamente a sincronizar el dispositivo y asociarlo con el usuario. 

Puede asociar etiquetas a los recursos de IAM, incluidos los dispositivos MFA virtuales, a fin de identificar, organizar y controlar el acceso a ellos. Puede etiquetar dispositivos MFA virtuales solo cuando utiliza la AWS CLI o la API de AWS.

Un usuario de IAM que utilice el SDK o la CLI puede habilitar un dispositivo MFA adicional llamando a [https://docs.aws.amazon.com/IAM/latest/APIReference/API_EnableMFADevice.html](https://docs.aws.amazon.com/IAM/latest/APIReference/API_EnableMFADevice.html) o desactivar un dispositivo MFA existente mediante una llamada a [https://docs.aws.amazon.com/IAM/latest/APIReference/API_DeactivateMFADevice.html](https://docs.aws.amazon.com/IAM/latest/APIReference/API_DeactivateMFADevice.html). Para hacerlo correctamente, primero deben llamar a [https://docs.aws.amazon.com/STS/latest/APIReference/API_GetSessionToken.html](https://docs.aws.amazon.com/STS/latest/APIReference/API_GetSessionToken.html) y enviar los códigos MFA con un dispositivo MFA existente. Esta llamada devuelve credenciales de seguridad temporales que luego se pueden usar para firmar las operaciones de API que requieren la autenticación MFA. Para ver un ejemplo de solicitud y respuesta, consulte [`GetSessionToken`: credenciales temporales para usuarios de entornos que no son de confianza](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html#api_getsessiontoken). 

**Para crear la entidad del dispositivo virtual en IAM para representar un dispositivo de MFA virtual**  
Estos comandos proporcionan un ARN para el dispositivo que se utiliza en lugar de un número de serie en muchos de los siguientes comandos.
+ AWS CLI: [https://docs.aws.amazon.com/cli/latest/reference/iam/create-virtual-mfa-device.html](https://docs.aws.amazon.com/cli/latest/reference/iam/create-virtual-mfa-device.html) 
+ AWS API: [https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreateVirtualMFADevice.html](https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreateVirtualMFADevice.html) 

**Para habilitar un dispositivo MFA para su uso con AWS**  
Estos comandos sincronizan el dispositivo con AWS y lo asocian con un usuario. Si el dispositivo es virtual, utilice el ARN del dispositivo virtual como número de serie.

**importante**  
Envíe su solicitud inmediatamente después de generar los códigos de autenticación. Si genera los códigos y después espera demasiado tiempo a enviar la solicitud, el dispositivo MFA se asociará correctamente al usuario, pero no estará sincronizado. Esto ocurre porque las contraseñas temporales de un solo uso (TOTP) caducan tras un corto periodo de tiempo. Si esto ocurre, puede resincronizar el dispositivo utilizando los comandos que se describen a continuación.
+ AWS CLI: [https://docs.aws.amazon.com/cli/latest/reference/iam/enable-mfa-device.html](https://docs.aws.amazon.com/cli/latest/reference/iam/enable-mfa-device.html) 
+ AWS API: [https://docs.aws.amazon.com/IAM/latest/APIReference/API_EnableMFADevice.html](https://docs.aws.amazon.com/IAM/latest/APIReference/API_EnableMFADevice.html) 

**Para desactivar un dispositivo**  
Utilice estos comandos para desvincular el dispositivo del usuario y desactivarlo. Si el dispositivo es virtual, utilice el ARN del dispositivo virtual como número de serie. Asimismo, debe eliminar la entidad de dispositivo virtual por separado. 
+ AWS CLI: [https://docs.aws.amazon.com/cli/latest/reference/iam/deactivate-mfa-device.html](https://docs.aws.amazon.com/cli/latest/reference/iam/deactivate-mfa-device.html) 
+ AWS API: [https://docs.aws.amazon.com/IAM/latest/APIReference/API_DeactivateMFADevice.html](https://docs.aws.amazon.com/IAM/latest/APIReference/API_DeactivateMFADevice.html)

**Para crear una lista de entidades de dispositivo de MFA virtual**  
Utilice estos comandos para una lista de entidades de dispositivo de MFA virtual.
+ AWS CLI: [https://docs.aws.amazon.com/cli/latest/reference/iam/list-virtual-mfa-devices.html](https://docs.aws.amazon.com/cli/latest/reference/iam/list-virtual-mfa-devices.html) 
+ AWS API: [https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListVirtualMFADevices.html](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListVirtualMFADevices.html) 

**Cómo etiquetar un dispositivo MFA virtual**  
Utilice estos comandos para etiquetar un dispositivo MFA virtual.
+ AWS CLI: [https://docs.aws.amazon.com/cli/latest/reference/iam/tag-mfa-device.html](https://docs.aws.amazon.com/cli/latest/reference/iam/tag-mfa-device.html) 
+ AWS API: [https://docs.aws.amazon.com/IAM/latest/APIReference/API_TagMFADevice.html](https://docs.aws.amazon.com/IAM/latest/APIReference/API_TagMFADevice.html) 

**Enumerar etiquetas para un dispositivo MFA virtual**  
Utilice estos comandos para enumerar las etiquetas asociadas a un dispositivo MFA virtual.
+ AWS CLI: [https://docs.aws.amazon.com/cli/latest/reference/iam/list-mfa-device-tags.html](https://docs.aws.amazon.com/cli/latest/reference/iam/list-mfa-device-tags.html) 
+ AWS API: [https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListMFADeviceTags.html](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListMFADeviceTags.html) 

**Quitar etiquetas de un dispositivo MFA virtual**  
Utilice estos comandos para quitar las etiquetas asociadas a un dispositivo MFA virtual.
+ AWS CLI: [https://docs.aws.amazon.com/cli/latest/reference/iam/untag-mfa-device.html](https://docs.aws.amazon.com/cli/latest/reference/iam/untag-mfa-device.html) 
+ AWS API: [https://docs.aws.amazon.com/IAM/latest/APIReference/API_UntagMFADevice.html](https://docs.aws.amazon.com/IAM/latest/APIReference/API_UntagMFADevice.html) 

**Para resincronizar un dispositivo de MFA**  
Utilice estos comandos si el dispositivo genera códigos que no acepta AWS. Si el dispositivo es virtual, utilice el ARN del dispositivo virtual como número de serie.
+ AWS CLI: [https://docs.aws.amazon.com/cli/latest/reference/iam/resync-mfa-device.html](https://docs.aws.amazon.com/cli/latest/reference/iam/resync-mfa-device.html) 
+ AWS API: [https://docs.aws.amazon.com/IAM/latest/APIReference/API_ResyncMFADevice.html](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ResyncMFADevice.html) 

**Para eliminar una entidad de dispositivo MFA virtual en IAM**  
En cuanto el dispositivo se desvincule del usuario, puede eliminar la entidad de dispositivo.
+ AWS CLI: [https://docs.aws.amazon.com/cli/latest/reference/iam/delete-virtual-mfa-device.html](https://docs.aws.amazon.com/cli/latest/reference/iam/delete-virtual-mfa-device.html) 
+ AWS API: [https://docs.aws.amazon.com/IAM/latest/APIReference/API_DeleteVirtualMFADevice.html](https://docs.aws.amazon.com/IAM/latest/APIReference/API_DeleteVirtualMFADevice.html) 

**Para recuperar un dispositivo MFA virtual perdido o que no funciona**  
A veces, el dispositivo de un usuario que aloja la aplicación de MFA virtual se pierde, se reemplaza o no funciona. Cuando esto sucede, el usuario no puede recuperarlo por sí mismo. Los usuarios deben ponerse en contacto con un administrador para desactivar el dispositivo. Para obtener más información, consulte [Recuperación de una identidad protegida por MFA en IAM](id_credentials_mfa_lost-or-broken.md).

# Comprobación del estado de MFA
<a name="id_credentials_mfa_checking-status"></a>

Utilice la consola de IAM para comprobar si un Usuario raíz de la cuenta de AWS o un usuario de IAM tiene un dispositivo MFA válido habilitado.

**Para comprobar el estado de un usuario raíz MFA**

1. Inicie sesión en la Consola de administración de AWS con sus credenciales de usuario raíz y, a continuación, abrir la consola IAM en [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/). 

1. En la esquina superior derecha de la barra de navegación, elija su nombre de usuario y, a continuación, **Security credentials** (Credenciales de seguridad).

1. Compruebe en **Multi-factor Authentication (MFA) (Autenticación multifactor [MFA])** para ver si la MFA está habilitada o desactivada. Si la MFA no se ha activado, aparecerá un símbolo de alerta (![\[Alert icon\]](http://docs.aws.amazon.com/es_es/IAM/latest/UserGuide/images/console-alert-icon.console.png)). 

Si desea activar MFA para la cuenta, consulte una de las siguientes opciones:
+ [Habilitación de un dispositivo MFA virtual para el usuario raíz (consola)](enable-virt-mfa-for-root.md)
+ [Habilitación de una clave de acceso o clave de seguridad para el usuario raíz (consola)](enable-fido-mfa-for-root.md)
+ [Habilitación de un token TOTP de hardware para el usuario raíz de la (consola)](enable-hw-mfa-for-root.md)

**Para verificar el estado de MFA de los usuarios de IAM**

1. Abra la consola de IAM en [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/). 

1. En el panel de navegación, seleccione **Usuarios**.

1. Si es necesario, agregue la columna **MFA** a la tabla de usuarios realizando los siguientes pasos:

   1. Encima de la tabla, en el extremo derecho, elija el icono de configuración (![\[Settings icon\]](http://docs.aws.amazon.com/es_es/IAM/latest/UserGuide/images/console-settings-icon.console.png)).

   1. En **Manage Columns (Administrar columnas)**, seleccione **MFA**.

   1. (Opcional) Desactive la casilla de verificación de los encabezados de columna que no quiera que aparezcan en la tabla de los usuarios.

   1. Seleccione **Close (Cerrar)** para volver a la lista de usuarios.

1. La columna **MFA** le informa sobre el dispositivo MFA que está activado. Si ningún dispositivo MFA está activado para el usuario, la consola muestra **None** (Ninguno). Si el usuario tiene un dispositivo MFA activado, la columna **MFA** muestra el tipo de dispositivo que está activado con un valor **Virtual**, **FIDO Security Key** (Clave de seguridad FIDO), **Hardware** o **SMS**.
**nota**  
AWS finalizó el soporte para habilitar la autenticación multifactor (MFA) por SMS. Recomendamos a los clientes que tienen usuarios de IAM que utilizan MFA basado en mensajes de texto SMS que cambien a uno de los siguientes métodos alternativos: [dispositivo MFA virtual (basado en software)](id_credentials_mfa_enable_virtual.md), [clave de seguridad FIDO](id_credentials_mfa_enable_fido.md) o [dispositivo MFA de hardware](id_credentials_mfa_enable_physical.md). Puede identificar a los usuarios de su cuenta con un dispositivo MFA de SMS asignado. Para ello, vaya a la consola de IAM, elija **Users (Usuarios)** en el panel de navegación y busque los usuarios con **SMS** en la columna **MFA** de la tabla.

1. Para ver información adicional sobre el dispositivo MFA de un usuario, seleccione el nombre del usuario cuyo estado de MFA quiere comprobar. A continuación, elija la pestaña **Security credentials (Credenciales de seguridad)**. 

1. Si no hay ningún dispositivo MFA activo para el usuario, la consola muestra **No hay dispositivos MFA. Asigne un dispositivo MFA para mejorar la seguridad de su entorno de AWS** en la sección **Autenticación multifactor (MFA)**. Si el usuario tiene dispositivos MFA activados, la sección **Multi-factor authentication (MFA)** (Autenticación multifactor [MFA]) muestra detalles sobre los dispositivos:
   + El nombre del dispositivo
   + El tipo de dispositivo
   + El identificador del dispositivo, como el número de serie de un dispositivo físico o el ARN en AWS de un dispositivo virtual
   + Cuándo se creó el dispositivo

Para eliminar o volver a sincronizar un dispositivo, seleccione el botón de radio situado junto al dispositivo y, a continuación, **Remove** (Eliminar) o **Resync** (Volver a sincronizar).

Para obtener más información sobre la habilitación de MFA, consulte los siguientes temas: 
+ [Asignación de un dispositivo de MFA virtual en la Consola de administración de AWS](id_credentials_mfa_enable_virtual.md)
+ [Asignación de una clave de acceso o de seguridad en la Consola de administración de AWS](id_credentials_mfa_enable_fido.md)
+ [Asignación de un token de TOTP de hardware en la Consola de administración de AWS](id_credentials_mfa_enable_physical.md)

# Resincronización de dispositivos MFA de hardware y virtuales
<a name="id_credentials_mfa_sync"></a>

Puede utilizar AWS para volver a sincronizar sus dispositivos MFA (autenticación multifactor [MFA]) físicos y virtuales. Si el dispositivo no se sincroniza al intentar utilizarlo, el intento de inicio de sesión del usuario dará un error e IAM le pedirá que vuelva a sincronizar el dispositivo.

**nota**  
Las claves de seguridad FIDO no pierden la sincronización. Si una llave de seguridad FIDO se pierde o avería, puede desactivarla. Para obtener instrucciones sobre cómo desactivar cualquier tipo de dispositivo MFA, consulte [Para desactivar un dispositivo MFA de otro usuario de IAM (consola)](id_credentials_mfa_disable.md#deactivate-mfa-for-user).

Como administrador de AWS, puede volver a sincronizar sus dispositivos MFA físicos y virtuales de los usuarios de IAM si pierden la sincronización.

Si el dispositivo MFA de Usuario raíz de la cuenta de AWS no funciona, puede volver a sincronizarlo con la consola de IAM y completar o no el proceso de inicio de sesión. Si no puedes resincronizar correctamente el dispositivo, es posible que tengas que desasociarlo y volver a asociarlo. Para obtener más información acerca de cómo hacerlo, consulte [Desactivación de un dispositivo MFA](id_credentials_mfa_disable.md) y [Autenticación multifactor de AWS en IAM](id_credentials_mfa.md).

**Topics**
+ [Permisos necesarios](#id_credentials_mfa_sync_console-permissions-required)
+ [Resincronización de dispositivos MFA físicos y virtuales (consola de IAM)](#id_credentials_mfa_sync_console)
+ [Resincronización de dispositivos MFA físicos y virtuales (AWS CLI)](#id_credentials_mfa_sync_cli)
+ [Resincronización de dispositivos MFA físicos y virtuales (API de AWS)](#id_credentials_mfa_sync_api)

## Permisos necesarios
<a name="id_credentials_mfa_sync_console-permissions-required"></a>

Para resincronizar dispositivos MFA virtuales o de hardware para su propio usuario de IAM, debe tener los permisos de la siguiente política. Esta política no permite crear ni desactivar un dispositivo.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AllowListActions",
            "Effect": "Allow",
            "Action": [
                "iam:ListVirtualMFADevices"
            ],
            "Resource": "*"
        },
        {
            "Sid": "AllowUserToViewAndManageTheirOwnUserMFA",
            "Effect": "Allow",
            "Action": [
                "iam:ListMFADevices",
                "iam:ResyncMFADevice"
            ],
            "Resource": "arn:aws:iam::*:user/${aws:username}"
        },
        {
            "Sid": "BlockAllExceptListedIfNoMFA",
            "Effect": "Deny",
            "NotAction": [
                "iam:ListMFADevices",
                "iam:ListVirtualMFADevices",
                "iam:ResyncMFADevice"
            ],
            "Resource": "*",
            "Condition": {
                "BoolIfExists": {
                    "aws:MultiFactorAuthPresent": "false"
                }
            }
        }
    ]
}
```

------

## Resincronización de dispositivos MFA físicos y virtuales (consola de IAM)
<a name="id_credentials_mfa_sync_console"></a>

Puede utilizar la consola de IAM para volver a sincronizar dispositivos de MFA físicos y virtuales.

**Para volver a sincronizar un dispositivo MFA físico o virtual para su propio usuario de IAM (consola)**

1. Utilice el ID de su cuenta de AWS o el alias de su cuenta, el nombre de usuario de IAM y la contraseña para iniciar sesión en la [consola de IAM](https://console.aws.amazon.com/iam).
**nota**  
Para su comodidad, la página de inicio de sesión AWS utiliza una cookie del navegador para recordar su nombre de usuario de IAM y la información de su cuenta. Si ha iniciado sesión anteriormente como un usuario diferente, elija **Iniciar sesión en otra cuenta** cerca del final de la página para volver a la página principal de inicio de sesión. Desde allí, puede escribir su ID de cuenta AWS o su alias de cuenta, de modo que se lo redirija a la página de inicio de sesión del usuario de IAM y tenga acceso a su cuenta.

   Para obtener el ID de la Cuenta de AWS, contacte con su administrador.

1. En la esquina superior derecha de la barra de navegación, elija su nombre de usuario y, a continuación, **Security credentials** (Credenciales de seguridad).   
![\[Enlace de credenciales de seguridad de la Consola de administración de AWS\]](http://docs.aws.amazon.com/es_es/IAM/latest/UserGuide/images/security-credentials-user.shared.console.png)

1. En la pestaña **Credenciales de AWS IAM**, en la sección **Autenticación multifactor (MFA)**, elija el botón de opción junto al dispositivo MFA y elija **Volver a sincronizar**.

1. Escriba los dos códigos generados de forma secuencial desde el dispositivo en **MFA code 1 (Código MFA 1)** y **MFA code 2 (Código MFA 2)**. Luego, seleccione **Resync** (Volver a sincronizar).
**importante**  
Envíe su solicitud inmediatamente después de generar los códigos. Si genera los códigos y, a continuación, espera demasiado tiempo para enviar la solicitud, la solicitud parece funcionar, pero el dispositivo permanece sin sincronizar. Esto ocurre porque las contraseñas temporales de un solo uso (TOTP) caducan tras un corto periodo de tiempo.

**Para volver a sincronizar un dispositivo MFA físico o virtual para otro usuario de IAM (consola)**

1. Inicie sesión en Consola de administración de AWS y abra la consola IAM en [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

1. En el panel de navegación, seleccione **Users (Usuarios)** y, a continuación, elija el nombre del usuario cuyo dispositivo MFA debe volver a sincronizarse.

1. Seleccione la **pestaña de credenciales de** seguridad. En la sección **Autenticación multifactor (MFA)**, elija el botón de opción junto al dispositivo MFA y seleccione **Volver a sincronizar**.

1. Escriba los dos códigos generados de forma secuencial desde el dispositivo en **MFA code 1 (Código MFA 1)** y **MFA code 2 (Código MFA 2)**. Luego, seleccione **Resync** (Volver a sincronizar).
**importante**  
Envíe su solicitud inmediatamente después de generar los códigos. Si genera los códigos y, a continuación, espera demasiado tiempo para enviar la solicitud, la solicitud parece funcionar, pero el dispositivo permanece sin sincronizar. Esto ocurre porque las contraseñas temporales de un solo uso (TOTP) caducan tras un corto periodo de tiempo.

**Para volver a sincronizar su MFA de usuario raíz antes de iniciar sesión (consola)**

1. En la página **Inicio de sesión en Amazon Web Services con un dispositivo de autenticación**, seleccione **¿Tiene problemas con su dispositivo de autenticación? Click here (Haga clic aquí**.
**nota**  
Puede ver texto diferente, como, por ejemplo, **Iniciar sesión mediante MFA** y **Solución de problemas con el dispositivo de autenticación**. Sin embargo, se proporcionan las mismas características.

1. En la sección **Re-Sync With Our Servers (Volver a sincronizar con nuestros servidores)**, escriba los dos códigos generados de forma secuencial desde el dispositivo en **MFA code 1 (Código MFA 1)** y **MFA code 2 (Código MFA 2)**. A continuación, seleccione **Re-sync authentication device (Volver a sincronizar dispositivo de autenticación)**.

1. Si es necesario, escriba la contraseña de nuevo y elija **Sign in (Iniciar sesión)**. Finalmente, complete el inicio de sesión con su dispositivo MFA.

**Para volver a sincronizar su dispositivo MFA de su usuario raíz tras iniciar sesión (consola)**

1. Inicie sesión en la [consola de IAM](https://console.aws.amazon.com/iam/) como el propietario de la cuenta; para ello, elija **Root user (Usuario raíz)** e ingrese el email de su Cuenta de AWS. En la siguiente página, escriba su contraseña.
**nota**  
Como usuario raíz, no puede iniciar sesión en la página **Iniciar sesión como usuario de IAM**. Si aparece la página **Iniciar sesión como usuario de IAM**, elija **Iniciar sesión con el correo electrónico de usuario raíz** en la parte inferior de la página. Para obtener ayuda para iniciar sesión como usuario raíz, consulte [Inicio de sesión a la Consola de administración de AWS como usuario raíz](https://docs.aws.amazon.com/signin/latest/userguide/introduction-to-          root-user-sign-in-tutorial.html) en la *Guía del usuario de AWS Sign-In*.

1. En la parte derecha de la barra de navegación, elija su nombre de cuenta y, a continuación, **Security credentials** (Credenciales de seguridad). Si es necesario, elija **Continue to Security Credentials** (Seguir en Credenciales de seguridad).  
![\[Credenciales de seguridad en el menú de navegación\]](http://docs.aws.amazon.com/es_es/IAM/latest/UserGuide/images/security-credentials-root.shared.console.png)

1. Expanda la sección **Multi-factor authentication (MFA) (Autenticación multifactor [MFA])** en la página.

1. Seleccione el botón de opción situado junto al dispositivo y haga clic en **Resync** (Volver a sincronizar).

1. En el cuadro de diálogo **Resync MFA device** (Volver a sincronizar el dispositivo MFA), escriba los dos códigos generados de forma secuencial desde el dispositivo en **MFA code 1** (Código MFA 1) y **MFA code 2** (Código MFA 2). Luego, seleccione **Resync** (Volver a sincronizar).
**importante**  
Envíe su solicitud inmediatamente después de generar los códigos. Si genera los códigos y después espera demasiado tiempo a enviar la solicitud, el dispositivo MFA se asociará correctamente al usuario, pero no estará sincronizado. Esto ocurre porque las contraseñas temporales de un solo uso (TOTP) caducan tras un corto periodo de tiempo.

## Resincronización de dispositivos MFA físicos y virtuales (AWS CLI)
<a name="id_credentials_mfa_sync_cli"></a>

Puede volver a sincronizar dispositivos MFA físicos y virtuales con la AWS CLI.

**Para volver a sincronizar un dispositivo MFA físico o virtual para un usuario de IAM (AWS CLI)**  
En una línea de comandos, emita el comando [aws iam resync-mfa-device](https://docs.aws.amazon.com/cli/latest/reference/iam/resync-mfa-device.html):
+ Dispositivo MFA virtual: especifique el nombre de recurso de Amazon (ARN) del dispositivo como el número de serie.

  ```
  aws iam resync-mfa-device --user-name Richard --serial-number arn:aws:iam::123456789012:mfa/RichardsMFA --authentication-code1 123456 --authentication-code2 987654
  ```
+ Dispositivo MFA físico: especifique el número de serie del dispositivo físico como el número de serie. El formato es específico del proveedor. Por ejemplo, puede comprar un token Gemalto de Amazon. Su número de serie suele ser de cuatro letras seguidas de cuatro números.

  ```
  aws iam resync-mfa-device --user-name Richard --serial-number ABCD12345678 --authentication-code1 123456 --authentication-code2 987654
  ```

**importante**  
Envíe su solicitud inmediatamente después de generar los códigos. Si genera los códigos y después espera demasiado tiempo para enviar la solicitud, esta dará un error porque los códigos caducan tras un breve intervalo de tiempo.

## Resincronización de dispositivos MFA físicos y virtuales (API de AWS)
<a name="id_credentials_mfa_sync_api"></a>

IAM tiene una llamada a la API que realiza la sincronización. En este caso, le recomendamos que dé permiso a los usuarios de dispositivos MFA físicos y virtuales para obtener acceso a esta llamada a la API. A continuación, debe crear una herramienta basada en esa llamada a la API que permita a sus usuarios volver a sincronizar sus dispositivos siempre que sea necesario.

**Para volver a sincronizar un dispositivo MFA físico o virtual para un usuario de IAM (API de AWS)**
+ Envíe la solicitud [ResyncMFADevice](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ResyncMFADevice.html).

# Desactivación de un dispositivo MFA
<a name="id_credentials_mfa_disable"></a>

Si tiene problemas para iniciar sesión con un dispositivo de autenticación multifactor (MFA) como un usuario de IAM, póngase en contacto con su administrador para obtener ayuda.

Como administrador, puede desactivar el dispositivo para otro usuario de IAM. Esto permite al usuario iniciar sesión sin utilizar MFA. Puede hacerlo como una solución temporal, mientras se sustituye el dispositivo MFA o si no está disponible temporalmente. Sin embargo, le recomendamos que habilite un nuevo dispositivo para el usuario tan pronto como sea posible. Para obtener información sobre cómo habilitar un nuevo dispositivo MFA, consulte [Autenticación multifactor de AWS en IAM](id_credentials_mfa.md).

**nota**  
Si utiliza la API o la AWS CLI para eliminar un usuario de su Cuenta de AWS, debe desactivar o eliminar el dispositivo MFA del usuario. Puede realizar este cambio como parte del proceso de eliminación del usuario. Para obtener más información acerca de la eliminación de usuarios, consulte [Eliminación o desactivación de un usuario de IAM](id_users_remove.md).

**Topics**
+ [Desactivación de dispositivos MFA (consola)](#deactive-mfa-console)
+ [Desactivación de dispositivos MFA (AWS CLI)](#deactivate-mfa-cli)
+ [Desactivación de dispositivos MFA (API de AWS)](#deactivate-mfa-api)

## Desactivación de dispositivos MFA (consola)
<a name="deactive-mfa-console"></a><a name="deactivate-mfa-for-user"></a>

**Para desactivar un dispositivo MFA de otro usuario de IAM (consola)**

1. Inicie sesión en la Consola de administración de AWS y abra la consola de IAM en [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

1. En el panel de navegación, seleccione **Usuarios**.

1. Para desactivar el dispositivo MFA para un usuario, elija el nombre del usuario cuyo MFA desea eliminar.

1. Seleccione la **pestaña de credenciales de** seguridad.

1. En **Autenticación multifactor (MFA)**, elija el botón de opción junto al dispositivo MFA, seleccione **Eliminar** y luego, **Eliminar**.

   El dispositivo se elimina de AWS. No puede utilizarse para iniciar sesión ni autenticar solicitudes hasta que se vuelva a activar y asociar a una cuenta de usuario de AWS o Usuario raíz de la cuenta de AWS.<a name="deactivate-mfa-for-root"></a>

**Para deshabilitar el dispositivo de MFA para su usuario Usuario raíz de la cuenta de AWS (consola)**

1. Inicie sesión en la [consola de IAM](https://console.aws.amazon.com/iam/) como el propietario de la cuenta; para ello, elija **Root user (Usuario raíz)** e ingrese el email de su Cuenta de AWS. En la siguiente página, escriba su contraseña.
**nota**  
Como usuario raíz, no puede iniciar sesión en la página **Iniciar sesión como usuario de IAM**. Si aparece la página **Iniciar sesión como usuario de IAM**, elija **Iniciar sesión con el correo electrónico de usuario raíz** en la parte inferior de la página. Para obtener ayuda para iniciar sesión como usuario raíz, consulte [Inicio de sesión a la Consola de administración de AWS como usuario raíz](https://docs.aws.amazon.com/signin/latest/userguide/introduction-to-          root-user-sign-in-tutorial.html) en la *Guía del usuario de AWS Sign-In*.

1. En la parte derecha de la barra de navegación, elija su nombre de cuenta y, a continuación, **Security credentials** (Credenciales de seguridad). Si es necesario, elija **Continue to Security Credentials** (Seguir en Credenciales de seguridad).  
![\[Credenciales de seguridad en el menú de navegación\]](http://docs.aws.amazon.com/es_es/IAM/latest/UserGuide/images/security-credentials-root.shared.console.png)

1. En la sección **Multi-factor authentication (MFA)** (Autenticación multifactor [MFA]), seleccione el botón de opción situado junto al dispositivo MFA que desea desactivar y, a continuación, **Remove** (Eliminar).

1. Elija **Eliminar**.

   Se ha desactivado el dispositivo MFA para la Cuenta de AWS. Busque en la bandeja del correo electrónico asociado con su Cuenta de AWS un mensaje de confirmación de Amazon Web Services. El correo electrónico le informa de que su autenticación multifactor (MFA) de Amazon Web Services se ha desactivado. El mensaje vendrá de `@amazon.com` o `@aws.amazon.com`.

**nota**  
Los dispositivos MFA virtuales no asignados en su Cuenta de AWS se eliminan al agregar nuevos dispositivos MFA virtuales a través de la Consola de administración de AWS o mediante el proceso de inicio de sesión. Los dispositivos MFA virtuales no asignados son dispositivos de su cuenta, pero que el usuario raíz de la cuenta o los usuarios de IAM no utilizan para el proceso de inicio de sesión. Se eliminan para poder agregar nuevos dispositivos MFA virtuales a su cuenta. También le permite reutilizar los nombres de los dispositivos.

## Desactivación de dispositivos MFA (AWS CLI)
<a name="deactivate-mfa-cli"></a>

**Para desactivar un dispositivo MFA para un usuario de IAM (AWS CLI)**
+ Ejecute este comando: [https://docs.aws.amazon.com/cli/latest/reference/iam/deactivate-mfa-device.html](https://docs.aws.amazon.com/cli/latest/reference/iam/deactivate-mfa-device.html)

## Desactivación de dispositivos MFA (API de AWS)
<a name="deactivate-mfa-api"></a>

**Para desactivar un dispositivo MFA para un usuario de IAM (API de AWS)**
+ Llame a esta operación: [https://docs.aws.amazon.com/IAM/latest/APIReference/API_DeactivateMFADevice.html](https://docs.aws.amazon.com/IAM/latest/APIReference/API_DeactivateMFADevice.html)

# Recuperación de una identidad protegida por MFA en IAM
<a name="id_credentials_mfa_lost-or-broken"></a>

Si el [dispositivo MFA virtual](id_credentials_mfa_enable_virtual.md) o el [token TOTP de hardware](id_credentials_mfa_enable_physical.md) parece funcionar correctamente, pero no puede utilizarlo para obtener acceso a sus recursos de AWS, es posible que no esté sincronizado con AWS. Para obtener más información acerca de cómo sincronizar un dispositivo de MFA virtual o físico, consulte [Resincronización de dispositivos MFA de hardware y virtuales](id_credentials_mfa_sync.md). Las [claves de seguridad FIDO](id_credentials_mfa_enable_fido.md) no pierden la sincronización.

Si el [dispositivo de MFA](id_credentials_mfa.md) de Usuario raíz de la cuenta de AWS se ha perdido, está averiado o no funciona, puede recuperar el acceso a su cuenta. Los usuarios de IAM deben ponerse en contacto con un administrador para desactivar el dispositivo.

**importante**  
Le recomendamos que active varios dispositivos de MFA. El registro de varios dispositivos de MFA ayuda a garantizar el acceso continuo en caso de pérdida o rotura de un dispositivo. Los usuarios de IAM y Usuario raíz de la cuenta de AWS pueden registrar hasta ocho dispositivos de MFA de cualquier tipo.

## Requisito previo: utilizar otro dispositivo de MFA
<a name="mfa-lost-or-broken-prerequisites"></a>

Si su dispositivo de [autenticación multifactor (MFA)](id_credentials_mfa.md) se pierde, se daña o no funciona, puede iniciar sesión con otro dispositivo MFA registrado para el mismo usuario raíz o usuario de IAM.

**Cómo iniciar sesión con otro dispositivo de MFA**

1. Inicie sesión en la [Consola de administración de AWS](url-comsole-domain;iam) con su identificador de Cuenta de AWS o con el alias y la contraseña de la cuenta.

1. En la página **Additional verification required** o en la página **Multi-factor authentication**, elija **Pruebe con otro método de MFA**.

1. Autentíque con el tipo de dispositivo de MFA que haya seleccionado.

1. El siguiente paso varía en función de si ha iniciado sesión correctamente con un dispositivo de MFA alternativo.
   + Si ha iniciado sesión correctamente, puede [Resincronización de dispositivos MFA de hardware y virtuales](id_credentials_mfa_sync.md), lo que podría resolver el problema. Si ha perdido su dispositivo de MFA, o si el dispositivo se ha dañado, puede desactivarlo. Para obtener instrucciones sobre cómo desactivar cualquier tipo de dispositivo MFA, consulte [Desactivación de un dispositivo MFA](id_credentials_mfa_disable.md).
   + Si no puede iniciar sesión con MFA, siga los pasos de [Recuperación de un dispositivo MFA de usuario raíz](#root-mfa-lost-or-broken) o [Recuperación de un dispositivo MFA de usuario de IAM](#iam-user-mfa-lost-or-broken) para recuperar su identidad protegida por MFA.



## Recuperación de un dispositivo MFA de usuario raíz
<a name="root-mfa-lost-or-broken"></a>

Si no puede iniciar sesión con su dispositivo de MFA, puede utilizar métodos alternativos e iniciar sesión mediante la verificación de su identidad mediante el correo electrónico y el número de teléfono de contacto principal registrados en su cuenta.

Confirme que puede acceder al correo electrónico y al número de teléfono de contacto principal asociados a su cuenta antes de utilizar factores de autenticación alternativos a fin de iniciar sesión como usuario raíz. Si necesita actualizar el número de teléfono de contacto principal, inicie sesión como usuario de IAM con acceso de *Administrador* en lugar del usuario raíz. Para obtener instrucciones adicionales sobre cómo actualizar la información de contacto de la cuenta, consulte [Editar la información de contacto](https://docs.aws.amazon.com/accounts/latest/reference/manage-acct-update-contact-primary.html) en la *Guía del usuario de AWS Billing*. Si no tiene acceso a un correo electrónico ni a un número de teléfono de contacto principal, debe contactar con [AWS Support](https://support.aws.amazon.com/#/contacts/aws-mfa-support).

**importante**  
Se recomienda mantener actualizados la dirección de correo electrónico y el número de teléfono de contacto vinculados al usuario raíz para recuperar la cuenta correctamente. Para obtener más información, consulte [Actualizar su contacto principal para Cuenta de AWS](https://docs.aws.amazon.com/accounts/latest/reference/manage-acct-update-contact-primary.html) en la *Guía de referencia de AWS Account Management*.

**Para iniciar sesión con otros factores de autenticación como Usuario raíz de la cuenta de AWS**

1.  Inicie sesión en [Consola de administración de AWS](https://console.aws.amazon.com/) como propietario de la cuenta; para ello, elija **Usuario raíz** e introduzca el correo electrónico de su Cuenta de AWS. En la siguiente página, escriba su contraseña.

1. En la página **Se requiere verificación adicional**, seleccione un método de MFA con el que autenticarse y elija **Siguiente**. 
**nota**  
Es posible que aparezca un texto alternativo, como **Sign in using MFA** (Iniciar sesión con MFA), **Troubleshoot your authentication device** (Solucionar problemas de su dispositivo de autenticación) o **Troubleshoot MFA** (Solucionar problemas de MFA), pero la funcionalidad es la misma. Si no puede utilizar factores de autenticación alternativos para verificar la dirección de correo electrónico y el número de teléfono de contacto principal de su cuenta, contacte con [AWS Support](https://support.aws.amazon.com/#/contacts/aws-mfa-support) a fin de desactivar su dispositivo de MFA.

1. Según el tipo de MFA que utilice, verá una página diferente, pero la opción **Solución de problemas de MFA** funciona igual. En la página **Se requiere verificación adicional** o en la página **Autenticación multifactor**, elija **Solución problemas de MFA**.

1. Si se le solicita, escriba la contraseña de nuevo y elija **Sign in (Inicio de sesión)**.

1. En la página **Solución de problemas con el dispositivo de autenticación**, en la sección **Iniciar sesión con otros factores de autenticación**, elija **Iniciar sesión con otros factores**.

1. En la página **Iniciar sesión con otros factores de autenticación**, autentique su cuenta verificando la dirección de correo electrónico y seleccione **Enviar correo electrónico de verificación**. 

1. Busque en la bandeja del correo electrónico asociado a su Cuenta de AWS un mensaje de Amazon Web Services (no-reply-aws@amazon.com). Siga las indicaciones del correo electrónico.

   Si no ve el correo electrónico en su cuenta, revise la carpeta de spam o vuelva a su navegador y seleccione **Resend the email (Reenviar el correo electrónico)**.

1. Después de verificar su dirección de correo electrónico, podrá continuar el proceso de autenticación de la cuenta. Para verificar su número de teléfono de contacto principal, elija **Call me now** (Llamarme ahora).

1. Responda a la llamada de AWS y, cuando se le solicite, introduzca el número de 6 dígitos del sitio web de AWS en el teclado de su teléfono. 

   Si no recibe la llamada de AWS, seleccione **Sign in (Iniciar sesión)** para iniciar sesión de nuevo en la consola y volver a comenzar. O consulte [Lost or unusable Multi-Factor Authentication (MFA) device](https://support.aws.amazon.com/#/contacts/aws-mfa-support) (Dispositivo de autenticación multifactor [MFA] perdido o inutilizado) para contactar con el servicio de asistencia técnica para obtener ayuda.

1. Después de verificar su número de teléfono, podrá iniciar sesión en su cuenta. Para ello, elija **Sign in to the console (Iniciar sesión en la consola)**.

1. El siguiente paso varía en función del tipo de MFA que utilice:
   + Si utiliza un dispositivo MFA virtual, elimine la cuenta del dispositivo. A continuación, diríjase a la página [Credenciales de seguridad de AWS](https://console.aws.amazon.com/iam/home?#security_credential) y elimine la entidad de dispositivo MFA virtual antigua antes de crear una nueva.
   + Para obtener una clave de seguridad FIDO, diríjase a la página [Credenciales de seguridad de AWS](https://console.aws.amazon.com/iam/home?#security_credential) y desactive la clave de seguridad FIDO antigua antes de habilitar una nueva.
   + En el caso de un token de TOTP de hardware, contacte con el proveedor externo para que lo ayude a reparar o sustituir el dispositivo. Puede seguir iniciando sesión a través de factores de autenticación alternativos hasta que reciba su nuevo dispositivo. Una vez que tenga su nuevo dispositivo de MFA de hardware, visite la página [Credenciales de seguridad de AWS](https://console.aws.amazon.com/iam/home?#security_credential) y elimine el dispositivo de MFA antiguo.
**nota**  
No es necesario reemplazar un dispositivo MFA perdido o robado con el mismo tipo de dispositivo. Por ejemplo, si se rompe la clave de seguridad FIDO y pide una nueva, puede utilizar la MFA virtual o un token de TOTP de hardware hasta que reciba una clave FIDO nueva.

**importante**  
Si su dispositivo de MFA ha desaparecido o se lo han robado, cambie la contraseña de usuario raíz después de iniciar sesión y establecer el dispositivo de MFA de reemplazo. Es posible que un atacante haya robado el dispositivo de autenticación y también tenga su contraseña actual. Para obtener más información, consulte [Cambiar la contraseña para Usuario raíz de la cuenta de AWS](root-user-password.md).

## Recuperación de un dispositivo MFA de usuario de IAM
<a name="iam-user-mfa-lost-or-broken"></a>

Si es usuario de IAM, pero no puede iniciar sesión con MFA, no podrá recuperar un dispositivo de MFA usted mismo. Debe ponerse en contacto con un administrador para desactivar el dispositivo. Después, puede habilitar un nuevo dispositivo.

**Para obtener ayuda relacionada con un dispositivo de MFA asociado a un usuario de IAM**

1. Póngase en contacto con el administrador de AWS o cualquier otra persona que le diera el nombre de usuario y la contraseña de usuario de IAM. El administrador debe desactivar el dispositivo de MFA tal y como se describe en [Desactivación de un dispositivo MFA](id_credentials_mfa_disable.md) para que pueda iniciar sesión.

1. El siguiente paso varía en función del tipo de MFA que utilice:
   + Si utiliza un dispositivo MFA virtual, elimine la cuenta del dispositivo. A continuación, active el dispositivo virtual tal y como se describe en [Asignación de un dispositivo de MFA virtual en la Consola de administración de AWS](id_credentials_mfa_enable_virtual.md).
   + Si se trata de una clave de seguridad FIDO, contacte con el proveedor externo para que lo ayude a sustituir el dispositivo. Cuando reciba la nueva clave de seguridad FIDO, habilítela como se describe en [Asignación de una clave de acceso o de seguridad en la Consola de administración de AWS](id_credentials_mfa_enable_fido.md).
   + En el caso de un token de TOTP de hardware, contacte con el proveedor externo para que lo ayude a reparar o sustituir el dispositivo. Una vez que tenga el nuevo dispositivo de MFA físico, habilítelo tal y como se describe en [Asignación de un token de TOTP de hardware en la Consola de administración de AWS](id_credentials_mfa_enable_physical.md).
**nota**  
No es necesario reemplazar un dispositivo MFA perdido o robado con el mismo tipo de dispositivo. Puede tener hasta ocho dispositivos MFA de cualquier combinación. Por ejemplo, si se rompe la clave de seguridad FIDO y pide una nueva, puede utilizar la MFA virtual o un token de TOTP de hardware hasta que reciba una clave FIDO nueva.

1. Si su dispositivo MFA ha sido robado o se ha extraviado, cambie su contraseña para que la persona que tenga el dispositivo de autenticación no tenga también su contraseña actual. Para obtener más información, consulte [Administrar las contraseñas de los usuarios de IAM](id_credentials_passwords_admin-change-user.md)

# Acceso seguro a la API con MFA
<a name="id_credentials_mfa_configure-api-require"></a>

Con las políticas de IAM, puede especificar qué operaciones de API puede llamar un usuario. Puede aplicar seguridad adicional al exigir a los usuarios que se autentiquen con la autenticación multifactor (MFA) antes de permitirles realizar acciones particularmente sensibles.

Por ejemplo, es posible que tenga una política que permita a un usuario realizar las acciones de Amazon EC2 `RunInstances`, `DescribeInstances` y de `StopInstances`. Sin embargo, es posible que quiera restringir una acción destructiva, como `TerminateInstances` y asegurarse de que los usuarios solo pueden realizar esta acción si se autentican mediante un dispositivo MFA de AWS.

**Topics**
+ [Descripción general](#MFAProtectedAPI-overview)
+ [Situación: protección de MFA para la delegación entre cuentas](#MFAProtectedAPI-cross-account-delegation)
+ [Situación: protección de MFA para el acceso a operaciones de API de la cuenta actual](#MFAProtectedAPI-user-mfa)
+ [Situación: protección de MFA para recursos que tienen políticas basadas en recursos](#MFAProtectedAPI-resource-policies)

## Descripción general
<a name="MFAProtectedAPI-overview"></a>

Para agregar la protección de MFA a las operaciones de API es preciso realizar estas tareas:

1. El administrador configura un dispositivo de MFA de AWS para cada usuario que deba realizar solicitudes de la API que requieran una autenticación MFA. Para obtener más información, consulte [Autenticación multifactor de AWS en IAM](id_credentials_mfa.md). 

1. El administrador crea políticas para los usuarios que contienen un elemento `Condition` que comprueba si el usuario se ha autenticado con un dispositivo MFA de AWS.

1. El usuario llama a una de las operaciones de la API de AWS STS que admiten los parámetros de MFA: [AssumeRole](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html) o [GetSessionToken](https://docs.aws.amazon.com/STS/latest/APIReference/API_GetSessionToken.html). Dentro de la llamada, el usuario incluye el identificador del dispositivo que está asociado al usuario. El usuario también incluye la contraseña de un solo uso basada en el tiempo (TOTP) que el dispositivo genera. En cualquier caso, el usuario obtiene credenciales de seguridad temporales que puede utilizar para realizar solicitudes adicionales a AWS.
**nota**  
La protección de MFA para las operaciones de API de un servicio solo está disponible si el servicio es compatible con las credenciales de seguridad temporales. Para obtener una lista de estos servicios, consulte [Uso de credenciales de seguridad temporales para acceder a AWS](https://docs.aws.amazon.com/STS/latest/UsingSTS/UsingTokens.html).

Si se produce un error en la autorización, AWS devuelve un mensaje de error de acceso denegado (al igual que con cualquier otro acceso no autorizado). Con las políticas de API protegidas mediante MFA, AWS deniega el acceso a las operaciones de API especificadas en las políticas si el usuario intenta llamar a una operación de API sin una autenticación MFA válida. La operación también se deniega si la marca temporal de la solicitud de la operación API no entra en el rango especificado en la política. Debe volver a autenticarse al usuario en MFA solicitando nuevas credenciales de seguridad temporales con un código de MFA y el número de serie del dispositivo.

### Políticas de IAM con condiciones de MFA
<a name="MFAProtectedAPI-policies"></a>

Las políticas con condiciones de MFA se pueden asociar a los elementos siguientes:
+ Un usuario o grupo de IAM
+ Un recurso, como un bucket de Amazon S3, una cola de Amazon SQS o un tema de Amazon SNS
+ La política de confianza de un rol de IAM que un usuario puede asumir

Puede utilizar una condición de MFA de una política para comprobar las propiedades siguientes:
+ Existencia: para simplemente verificar que el usuario se autenticó realmente con MFA, compruebe que la clave `aws:MultiFactorAuthPresent` sea `True` en una condición `Bool`. La clave solo está presente cuando el usuario se autentica con credenciales a corto plazo. Las credenciales a largo plazo, como, por ejemplo, las claves de acceso, no contienen esta clave.
+ Duración: si quiere conceder acceso únicamente dentro de un periodo determinado de tiempo después de la autenticación MFA, utilice un tipo de condición numérica para comparar la edad de la clave `aws:MultiFactorAuthAge` con un valor (por ejemplo, 3600 segundos). Tenga en cuenta que la clave `aws:MultiFactorAuthAge` no está presente si no se ha utilizado la MFA.

El siguiente ejemplo muestra la política de confianza de un rol de IAM que contiene una condición MFA para probar la existencia de la autenticación MFA. Con esta política, los usuarios de la cuenta de Cuenta de AWS especificada en el elemento `Principal` (sustituir `ACCOUNT-B-ID` por un ID de cuenta de Cuenta de AWS válido) pueden asumir la función a la que esta política está asociada. Sin embargo, tales usuarios solo puede asumir la función si el usuario está autenticado con MFA.

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": {
    "Effect": "Allow",
    "Principal": {"AWS": "ACCOUNT-B-ID"},
    "Action": "sts:AssumeRole",
    "Condition": {"Bool": {"aws:MultiFactorAuthPresent": "true"}}
  }
}
```

------

Para obtener más información sobre los tipos de condición para MFA, consulte [Claves de contexto de condición globales de AWS](reference_policies_condition-keys.md), [Operadores de condición numérica](reference_policies_elements_condition_operators.md#Conditions_Numeric) y [Operador de condición para comprobar la existencia de claves de condición](reference_policies_elements_condition_operators.md#Conditions_Null). 

### Elegir entre GetSessionToken y AssumeRole
<a name="scenarios"></a>

AWS STS proporciona dos operaciones de la API que permiten a los usuarios transmitir información de MFA: `GetSessionToken` y `AssumeRole`. La operación de API a la que el usuario llama para obtener credenciales de seguridad temporales depende de la situación a la que la API se aplique. 

**Utilice `GetSessionToken` en las situaciones siguientes:**
+ Llamadas a operaciones de API que tienen acceso a los recursos en la misma cuenta de Cuenta de AWS que el usuario de IAM que realiza la solicitud. Tenga en cuenta que las credenciales temporales de una solicitud `GetSessionToken` pueden obtener acceso a IAM y a las operaciones de la API de AWS STS y *solo* si contienen información de MFA en la solicitud de credenciales. Dado que las credenciales temporales devueltas por `GetSessionToken` contienen información de MFA, puede buscar la presencia de MFA en llamadas a las operaciones de API realizadas por las credenciales. 
+ El acceso a recursos que están protegidos con políticas basadas en recursos que contienen una condición de MFA.

La finalidad de la operación `GetSessionToken` es autenticar al usuario mediante MFA. No se pueden utilizar políticas para controlar las operaciones de autenticación.

**Utilice `AssumeRole` en las situaciones siguientes:**
+ Llamadas a operaciones de API que obtienen acceso a los recursos que están en la misma cuenta de Cuenta de AWS o en otra. Las llamadas a la API pueden incluir cualquier API de IAM o AWS STS. Tenga en cuenta que, para proteger el acceso, aplicar MFA en el momento en que el usuario asume el rol. Las credenciales temporales devueltas por `AssumeRole` no contienen información de MFA en el contexto, por lo que no puede buscar la presencia de MFA en operaciones de API individuales. Por ello debe utilizar `GetSessionToken` para restringir el acceso a los recursos protegidos por políticas basadas en recursos.

**nota**  
Los registros AWS CloudTrail contendrán información de MFA cuando el usuario de IAM inicie sesión con MFA. Si el usuario de IAM asume un rol de IAM, CloudTrail también registrará `mfaAuthenticated: true` en los atributos `sessionContext` para las acciones realizadas utilizando el rol asumido. Sin embargo, el registro de CloudTrail es independiente de lo que requiere IAM cuando se realizan llamadas a la API con las credenciales del rol asumido. Para obtener más información, consulte [Elemento userIdentity de CloudTrail](https://docs.aws.amazon.com//awscloudtrail/latest/userguide/cloudtrail-event-reference-user-identity.html).

Más adelante, se proporciona información detallada sobre cómo implementar estas situaciones.

### Información importante sobre el acceso mediante API protegido por MFA
<a name="MFAProtectedAPI-important-points"></a>

Es importante comprender los siguientes aspectos de la protección de operaciones de API con MFA:
+ La protección con MFA solo está disponible con credenciales de seguridad temporales, las cuales deben obtenerse con `AssumeRole` o `GetSessionToken`. 
+ No puede utilizar el acceso a API protegido por MFA con las credenciales de usuario Usuario raíz de la cuenta de AWS.
+ No puede utilizar el acceso a API protegido por MFA con las llaves de seguridad U2F.
+ A los usuarios federados no se les puede asignar un dispositivo MFA para utilizarlo con servicios de AWS, por lo que no pueden obtener acceso a recursos de AWS controlados por MFA. (véase el punto siguiente). 
+ Las demás operaciones de API de AWS STS que devuelven credenciales temporales no admiten MFA. En `AssumeRoleWithWebIdentity` y `AssumeRoleWithSAML`, un proveedor externo autentica al usuario y AWS no puede determinar si ese proveedor exige una MFA. En `GetFederationToken`, MFA no está obligatoriamente asociado a un usuario concreto. 
+ Del mismo modo, las credenciales a largo plazo (claves de acceso de usuario de IAM y claves de acceso de usuario raíz) no se pueden utilizar con el acceso mediante API protegido por MFA, ya que no caducan.
+ También se puede llamar a `AssumeRole` y `GetSessionToken` sin información de MFA. En este caso, el intermediario obtiene credenciales de seguridad temporales, pero la información de la sesión para dichas credenciales temporales no indica si el usuario se autenticó con MFA.
+ Para establecer una protección de MFA para las operaciones de API, agregue condiciones de MFA a las políticas. Una política debe incluir la clave de condición `aws:MultiFactorAuthPresent` para aplicar el uso de MFA. Para la delegación entre cuentas, la política de confianza de la función debe incluir la clave de condición.
+ Cuando se permite que otra cuenta de Cuenta de AWS obtenga acceso a los recursos de su cuenta, la seguridad de los recursos dependerá de la configuración de la cuenta de confianza; es decir, de la otra cuenta (no de la suya). Esto es válido aunque se exija la autenticación multifactor. Cualquier identidad de la cuenta de confianza que tenga permiso para crear dispositivos MFA virtuales puede crear una notificación de MFA que respete la parte de la política de confianza de su rol. Antes de permitir que los miembros de otra cuenta obtengan acceso a sus recursos de AWS que requieren autenticación multifactor, debe asegurarse de que el propietario de la cuenta de confianza aplique las prácticas recomendadas de seguridad. Por ejemplo, la cuenta de confianza debe restringir exclusivamente a identidades concretas y de confianza el acceso a las operaciones de API confidenciales, tales como las operaciones de API de administración de dispositivos MFA.
+ Si una política contiene una condición de MFA, se deniega una solicitud si los usuarios de esta no se han autenticado con MFA o si proporcionan un identificador de dispositivo MFA no válido o una TOTP no válida.

## Situación: protección de MFA para la delegación entre cuentas
<a name="MFAProtectedAPI-cross-account-delegation"></a>

En este caso, quiere delegar el acceso de usuarios de IAM a otra cuenta, pero solo si dichos usuarios se autentican con un dispositivo MFA de AWS. Para obtener más información acerca de la delegación entre cuentas, consulte [Términos y conceptos de roles](id_roles.md#id_roles_terms-and-concepts). 

Supongamos que tiene una cuenta A (la cuenta que confía y es propietaria del recurso al que debe accederse) con la usuaria de IAM Anaya, que tiene permiso de administrador. Alice quiere conceder acceso al usuario Richard de la cuenta B (la cuenta de confianza), pero antes quiere asegurarse de que Richard se autentica con MFA antes de asumir el rol. 

1. En la cuenta que confía A, Anaya crea un rol de IAM denominado `CrossAccountRole` y establece la entidad principal de la política de confianza del rol en el ID de la cuenta B. La política de confianza concede permiso a la acción AWS STS `AssumeRole`. Anaya también añade una condición de MFA a la política de confianza, como la del siguiente ejemplo. 

------
#### [ JSON ]

****  

   ```
   {
     "Version":"2012-10-17",		 	 	 
     "Statement": {
       "Effect": "Allow",
       "Principal": {"AWS": "ACCOUNT-B-ID"},
       "Action": "sts:AssumeRole",
       "Condition": {"Bool": {"aws:MultiFactorAuthPresent": "true"}}
     }
   }
   ```

------

1. Anaya añade una política de permisos al rol que especifica lo que le permite hacer la función. La política de permisos de un rol con protección de MFA no es diferente de cualquier otra política de permisos de rol. En el siguiente ejemplo, se muestra la política que Anaya agrega al rol; permite al usuario que la asume realizar cualquier acción de Amazon DynamoDB en la tabla `Books` de la cuenta A. Esta política también permite la acción `dynamodb:ListTables`, que es necesaria para llevar a cabo acciones en la consola. 
**nota**  
La política de permisos no incluye una condición de MFA. Es importante comprender que la autenticación MFA solo se usa para determinar si un usuario puede asumir el rol. Una vez que el usuario haya asumido el rol, no se realizarán más verificaciones de MFA. 

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Sid": "TableActions",
               "Effect": "Allow",
               "Action": "dynamodb:*",
               "Resource": "arn:aws:dynamodb:*:111122223333:table/Books"
           },
           {
               "Sid": "ListTables",
               "Effect": "Allow",
               "Action": "dynamodb:ListTables",
               "Resource": "*"
           }
       ]
   }
   ```

------

1. En la cuenta de confianza B, el administrador se asegura de que el usuario de IAM Richard se haya configurado con un dispositivo MFA de AWS y de que conozca el ID del dispositivo. El ID de dispositivo es el número de serie si se trata de un dispositivo MFA físico, o bien el ARN si se trata de un dispositivo MFA virtual.

1. En la cuenta B, el administrador asocia la siguiente política al usuario Richard (o a un grupo del que sea miembro) que le permita llamar a la acción `AssumeRole`. El recurso se establece en el ARN del rol que Anaya creó en el paso 1. Observe que esta política no contiene una condición de MFA.

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Action": [
                   "sts:AssumeRole"
               ],
               "Resource": [
                   "arn:aws:iam::111122223333:role/CrossAccountRole"
               ]
           }
       ]
   }
   ```

------

1. En la cuenta B, Richard (o una aplicación que Richard esté ejecutando) llama a `AssumeRole`. La llamada a la API contiene el ARN del rol que se asumirá (`arn:aws:iam::ACCOUNT-A-ID:role/CrossAccountRole`), el ID del dispositivo de MFA, y la TOTP actual que Richard obtiene de su dispositivo. 

   Cuando Richard llama a `AssumeRole`, AWS determina si tiene credenciales válidas, incluido la exigencia de MFA. En caso afirmativo, Richard asume el rol efectivamente y puede realizar cualquier acción de DynamoDB de la tabla denominada `Books` de la cuenta A con las credenciales temporales del rol. 

   Si desea ver un ejemplo de un programa que llame a `AssumeRole`, consulte [Llamada a AssumeRole con autenticación MFA](id_credentials_mfa_sample-code.md#MFAProtectedAPI-example-assumerole).

## Situación: protección de MFA para el acceso a operaciones de API de la cuenta actual
<a name="MFAProtectedAPI-user-mfa"></a>

En este caso, debe asegurarse de que un usuario de su cuenta de Cuenta de AWS pueda obtener acceso a operaciones de la API confidenciales solamente cuando el usuario se haya autenticado con un dispositivo MFA de AWS.

Supongamos que tiene una cuenta A que contiene un grupo de desarrolladores que necesitan trabajar con instancias EC2. Los desarrolladores normales pueden trabajar con las instancias, pero no se les conceden permisos para las acciones `ec2:StopInstances` o `ec2:TerminateInstances`. Usted quiere limitar estas acciones privilegiadas "destructivas" solo a unos cuantos usuarios de confianza, por lo que añade protección de MFA a la política que permite estas acciones de Amazon EC2 de gran importancia. 

En este escenario, uno de los usuarios de confianza es Sofía. La usuaria Anaya es administradora de la cuenta A. 

1. Anaya se asegura de que Sofía esté configurada con un dispositivo MFA de AWS y de que Sofía conozca el ID del dispositivo. El ID de dispositivo es el número de serie si se trata de un dispositivo MFA físico, o bien el ARN si se trata de un dispositivo MFA virtual. 

1. Anaya crea un grupo denominado `EC2-Admins` y añade a la usuario Sofía al grupo.

1. Anaya asocia la siguiente política al grupo `EC2-Admins`. Esta política concede a los usuarios permiso para llamar a las acciones de Amazon EC2 `StopInstances` y `TerminateInstances` solo si el usuario se ha autenticado con MFA. 

------
#### [ JSON ]

****  

   ```
   {
     "Version":"2012-10-17",		 	 	 
     "Statement": [{
       "Effect": "Allow",
       "Action": [
         "ec2:StopInstances",
         "ec2:TerminateInstances"
       ],
       "Resource": ["*"],
       "Condition": {"Bool": {"aws:MultiFactorAuthPresent": "true"}}
     }]
   }
   ```

------

1. 
**nota**  
Para que esta política surta efecto, antes los usuarios deben cerrar la sesión e iniciarla de nuevo.

   Si el usuario Sofía tiene que detener o terminar una instancia de Amazon EC2, ella (o una aplicación que esté ejecutando) llamará a `GetSessionToken`. Esta operación de API transmite el ID del dispositivo MFA y la TOTP actual que Sofía obtiene de su dispositivo.

1. La usuaria Sofía (o una aplicación que Sofía esté usando) utiliza las credenciales temporales que ofrece `GetSessionToken` para llamar a la acción de Amazon EC2 `StopInstances` o la acción de `TerminateInstances`. 

   Si desea ver un ejemplo de un programa que llame a `GetSessionToken`, consulte [Llamada a GetSessionToken con autenticación MFA](id_credentials_mfa_sample-code.md#MFAProtectedAPI-example-getsessiontoken), más adelante en el documento.

## Situación: protección de MFA para recursos que tienen políticas basadas en recursos
<a name="MFAProtectedAPI-resource-policies"></a>

En este caso, es usted propietario de un bucket de S3, una cola de SQS o un tema de SNS. Quiere asegurarse de que todos los usuarios de todas las cuentas de Cuenta de AWS que tengan acceso al recurso se autentiquen mediante un dispositivo MFA de AWS. 

Esta situación ilustra una forma de proporcionar una protección MFA entre cuentas en la que no se exija al usuario que asuma primero un rol. En este caso, el usuario puede obtener acceso al recursos si se cumplen tres condiciones. el usuario debe estar autenticado por MFA, debe poder obtener credenciales de seguridad temporales de `GetSessionToken` y debe pertenecer a una cuenta que sea de confianza para la política del recurso. 

Supongamos que está en la cuenta A y que crea un bucket de S3. Quiere conceder acceso a este bucket a usuarios que están en varias cuentas de Cuentas de AWS, pero solo si dichos usuarios están autenticados con MFA.

En este escenario, la usuaria Anaya es administradora de la cuenta A. El usuario Nikhil es un usuario de IAM de la cuenta C.

1. En la cuenta A, Anaya crea un bucket denominado `Account-A-bucket`.

1. Anaya añade la política de bucket al bucket. La política permite a todos los usuarios de la cuenta A, la cuenta B o la cuenta C las acciones de Amazon S3 `PutObject` y de `DeleteObject` en el bucket. La política contiene una condición de MFA. 

------
#### [ JSON ]

****  

   ```
   {
     "Version":"2012-10-17",		 	 	 
     "Statement": [{
       "Effect": "Allow",
       "Principal": {"AWS": [
         "ACCOUNT-A-ID",
         "ACCOUNT-B-ID",
         "ACCOUNT-C-ID"
       ]},
       "Action": [
         "s3:PutObject",
         "s3:DeleteObject"
       ],
       "Resource": ["arn:aws:s3:::ACCOUNT-A-BUCKET-NAME/*"],
       "Condition": {"Bool": {"aws:MultiFactorAuthPresent": "true"}}
     }]
   }
   ```

------
**nota**  
Amazon S3 tiene una función de eliminación de MFA para el acceso de cuenta *raíz* (solo). Puede habilitar la eliminación de MFA de Amazon S3 cuando establezca el estado de control de versiones del bucket. La eliminación de MFA de Amazon S3 no se puede aplicar a un usuario de IAM y se administra de forma independiente del acceso mediante API protegido por MFA. Un usuario de IAM con permisos para eliminar un bucket no puede eliminar un bucket si la eliminación de MFA de Amazon S3 está habilitada. Para obtener más información acerca de la eliminación de MFA de Amazon S3, consulte [Eliminación de MFA](https://docs.aws.amazon.com/AmazonS3/latest/dev/MultiFactorAuthenticationDelete.html).

1. En la cuenta de confianza C, un administrador se asegura de que el usuario Nikhil se haya configurado con un dispositivo MFA de AWS y de que conozca el ID del dispositivo. El ID de dispositivo es el número de serie si se trata de un dispositivo MFA físico, o bien el ARN si se trata de un dispositivo MFA virtual. 

1. En la cuenta C, Nikhil (o una aplicación que esté ejecutando) llama a `GetSessionToken`. La llamada contiene el ID o el ARN del dispositivo de MFA y la TOTP actual que Nikhil obtiene de su dispositivo. 

1. Nikhil (o una aplicación que esté utilizando) utiliza las credenciales temporales devueltas por `GetSessionToken` para llamar a la acción `PutObject` Amazon S3 para cargar un archivo en `Account-A-bucket`. 

   Si desea ver un ejemplo de un programa que llame a `GetSessionToken`, consulte [Llamada a GetSessionToken con autenticación MFA](id_credentials_mfa_sample-code.md#MFAProtectedAPI-example-getsessiontoken), más adelante en el documento.
**nota**  
Las credenciales temporales que `AssumeRole` devuelve no funcionarán en este caso. Aunque el usuario puede proporcionar información de MFA para asumir un rol, las credenciales temporales devueltas por `AssumeRole` no contienen la información de MFA. Esa información se requiere para cumplir la condición de MFA de la política. 

# Código de muestra: solicitud de credenciales con autenticación multifactor
<a name="id_credentials_mfa_sample-code"></a>

En los siguientes ejemplos se muestra cómo llamar a las operaciones `GetSessionToken` y `AssumeRole` y transmitir los parámetros de autenticación MFA. No se requieren permisos para llamar a `GetSessionToken`, pero debe tener una política que le permita llamar a `AssumeRole`. Las credenciales devueltas se utilizan para enumerar todos los buckets de S3 de la cuenta.

## Llamada a GetSessionToken con autenticación MFA
<a name="MFAProtectedAPI-example-getsessiontoken"></a>

Los siguientes ejemplos muestran cómo llamar a `GetSessionToken` y transmitir la información de autenticación MFA. Las credenciales de seguridad temporales devueltas por la operación `GetSessionToken` se utilizarán para enumerar todos los buckets de S3 de la cuenta.

La política adjunta al usuario que ejecuta este código (o a un grupo al que pertenezca el usuario) proporciona los permisos para las credenciales temporales devueltas. En el código de este ejemplo, la política debe conceder al usuario permiso para solicitar la operación de Amazon S3 `ListBuckets`. 

Los siguientes ejemplos de código muestran cómo utilizar `GetSessionToken`.

------
#### [ CLI ]

**AWS CLI**  
**Cómo obtener un conjunto de credenciales a corto plazo para una identidad de IAM**  
El siguiente comando `get-session-token` recupera un conjunto de credenciales a corto plazo para la identidad de IAM que realiza la llamada. Las credenciales resultantes se pueden utilizar para las solicitudes donde la política requiere la autenticación multifactor (MFA). Las credenciales caducan 15 minutos después de haberse generado.  

```
aws sts get-session-token \
    --duration-seconds 900 \
    --serial-number "YourMFADeviceSerialNumber" \
    --token-code 123456
```
Salida:  

```
{
    "Credentials": {
        "AccessKeyId": "ASIAIOSFODNN7EXAMPLE",
        "SecretAccessKey": "wJalrXUtnFEMI/K7MDENG/bPxRfiCYzEXAMPLEKEY",
        "SessionToken": "AQoEXAMPLEH4aoAH0gNCAPyJxz4BlCFFxWNE1OPTgk5TthT+FvwqnKwRcOIfrRh3c/LTo6UDdyJwOOvEVPvLXCrrrUtdnniCEXAMPLE/IvU1dYUg2RVAJBanLiHb4IgRmpRV3zrkuWJOgQs8IZZaIv2BXIa2R4OlgkBN9bkUDNCJiBeb/AXlzBBko7b15fjrBs2+cTQtpZ3CYWFXG8C5zqx37wnOE49mRl/+OtkIKGO7fAE",
        "Expiration": "2020-05-19T18:06:10+00:00"
    }
}
```
Para obtener más información, consulte [Solicitud de credenciales de seguridad temporales](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html#api_getsessiontoken) en la *Guía del usuario de AWS IAM*.  
+  Para obtener información sobre la API, consulte [GetSessionToken](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/sts/get-session-token.html) en la *Referencia de comandos de la AWS CLI*. 

------
#### [ PowerShell ]

**Herramientas para PowerShell V4**  
**Ejemplo 1: devuelve una instancia `Amazon.RuntimeAWSCredentials` que contiene credenciales temporales válidas durante un período de tiempo determinado. Las credenciales utilizadas para solicitar credenciales temporales se deducen de los valores predeterminados actuales del intérprete de comandos. Para especificar otras credenciales, utilice los parámetros -ProfileName o -AccessKey/-SecretKey.**  

```
Get-STSSessionToken
```
**Salida:**  

```
AccessKeyId                             Expiration                              SecretAccessKey                        SessionToken
-----------                             ----------                              ---------------                        ------------
EXAMPLEACCESSKEYID                      2/16/2015 9:12:28 PM                    examplesecretaccesskey...              SamPleTokeN.....
```
**Ejemplo 2: devuelve una instancia de `Amazon.RuntimeAWSCredentials` que contiene credenciales temporales válidas durante una hora. Las credenciales utilizadas para realizar la solicitud se obtienen del perfil especificado.**  

```
Get-STSSessionToken -DurationInSeconds 3600 -ProfileName myprofile
```
**Salida:**  

```
AccessKeyId                             Expiration                              SecretAccessKey                        SessionToken
-----------                             ----------                              ---------------                        ------------
EXAMPLEACCESSKEYID                      2/16/2015 9:12:28 PM                    examplesecretaccesskey...              SamPleTokeN.....
```
**Ejemplo 3: devuelve una instancia `Amazon.RuntimeAWSCredentials` que contiene credenciales temporales válidas durante una hora con el número de identificación del dispositivo MFA asociado a la cuenta, cuyas credenciales se especifican en el perfil “myprofilename” y el valor proporcionado por el dispositivo.**  

```
Get-STSSessionToken -DurationInSeconds 3600 -ProfileName myprofile -SerialNumber YourMFADeviceSerialNumber -TokenCode 123456
```
**Salida:**  

```
AccessKeyId                             Expiration                              SecretAccessKey                        SessionToken
-----------                             ----------                              ---------------                        ------------
EXAMPLEACCESSKEYID                      2/16/2015 9:12:28 PM                    examplesecretaccesskey...              SamPleTokeN.....
```
+  Para obtener información sobre la API, consulte [GetSessionToken](https://docs.aws.amazon.com/powershell/v4/reference) en la *Referencia de Cmdlet de las Herramientas de AWS para PowerShell (V4)*. 

**Herramientas para PowerShell V5**  
**Ejemplo 1: devuelve una instancia `Amazon.RuntimeAWSCredentials` que contiene credenciales temporales válidas durante un período de tiempo determinado. Las credenciales utilizadas para solicitar credenciales temporales se deducen de los valores predeterminados actuales del intérprete de comandos. Para especificar otras credenciales, utilice los parámetros -ProfileName o -AccessKey/-SecretKey.**  

```
Get-STSSessionToken
```
**Salida:**  

```
AccessKeyId                             Expiration                              SecretAccessKey                        SessionToken
-----------                             ----------                              ---------------                        ------------
EXAMPLEACCESSKEYID                      2/16/2015 9:12:28 PM                    examplesecretaccesskey...              SamPleTokeN.....
```
**Ejemplo 2: devuelve una instancia de `Amazon.RuntimeAWSCredentials` que contiene credenciales temporales válidas durante una hora. Las credenciales utilizadas para realizar la solicitud se obtienen del perfil especificado.**  

```
Get-STSSessionToken -DurationInSeconds 3600 -ProfileName myprofile
```
**Salida:**  

```
AccessKeyId                             Expiration                              SecretAccessKey                        SessionToken
-----------                             ----------                              ---------------                        ------------
EXAMPLEACCESSKEYID                      2/16/2015 9:12:28 PM                    examplesecretaccesskey...              SamPleTokeN.....
```
**Ejemplo 3: devuelve una instancia `Amazon.RuntimeAWSCredentials` que contiene credenciales temporales válidas durante una hora con el número de identificación del dispositivo MFA asociado a la cuenta, cuyas credenciales se especifican en el perfil “myprofilename” y el valor proporcionado por el dispositivo.**  

```
Get-STSSessionToken -DurationInSeconds 3600 -ProfileName myprofile -SerialNumber YourMFADeviceSerialNumber -TokenCode 123456
```
**Salida:**  

```
AccessKeyId                             Expiration                              SecretAccessKey                        SessionToken
-----------                             ----------                              ---------------                        ------------
EXAMPLEACCESSKEYID                      2/16/2015 9:12:28 PM                    examplesecretaccesskey...              SamPleTokeN.....
```
+  Para obtener información sobre la API, consulte [GetSessionToken](https://docs.aws.amazon.com/powershell/v5/reference) en la *Referencia de Cmdlet de las Herramientas de AWS para PowerShell (V5)*. 

------
#### [ Python ]

**SDK para Python (Boto3)**  
 Hay más en GitHub. Busque el ejemplo completo y aprenda a configurar y ejecutar en el [Repositorio de ejemplos de código de AWS](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/python/example_code/sts#code-examples). 
Obtenga un token de sesión al pasar un token MFA y utilícelo para enumerar los buckets de Amazon S3 de la cuenta.  

```
def list_buckets_with_session_token_with_mfa(mfa_serial_number, mfa_totp, sts_client):
    """
    Gets a session token with MFA credentials and uses the temporary session
    credentials to list Amazon S3 buckets.

    Requires an MFA device serial number and token.

    :param mfa_serial_number: The serial number of the MFA device. For a virtual MFA
                              device, this is an Amazon Resource Name (ARN).
    :param mfa_totp: A time-based, one-time password issued by the MFA device.
    :param sts_client: A Boto3 STS instance that has permission to assume the role.
    """
    if mfa_serial_number is not None:
        response = sts_client.get_session_token(
            SerialNumber=mfa_serial_number, TokenCode=mfa_totp
        )
    else:
        response = sts_client.get_session_token()
    temp_credentials = response["Credentials"]

    s3_resource = boto3.resource(
        "s3",
        aws_access_key_id=temp_credentials["AccessKeyId"],
        aws_secret_access_key=temp_credentials["SecretAccessKey"],
        aws_session_token=temp_credentials["SessionToken"],
    )

    print(f"Buckets for the account:")
    for bucket in s3_resource.buckets.all():
        print(bucket.name)
```
+  Para obtener detalles sobre la API, consulte [GetSessionToken](https://docs.aws.amazon.com/goto/boto3/sts-2011-06-15/GetSessionToken) en la *Referencia de la API del AWS SDK para Python (Boto3)*. 

------

## Llamada a AssumeRole con autenticación MFA
<a name="MFAProtectedAPI-example-assumerole"></a>

Los siguientes ejemplos muestran cómo llamar a `AssumeRole` y transmitir la información de autenticación MFA. Las credenciales de seguridad temporales devueltas por `AssumeRole` se utilizan para enumerar todos los buckets de Amazon S3 de la cuenta.

Para obtener más información acerca de esta situación, consulte [Situación: protección de MFA para la delegación entre cuentas](id_credentials_mfa_configure-api-require.md#MFAProtectedAPI-cross-account-delegation). 

Los siguientes ejemplos de código muestran cómo utilizar `AssumeRole`.

------
#### [ .NET ]

**SDK para .NET**  
 Hay más en GitHub. Busque el ejemplo completo y aprenda a configurar y ejecutar en el [Repositorio de ejemplos de código de AWS](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/dotnetv3/STS#code-examples). 

```
using System;
using System.Threading.Tasks;
using Amazon;
using Amazon.SecurityToken;
using Amazon.SecurityToken.Model;

namespace AssumeRoleExample
{
    class AssumeRole
    {
        /// <summary>
        /// This example shows how to use the AWS Security Token
        /// Service (AWS STS) to assume an IAM role.
        ///
        /// NOTE: It is important that the role that will be assumed has a
        /// trust relationship with the account that will assume the role.
        ///
        /// Before you run the example, you need to create the role you want to
        /// assume and have it trust the IAM account that will assume that role.
        ///
        /// See https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create.html
        /// for help in working with roles.
        /// </summary>

        // A region property may be used if the profile or credentials loaded do not specify a region,
        // or to use a specific region.
        private static readonly RegionEndpoint REGION = RegionEndpoint.USWest2;

        static async Task Main()
        {
            // Create the SecurityToken client and then display the identity of the
            // default user.
            var roleArnToAssume = "arn:aws:iam::123456789012:role/testAssumeRole";

            var client = new Amazon.SecurityToken.AmazonSecurityTokenServiceClient(REGION);

            // Get and display the information about the identity of the default user.
            var callerIdRequest = new GetCallerIdentityRequest();
            var caller = await client.GetCallerIdentityAsync(callerIdRequest);
            Console.WriteLine($"Original Caller: {caller.Arn}");

            // Create the request to use with the AssumeRoleAsync call.
            var assumeRoleReq = new AssumeRoleRequest()
            {
                DurationSeconds = 1600,
                RoleSessionName = "Session1",
                RoleArn = roleArnToAssume
            };

            var assumeRoleRes = await client.AssumeRoleAsync(assumeRoleReq);

            // Now create a new client based on the credentials of the caller assuming the role.
            var client2 = new AmazonSecurityTokenServiceClient(credentials: assumeRoleRes.Credentials, REGION);

            // Get and display information about the caller that has assumed the defined role.
            var caller2 = await client2.GetCallerIdentityAsync(callerIdRequest);
            Console.WriteLine($"AssumedRole Caller: {caller2.Arn}");
        }
    }
}
```
+  Para obtener información sobre la API, consulte [AssumeRole](https://docs.aws.amazon.com/goto/DotNetSDKV3/sts-2011-06-15/AssumeRole) en la *Referencia de la API de AWS SDK para .NET*. 

------
#### [ Bash ]

**AWS CLI con Bash script**  
 Hay más en GitHub. Busque el ejemplo completo y aprenda a configurar y ejecutar en el [Repositorio de ejemplos de código de AWS](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/aws-cli/bash-linux/iam#code-examples). 

```
###############################################################################
# function iecho
#
# This function enables the script to display the specified text only if
# the global variable $VERBOSE is set to true.
###############################################################################
function iecho() {
  if [[ $VERBOSE == true ]]; then
    echo "$@"
  fi
}

###############################################################################
# function errecho
#
# This function outputs everything sent to it to STDERR (standard error output).
###############################################################################
function errecho() {
  printf "%s\n" "$*" 1>&2
}

###############################################################################
# function sts_assume_role
#
# This function assumes a role in the AWS account and returns the temporary
#  credentials.
#
# Parameters:
#       -n role_session_name -- The name of the session.
#       -r role_arn -- The ARN of the role to assume.
#
# Returns:
#       [access_key_id, secret_access_key, session_token]
#     And:
#       0 - If successful.
#       1 - If an error occurred.
###############################################################################
function sts_assume_role() {
  local role_session_name role_arn response
  local option OPTARG # Required to use getopts command in a function.

  # bashsupport disable=BP5008
  function usage() {
    echo "function sts_assume_role"
    echo "Assumes a role in the AWS account and returns the temporary credentials:"
    echo "  -n role_session_name -- The name of the session."
    echo "  -r role_arn -- The ARN of the role to assume."
    echo ""
  }

  while getopts n:r:h option; do
    case "${option}" in
      n) role_session_name=${OPTARG} ;;
      r) role_arn=${OPTARG} ;;
      h)
        usage
        return 0
        ;;
      \?)
        echo "Invalid parameter"
        usage
        return 1
        ;;
    esac
  done

  response=$(aws sts assume-role \
    --role-session-name "$role_session_name" \
    --role-arn "$role_arn" \
    --output text \
    --query "Credentials.[AccessKeyId, SecretAccessKey, SessionToken]")

  local error_code=${?}

  if [[ $error_code -ne 0 ]]; then
    aws_cli_error_log $error_code
    errecho "ERROR: AWS reports create-role operation failed.\n$response"
    return 1
  fi

  echo "$response"

  return 0
}
```
+  Para obtener información sobre la API, consulte [AssumeRole](https://docs.aws.amazon.com/goto/aws-cli/sts-2011-06-15/AssumeRole) en la *Referencia de comandos de la AWS CLI*. 

------
#### [ C\$1\$1 ]

**SDK para C\$1\$1**  
 Hay más en GitHub. Busque el ejemplo completo y aprenda a configurar y ejecutar en el [Repositorio de ejemplos de código de AWS](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/cpp/example_code/sts#code-examples). 

```
bool AwsDoc::STS::assumeRole(const Aws::String &roleArn,
                             const Aws::String &roleSessionName,
                             const Aws::String &externalId,
                             Aws::Auth::AWSCredentials &credentials,
                             const Aws::Client::ClientConfiguration &clientConfig) {
    Aws::STS::STSClient sts(clientConfig);
    Aws::STS::Model::AssumeRoleRequest sts_req;

    sts_req.SetRoleArn(roleArn);
    sts_req.SetRoleSessionName(roleSessionName);
    sts_req.SetExternalId(externalId);

    const Aws::STS::Model::AssumeRoleOutcome outcome = sts.AssumeRole(sts_req);

    if (!outcome.IsSuccess()) {
        std::cerr << "Error assuming IAM role. " <<
                  outcome.GetError().GetMessage() << std::endl;
    }
    else {
        std::cout << "Credentials successfully retrieved." << std::endl;
        const Aws::STS::Model::AssumeRoleResult result = outcome.GetResult();
        const Aws::STS::Model::Credentials &temp_credentials = result.GetCredentials();

        // Store temporary credentials in return argument.
        // Note: The credentials object returned by assumeRole differs
        // from the AWSCredentials object used in most situations.
        credentials.SetAWSAccessKeyId(temp_credentials.GetAccessKeyId());
        credentials.SetAWSSecretKey(temp_credentials.GetSecretAccessKey());
        credentials.SetSessionToken(temp_credentials.GetSessionToken());
    }

    return outcome.IsSuccess();
}
```
+  Para obtener información sobre la API, consulte [AssumeRole](https://docs.aws.amazon.com/goto/SdkForCpp/sts-2011-06-15/AssumeRole) en la *Referencia de la API de AWS SDK para C\$1\$1*. 

------
#### [ CLI ]

**AWS CLI**  
**Cómo asumir un rol**  
El siguiente comando `assume-role` recupera un conjunto de credenciales a corto plazo para el rol de IAM `s3-access-example`.  

```
aws sts assume-role \
    --role-arn arn:aws:iam::123456789012:role/xaccounts3access \
    --role-session-name s3-access-example
```
Salida:  

```
{
    "AssumedRoleUser": {
        "AssumedRoleId": "AROA3XFRBF535PLBIFPI4:s3-access-example",
        "Arn": "arn:aws:sts::123456789012:assumed-role/xaccounts3access/s3-access-example"
    },
    "Credentials": {
        "SecretAccessKey": "9drTJvcXLB89EXAMPLELB8923FB892xMFI",
        "SessionToken": "AQoXdzELDDY//////////wEaoAK1wvxJY12r2IrDFT2IvAzTCn3zHoZ7YNtpiQLF0MqZye/qwjzP2iEXAMPLEbw/m3hsj8VBTkPORGvr9jM5sgP+w9IZWZnU+LWhmg+a5fDi2oTGUYcdg9uexQ4mtCHIHfi4citgqZTgco40Yqr4lIlo4V2b2Dyauk0eYFNebHtYlFVgAUj+7Indz3LU0aTWk1WKIjHmmMCIoTkyYp/k7kUG7moeEYKSitwQIi6Gjn+nyzM+PtoA3685ixzv0R7i5rjQi0YE0lf1oeie3bDiNHncmzosRM6SFiPzSvp6h/32xQuZsjcypmwsPSDtTPYcs0+YN/8BRi2/IcrxSpnWEXAMPLEXSDFTAQAM6Dl9zR0tXoybnlrZIwMLlMi1Kcgo5OytwU=",
        "Expiration": "2016-03-15T00:05:07Z",
        "AccessKeyId": "ASIAJEXAMPLEXEG2JICEA"
    }
}
```
El resultado del comando contiene una clave de acceso, una clave secreta y un token de sesión que puede utilizar para autenticarse con AWS.  
Para el uso de la CLI de AWS, puede configurar un perfil con nombre asociado a un rol. Cuando utilice el perfil, la CLI de AWS llamará a assume-role y administrará las credenciales por usted. Para obtener más información, consulte [Uso de un rol de IAM en la CLI de AWS](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-role.html) en la *Guía del usuario de la CLI de AWS*.  
+  Para obtener información sobre la API, consulte [AssumeRole](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/sts/assume-role.html) en la *Referencia de comandos de la AWS CLI*. 

------
#### [ Java ]

**SDK para Java 2.x**  
 Hay más en GitHub. Busque el ejemplo completo y aprenda a configurar y ejecutar en el [Repositorio de ejemplos de código de AWS](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/javav2/example_code/sts#code-examples). 

```
import software.amazon.awssdk.regions.Region;
import software.amazon.awssdk.services.sts.StsClient;
import software.amazon.awssdk.services.sts.model.AssumeRoleRequest;
import software.amazon.awssdk.services.sts.model.StsException;
import software.amazon.awssdk.services.sts.model.AssumeRoleResponse;
import software.amazon.awssdk.services.sts.model.Credentials;
import java.time.Instant;
import java.time.ZoneId;
import java.time.format.DateTimeFormatter;
import java.time.format.FormatStyle;
import java.util.Locale;

/**
 * To make this code example work, create a Role that you want to assume.
 * Then define a Trust Relationship in the AWS Console. You can use this as an
 * example:
 *
 * {
 * "Version":"2012-10-17",		 	 	 
 * "Statement": [
 * {
 * "Effect": "Allow",
 * "Principal": {
 * "AWS": "<Specify the ARN of your IAM user you are using in this code example>"
 * },
 * "Action": "sts:AssumeRole"
 * }
 * ]
 * }
 *
 * For more information, see "Editing the Trust Relationship for an Existing
 * Role" in the AWS Directory Service guide.
 *
 * Also, set up your development environment, including your credentials.
 *
 * For information, see this documentation topic:
 *
 * https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/get-started.html
 */
public class AssumeRole {
    public static void main(String[] args) {
        final String usage = """

                Usage:
                    <roleArn> <roleSessionName>\s

                Where:
                    roleArn - The Amazon Resource Name (ARN) of the role to assume (for example, arn:aws:iam::000008047983:role/s3role).\s
                    roleSessionName - An identifier for the assumed role session (for example, mysession).\s
                """;

        if (args.length != 2) {
            System.out.println(usage);
            System.exit(1);
        }

        String roleArn = args[0];
        String roleSessionName = args[1];
        Region region = Region.US_EAST_1;
        StsClient stsClient = StsClient.builder()
                .region(region)
                .build();

        assumeGivenRole(stsClient, roleArn, roleSessionName);
        stsClient.close();
    }

    public static void assumeGivenRole(StsClient stsClient, String roleArn, String roleSessionName) {
        try {
            AssumeRoleRequest roleRequest = AssumeRoleRequest.builder()
                    .roleArn(roleArn)
                    .roleSessionName(roleSessionName)
                    .build();

            AssumeRoleResponse roleResponse = stsClient.assumeRole(roleRequest);
            Credentials myCreds = roleResponse.credentials();

            // Display the time when the temp creds expire.
            Instant exTime = myCreds.expiration();
            String tokenInfo = myCreds.sessionToken();

            // Convert the Instant to readable date.
            DateTimeFormatter formatter = DateTimeFormatter.ofLocalizedDateTime(FormatStyle.SHORT)
                    .withLocale(Locale.US)
                    .withZone(ZoneId.systemDefault());

            formatter.format(exTime);
            System.out.println("The token " + tokenInfo + "  expires on " + exTime);

        } catch (StsException e) {
            System.err.println(e.getMessage());
            System.exit(1);
        }
    }
}
```
+  Para obtener información sobre la API, consulte [AssumeRole](https://docs.aws.amazon.com/goto/SdkForJavaV2/sts-2011-06-15/AssumeRole) en la *Referencia de la API de AWS SDK for Java 2.x*. 

------
#### [ JavaScript ]

**SDK para JavaScript (v3)**  
 Hay más en GitHub. Busque el ejemplo completo y aprenda a configurar y ejecutar en el [Repositorio de ejemplos de código de AWS](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/javascriptv3/example_code/sts#code-examples). 
Cree el cliente.  

```
import { STSClient } from "@aws-sdk/client-sts";
// Set the AWS Region.
const REGION = "us-east-1";
// Create an AWS STS service client object.
export const client = new STSClient({ region: REGION });
```
Asuma el rol de IAM.  

```
import { AssumeRoleCommand } from "@aws-sdk/client-sts";

import { client } from "../libs/client.js";

export const main = async () => {
  try {
    // Returns a set of temporary security credentials that you can use to
    // access Amazon Web Services resources that you might not normally
    // have access to.
    const command = new AssumeRoleCommand({
      // The Amazon Resource Name (ARN) of the role to assume.
      RoleArn: "ROLE_ARN",
      // An identifier for the assumed role session.
      RoleSessionName: "session1",
      // The duration, in seconds, of the role session. The value specified
      // can range from 900 seconds (15 minutes) up to the maximum session
      // duration set for the role.
      DurationSeconds: 900,
    });
    const response = await client.send(command);
    console.log(response);
  } catch (err) {
    console.error(err);
  }
};
```
+  Para obtener información sobre la API, consulte [AssumeRole](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/sts/command/AssumeRoleCommand) en la *Referencia de la API de AWS SDK para JavaScript*. 

**SDK para JavaScript (v2)**  
 Hay más en GitHub. Busque el ejemplo completo y aprenda a configurar y ejecutar en el [Repositorio de ejemplos de código de AWS](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/javascript/example_code/sts#code-examples). 

```
// Load the AWS SDK for Node.js
const AWS = require("aws-sdk");
// Set the region
AWS.config.update({ region: "REGION" });

var roleToAssume = {
  RoleArn: "arn:aws:iam::123456789012:role/RoleName",
  RoleSessionName: "session1",
  DurationSeconds: 900,
};
var roleCreds;

// Create the STS service object
var sts = new AWS.STS({ apiVersion: "2011-06-15" });

//Assume Role
sts.assumeRole(roleToAssume, function (err, data) {
  if (err) console.log(err, err.stack);
  else {
    roleCreds = {
      accessKeyId: data.Credentials.AccessKeyId,
      secretAccessKey: data.Credentials.SecretAccessKey,
      sessionToken: data.Credentials.SessionToken,
    };
    stsGetCallerIdentity(roleCreds);
  }
});

//Get Arn of current identity
function stsGetCallerIdentity(creds) {
  var stsParams = { credentials: creds };
  // Create STS service object
  var sts = new AWS.STS(stsParams);

  sts.getCallerIdentity({}, function (err, data) {
    if (err) {
      console.log(err, err.stack);
    } else {
      console.log(data.Arn);
    }
  });
}
```
+  Para obtener información sobre la API, consulte [AssumeRole](https://docs.aws.amazon.com/goto/AWSJavaScriptSDK/sts-2011-06-15/AssumeRole) en la *Referencia de la API de AWS SDK para JavaScript*. 

------
#### [ PowerShell ]

**Herramientas para PowerShell V4**  
**Ejemplo 1: devuelve un conjunto de credenciales temporales (clave de acceso, clave secreta y token de sesión) que se pueden usar durante una hora para acceder a recursos de AWS a los que el usuario solicitante normalmente no tendría acceso. Las credenciales devueltas tienen los permisos permitidos por la política de acceso del rol que se está asumiendo y por la política proporcionada (no se puede usar la política proporcionada para conceder permisos superiores a los definidos en la política de acceso del rol que se está asumiendo).**  

```
Use-STSRole -RoleSessionName "Bob" -RoleArn "arn:aws:iam::123456789012:role/demo" -Policy "...JSON policy..." -DurationInSeconds 3600
```
**Ejemplo 2: devuelve un conjunto de credenciales temporales, válidas durante una hora, que tienen los mismos permisos que se definen en la política de acceso del rol que se está asumiendo.**  

```
Use-STSRole -RoleSessionName "Bob" -RoleArn "arn:aws:iam::123456789012:role/demo" -DurationInSeconds 3600
```
**Ejemplo 3: devuelve un conjunto de credenciales temporales que proporcionan el número de serie y el token generado a partir de una MFA asociada a las credenciales de usuario utilizadas para ejecutar el cmdlet.**  

```
Use-STSRole -RoleSessionName "Bob" -RoleArn "arn:aws:iam::123456789012:role/demo" -DurationInSeconds 3600 -SerialNumber "GAHT12345678" -TokenCode "123456"
```
**Ejemplo 4: devuelve un conjunto de credenciales temporales que han asumido un rol definido en la cuenta de un cliente. Para cada rol que el tercero pueda asumir, la cuenta del cliente debe crear un rol con un identificador que se debe pasar en el parámetro -ExternalId cada vez que se asuma el rol.**  

```
Use-STSRole -RoleSessionName "Bob" -RoleArn "arn:aws:iam::123456789012:role/demo" -DurationInSeconds 3600 -ExternalId "ABC123"
```
+  Para obtener información sobre la API, consulte [AssumeRole](https://docs.aws.amazon.com/powershell/v4/reference) en la *Referencia de Cmdlet de las Herramientas de AWS para PowerShell (V4)*. 

**Herramientas para PowerShell V5**  
**Ejemplo 1: devuelve un conjunto de credenciales temporales (clave de acceso, clave secreta y token de sesión) que se pueden usar durante una hora para acceder a recursos de AWS a los que el usuario solicitante normalmente no tendría acceso. Las credenciales devueltas tienen los permisos permitidos por la política de acceso del rol que se está asumiendo y por la política proporcionada (no se puede usar la política proporcionada para conceder permisos superiores a los definidos en la política de acceso del rol que se está asumiendo).**  

```
Use-STSRole -RoleSessionName "Bob" -RoleArn "arn:aws:iam::123456789012:role/demo" -Policy "...JSON policy..." -DurationInSeconds 3600
```
**Ejemplo 2: devuelve un conjunto de credenciales temporales, válidas durante una hora, que tienen los mismos permisos que se definen en la política de acceso del rol que se está asumiendo.**  

```
Use-STSRole -RoleSessionName "Bob" -RoleArn "arn:aws:iam::123456789012:role/demo" -DurationInSeconds 3600
```
**Ejemplo 3: devuelve un conjunto de credenciales temporales que proporcionan el número de serie y el token generado a partir de una MFA asociada a las credenciales de usuario utilizadas para ejecutar el cmdlet.**  

```
Use-STSRole -RoleSessionName "Bob" -RoleArn "arn:aws:iam::123456789012:role/demo" -DurationInSeconds 3600 -SerialNumber "GAHT12345678" -TokenCode "123456"
```
**Ejemplo 4: devuelve un conjunto de credenciales temporales que han asumido un rol definido en la cuenta de un cliente. Para cada rol que el tercero pueda asumir, la cuenta del cliente debe crear un rol con un identificador que se debe pasar en el parámetro -ExternalId cada vez que se asuma el rol.**  

```
Use-STSRole -RoleSessionName "Bob" -RoleArn "arn:aws:iam::123456789012:role/demo" -DurationInSeconds 3600 -ExternalId "ABC123"
```
+  Para obtener información sobre la API, consulte [AssumeRole](https://docs.aws.amazon.com/powershell/v5/reference) en la *Referencia de Cmdlet de las Herramientas de AWS para PowerShell (V5)*. 

------
#### [ Python ]

**SDK para Python (Boto3)**  
 Hay más en GitHub. Busque el ejemplo completo y aprenda a configurar y ejecutar en el [Repositorio de ejemplos de código de AWS](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/python/example_code/sts#code-examples). 
Asuma un rol de IAM que requiera un token MFA y utilice credenciales temporales para enumerar los buckets de Amazon S3 para la cuenta.  

```
def list_buckets_from_assumed_role_with_mfa(
    assume_role_arn, session_name, mfa_serial_number, mfa_totp, sts_client
):
    """
    Assumes a role from another account and uses the temporary credentials from
    that role to list the Amazon S3 buckets that are owned by the other account.
    Requires an MFA device serial number and token.

    The assumed role must grant permission to list the buckets in the other account.

    :param assume_role_arn: The Amazon Resource Name (ARN) of the role that
                            grants access to list the other account's buckets.
    :param session_name: The name of the STS session.
    :param mfa_serial_number: The serial number of the MFA device. For a virtual MFA
                              device, this is an ARN.
    :param mfa_totp: A time-based, one-time password issued by the MFA device.
    :param sts_client: A Boto3 STS instance that has permission to assume the role.
    """
    response = sts_client.assume_role(
        RoleArn=assume_role_arn,
        RoleSessionName=session_name,
        SerialNumber=mfa_serial_number,
        TokenCode=mfa_totp,
    )
    temp_credentials = response["Credentials"]
    print(f"Assumed role {assume_role_arn} and got temporary credentials.")

    s3_resource = boto3.resource(
        "s3",
        aws_access_key_id=temp_credentials["AccessKeyId"],
        aws_secret_access_key=temp_credentials["SecretAccessKey"],
        aws_session_token=temp_credentials["SessionToken"],
    )

    print(f"Listing buckets for the assumed role's account:")
    for bucket in s3_resource.buckets.all():
        print(bucket.name)
```
+  Para obtener información sobre la API, consulte [AssumeRole](https://docs.aws.amazon.com/goto/boto3/sts-2011-06-15/AssumeRole) en la *Referencia de la API del AWS SDK para Python (Boto3)*. 

------
#### [ Ruby ]

**SDK para Ruby**  
 Hay más en GitHub. Busque el ejemplo completo y aprenda a configurar y ejecutar en el [Repositorio de ejemplos de código de AWS](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/ruby/example_code/iam#code-examples). 

```
  # Creates an AWS Security Token Service (AWS STS) client with specified credentials.
  # This is separated into a factory function so that it can be mocked for unit testing.
  #
  # @param key_id [String] The ID of the access key used by the STS client.
  # @param key_secret [String] The secret part of the access key used by the STS client.
  def create_sts_client(key_id, key_secret)
    Aws::STS::Client.new(access_key_id: key_id, secret_access_key: key_secret)
  end

  # Gets temporary credentials that can be used to assume a role.
  #
  # @param role_arn [String] The ARN of the role that is assumed when these credentials
  #                          are used.
  # @param sts_client [AWS::STS::Client] An AWS STS client.
  # @return [Aws::AssumeRoleCredentials] The credentials that can be used to assume the role.
  def assume_role(role_arn, sts_client)
    credentials = Aws::AssumeRoleCredentials.new(
      client: sts_client,
      role_arn: role_arn,
      role_session_name: 'create-use-assume-role-scenario'
    )
    @logger.info("Assumed role '#{role_arn}', got temporary credentials.")
    credentials
  end
```
+  Para obtener información sobre la API, consulte [AssumeRole](https://docs.aws.amazon.com/goto/SdkForRubyV3/sts-2011-06-15/AssumeRole) en la *Referencia de la API de AWS SDK para Ruby*. 

------
#### [ Rust ]

**SDK para Rust**  
 Hay más en GitHub. Busque el ejemplo completo y aprenda a configurar y ejecutar en el [Repositorio de ejemplos de código de AWS](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/rustv1/examples/sts/#code-examples). 

```
async fn assume_role(config: &SdkConfig, role_name: String, session_name: Option<String>) {
    let provider = aws_config::sts::AssumeRoleProvider::builder(role_name)
        .session_name(session_name.unwrap_or("rust_sdk_example_session".into()))
        .configure(config)
        .build()
        .await;

    let local_config = aws_config::from_env()
        .credentials_provider(provider)
        .load()
        .await;
    let client = Client::new(&local_config);
    let req = client.get_caller_identity();
    let resp = req.send().await;
    match resp {
        Ok(e) => {
            println!("UserID :               {}", e.user_id().unwrap_or_default());
            println!("Account:               {}", e.account().unwrap_or_default());
            println!("Arn    :               {}", e.arn().unwrap_or_default());
        }
        Err(e) => println!("{:?}", e),
    }
}
```
+  Para obtener información sobre la API, consulte [AssumeRole](https://docs.rs/aws-sdk-sts/latest/aws_sdk_sts/client/struct.Client.html#method.assume_role) en la *Referencia de la API de AWS SDK para Rust*. 

------
#### [ Swift ]

**SDK para Swift**  
 Hay más en GitHub. Busque el ejemplo completo y aprenda a configurar y ejecutar en el [Repositorio de ejemplos de código de AWS](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/swift/example_code/iam#code-examples). 

```
import AWSSTS

    public func assumeRole(role: IAMClientTypes.Role, sessionName: String)
        async throws -> STSClientTypes.Credentials
    {
        let input = AssumeRoleInput(
            roleArn: role.arn,
            roleSessionName: sessionName
        )
        do {
            let output = try await stsClient.assumeRole(input: input)

            guard let credentials = output.credentials else {
                throw ServiceHandlerError.authError
            }

            return credentials
        } catch {
            print("Error assuming role: ", dump(error))
            throw error
        }
    }
```
+  Para obtener información sobre la API, consulte [AssumeRole](https://sdk.amazonaws.com/swift/api/awssts/latest/documentation/awssts/stsclient/assumerole(input:)) en la *Referencia de la API de AWS SDK para Swift*. 

------