

# IAM 中的 AWS 多重身份验证
<a name="id_credentials_mfa"></a>

为增强安全性，我们建议您配置 Multi-Factor Authentication (MFA) 以帮助保护 AWS 资源。您可以为所有 AWS 账户 的 AWS 账户根用户（包括独立账户、管理账户和成员账户）以及您的 IAM 用户启用 MFA。我们建议您尽可能使用防网络钓鱼的 MFA，例如通行密钥和安全密钥。这些基于 Fido 的身份验证器使用公钥加密技术，可抵御网络钓鱼、中间人和重放攻击，比基于 TOTP 的选项具有更强的安全级别。

对于根用户的所有账户类型，均强制实施 MFA。有关更多信息，请参阅 [保护您的 AWS Organizations 账户的根用户凭证](root-user-best-practices.md#ru-bp-organizations)。

当您为根用户启用 MFA 时，这只会影响根用户凭证。账户中的 IAM 用户是具有自己的凭证的不同身份，并且每个身份具有自己的 MFA 配置。有关使用 MFA 保护根用户的更多信息，请参阅 [AWS 账户根用户 的多重身份验证](enable-mfa-for-root.md)。

您的 AWS 账户根用户 和 IAM 用户最多可以注册 8 台任何类型的 MFA 设备。注册多台 MFA 设备可以提供灵活性，帮助您降低设备丢失或损坏时访问中断的风险。只需一台 MFA 设备即可登录 AWS 管理控制台 或通过 AWS CLI 创建会话。

**注意**  
我们建议您要求您的人类用户在访问 AWS 时使用临时凭证。您是否考虑过使用 AWS IAM Identity Center？ 您可以使用 IAM Identity Center 集中管理对多个 AWS 账户 的访问权限，并为用户提供受 MFA 保护的单点登录访问权限，可从一个位置访问其分配的所有账户。借助 IAM Identity Center，您可以在 IAM Identity Center 中创建和管理用户身份，或者轻松连接到现有的 SAML 2.0 兼容身份提供者。有关更多信息，请参阅*《AWS IAM Identity Center 用户指南》*中的[什么是 IAM Identity Center？](https://docs.aws.amazon.com/singlesignon/latest/userguide/what-is.html)。

MFA 增加了额外安全性，要求用户在访问 AWS 网站或服务时除了提供登录凭证之外，还需提供 AWS 支持的 MFA 机制的唯一身份验证。

## MFA 类型
<a name="id_credentials_mfa-types"></a>

AWS 支持以下 MFA 类型：

**Contents**
+ [通行密钥和安全密钥](#passkeys-security-keys-for-iam-users)
+ [虚拟身份验证器应用程序](#virtual-auth-apps-for-iam-users)
+ [硬件 TOTP 令牌](#hardware-totp-token-for-iam-users)

### 通行密钥和安全密钥
<a name="passkeys-security-keys-for-iam-users"></a>

AWS Identity and Access Management 对 MFA 支持通行密钥和安全密钥。基于 FIDO 标准，通行密钥使用公有密钥加密技术来提供比密码更安全的强大防网络钓鱼身份验证。AWS 支持两种类型的通行密钥：设备绑定通行密钥（安全密钥）和同步通行密钥。
+ **安全密钥**：这些是物理设备，例如 YubiKey，用作身份验证的第二个因素。单个安全密钥可以支持多个根用户账户和 IAM 用户。
+ **同步通行密钥**：它们使用来自 Google、Apple、Microsoft 账户等提供商的凭证管理器以及第三方服务（例如 1Password、Dashlane 和 Bitwarden）作为第二个因素。

您可以使用内置生物识别身份验证器（例如，Apple MacBook 上的 Touch ID）来解锁凭证管理器并登录 AWS。通行密钥是通过您选择的提供商使用您的指纹、面部或设备 PIN 创建的。您还可以使用一台设备（如移动设备或硬件安全密钥）上的跨设备身份验证 (CDA) 密钥在另一台设备（如笔记本电脑）上登录。有关更多信息，请参阅[跨设备身份验证](https://passkeys.dev/docs/reference/terms/#cross-device-authentication-cda) (CDA)。

您可以跨设备同步通行密钥以方便登录 AWS，从而增强可用性和可恢复性。有关启用通行密钥和安全密钥的更多信息，请参阅 [为根用户启用密钥或安全密钥（控制台）](enable-fido-mfa-for-root.md)。

FIDO 联盟维护一份与 FIDO 规范兼容的所有经 [FIDO 认证产品](https://fidoalliance.org/certification/fido-certified-products/)的列表。

### 虚拟身份验证器应用程序
<a name="virtual-auth-apps-for-iam-users"></a>

虚拟身份验证器应用程序在电话或其他设备上运行，并模拟物理设备。虚拟身份验证器应用程序采用[基于时间的一次性密码](https://datatracker.ietf.org/doc/html/rfc6238)（TOTP）算法，并支持单个设备上的多个令牌。在登录期间，用户必须在出现提示时从该设备键入有效代码。分配给用户的每个令牌必须是唯一的。用户无法从另一个用户的令牌键入代码来进行身份验证。

我们建议您使用防网络钓鱼的 MFA，[例如通行密钥或安全密钥，以获得](#passkeys-security-keys-for-iam-users)最强的保护。如果您还不能使用通行密钥或安全密钥，我们建议您在等待硬件购买批准或等待硬件到达时，使用虚拟 MFA 设备作为临时措施。有关可用作虚拟 MFA 设备的一些受支持应用程序的列表，请参阅[多重身份验证（MFA）](https://aws.amazon.com/iam/features/mfa/?audit=2019q1)。

有关为 IAM 用户设置虚拟 MFA 设备的说明，请参阅 [在 AWS 管理控制台 中分配虚拟 MFA 设备](id_credentials_mfa_enable_virtual.md)。

**注意**  
当您通过 AWS 管理控制台或在登录过程中添加新的虚拟 MFA 设备时，系统会删除您的 AWS 账户中未分配的虚拟 MFA 设备。未分配的虚拟 MFA 设备是指您账户中的设备，但在登录过程中不被账户根用户或 IAM 用户使用。已删除这些设备，因此可以向您的账户添加新的虚拟 MFA 设备。它还允许您重复使用设备名称。  
要查看账户中未分配的虚拟 MFA 设备，您可以使用 [list-virtual-mfa-devices](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iam/list-virtual-mfa-devices.html) AWS CLI 命令或 [API](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListVirtualMFADevices.html) call 调用。
要停用虚拟 MFA 设备，您可以使用 [deactivate-mfa-device](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iam/deactivate-mfa-device.html) AWS CLI 命令或 [API](https://docs.aws.amazon.com/IAM/latest/APIReference/API_DeactivateMFADevice.html) 调用。设备将变为未分配状态。
要将未分配的虚拟 MFA 设备附加到您的 AWS 账户根用户或 IAM 用户，您需要设备生成的身份验证码，以及 [enable-mfa-device](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iam/enable-mfa-device.html) AWS CLI 命令或 [API](https://docs.aws.amazon.com/IAM/latest/APIReference/API_EnableMFADevice.html) 调用。

### 硬件 TOTP 令牌
<a name="hardware-totp-token-for-iam-users"></a>

硬件设备以[基于时间的一次性密码（TOTP）算法](https://datatracker.ietf.org/doc/html/rfc6238)为基础生成六位数字代码。在登录时，用户必须在另一个网页上键入来自该设备的有效代码。

这些令牌仅与 AWS 账户 一起使用。您只能使用具有与 AWS 安全共享的唯一令牌种子的令牌。令牌种子是在制作令牌时生成的私有密钥。从其他来源购买的令牌不能用于 IAM。为确保兼容性，您必须通过以下链接之一购买硬件 MFA 设备：[OTP 令牌](https://www.amazon.com/SafeNet-IDProve-Time-based-6-Digit-Services/dp/B002CRN5X8)或 [OTP 显卡](https://www.amazon.com/SafeNet-IDProve-Card-Amazon-Services/dp/B00J4NGUO4)。
+ 分配给用户的每台 MFA 设备必须是唯一的。用户无法从另一个用户的设备键入代码来进行身份验证。有关受支持硬件 MFA 设备的信息，请参阅[多重身份验证（MFA）](https://aws.amazon.com/iam/features/mfa/?audit=2019q1)。
+ 如果想使用物理 MFA 设备，我们建议使用安全密钥来代替硬件 TOTP 设备。安全密钥不需要电池，具有防网络钓鱼功能，并可在一台设备上支持多个用户。

您只能从 AWS 管理控制台 启用密钥或安全密钥，而不能从 AWS CLI 或 AWS API 启用。在启用安全密钥之前，您必须对设备拥有物理访问权限。

有关为 IAM 用户设置硬件 TOTP 令牌的说明，请参阅 [在 AWS 管理控制台 中分配硬件 TOTP 令牌](id_credentials_mfa_enable_physical.md)。

**注意**  
**基于 SMS 短信的 MFA** – AWS 已终止对短信多重身份验证（MFA）的支持。我们建议拥有使用基于短信的 MFA 的 IAM 用户的客户切换到以下替代方法之一：[密码或安全密钥](id_credentials_mfa_enable_fido.md)、[虚拟（基于软件）MFA 设备](id_credentials_mfa_enable_virtual.md)或[硬件 MFA 设备](id_credentials_mfa_enable_physical.md)。您可以确定账户中拥有已分配短信 MFA 设备的用户。在 IAM 控制台中，从导航窗格中选择**用户**，然后在表的 **MFA** 列中查找具有 **SMS** 的用户。

## MFA 建议
<a name="id_credentials_mfa-recommendations"></a>

为了帮助保护您的 AWS 身份，请遵循以下 MFA 身份验证建议。
+ 我们建议您使用防网络钓鱼的 MFA（例如通行密钥和安全密钥 ）作为 MFA 设备。这些基于 Fido 的身份验证器可针对网络钓鱼等攻击提供最强大的保护。
+ 我们建议您在您的 AWS 账户 中为 AWS 账户根用户 和 IAM 用户启用多台 MFA 设备。这可以使您提高 AWS 账户 中的安全门槛，简化对高权限用户（例如 AWS 账户根用户）的访问管理。
+ 您最多可以向 AWS 账户根用户 和 IAM 用户注册 **8** 台[当前支持的 MFA 类型](https://aws.amazon.com/iam/features/mfa/)任意组合的 MFA 设备。注册多台 MFA 设备后，只需一台 MFA 设备即可以该用户的身份登录 AWS 管理控制台 或通过 AWS CLI 创建会话。IAM 用户必须使用现有的 MFA 设备进行身份验证，然后才能启用或禁用其他 MFA 设备。
+ 如果 MFA 设备丢失、被盗或无法访问，您可以使用剩余 MFA 设备中的一台访问 AWS 账户，而无需执行 AWS 账户 恢复程序。如果 MFA 设备遗失或被盗，应将解除该设备与所关联 IAM 主体的关联。
+ 通过使用多个 MFA，在地理位置上分散或进行远程办公的员工可以使用基于硬件的 MFA 访问 AWS，同时无需在员工之间协调单个硬件设备的实物交换。
+ 通过为 IAM 主体使用额外的 MFA 设备，您使用一个或多个 MFA 来满足日常需要，同时在安全的物理位置（例如保管库或保险柜）保存物理 MFA 设备，以满足备份和冗余的需要。

**备注**  
您无法将安全密钥或通行密钥的 MFA 信息传递给 AWS STS API 操作来请求临时凭证。使用安全密钥或通行密钥时，您可通过运行 `aws login` 命令获取与 AWS CLI 和 AWS SDK 配合使用的凭证。
您无法使用 AWS CLI 命令或 AWS API 操作来启用 [FIDO 安全密钥](id_credentials_mfa_enable_fido.md)。
多个根用户或 IAM MFA 设备不能使用相同的名称。

## 其他资源
<a name="id_credentials_mfa-resources"></a>

以下资源可帮助您了解有关 MFA 的更多信息。
+ 有关使用 MFA 访问 AWS 的更多信息，请参阅 [已启用 MFA 的登录](console_sign-in-mfa.md)。
+  您可以利用 IAM Identity Center 来启用对 AWS 访问门户、IAM Identity Center 集成应用以及 AWS CLI 的安全访问。有关更多信息，请参阅[在 IAM Identity Center 中启用 MFA](https://docs.aws.amazon.com/singlesignon/latest/userguide/mfa-getting-started.html)。