# 多因素认证MFA启用计划

多因素认证（multi-factor authentication）是保护弱凭证或防止凭证被盗的最佳方式，我们**想强调任何类型的MFA都比没有MFA要好。**&#x4D;FA是你可以应用到你的账户上最简单但最有效的安全控制之一，每个人都应该使用某种形式的MFA。然而，了解不同类型的MFA之间的一些关键差异在决定个人使用或在公司部署时是有用的。

## 什么是MFA？

### 虚拟MFA

虚拟MFA利用智能手机或其他移动设备生成一次性密码(OTP)，这些密码通常通过Google Authenticator、Authy或微软Authenticator等应用程序生成。用户在尝试登录时必须输入这些临时生成的密码，从而增加了一层额外的验证，增强了账户的安全性。虚拟MFA很容易部署且不需要额外的物理设备，是一种方便且有效的多因素认证方式。

### Passkey MFA

全球数十亿计算机和移动设备上已经使用了密码，使用内置于他们设备中的安全机制，例如指纹、面部扫描或PIN。例如，你可以在iPhone上配置Apple Touch ID，或在笔记本电脑上配置Windows Hello作为你的认证器，然后使用相同的密码作为你登录AWS控制台的MFA方法，跨多个你拥有的设备。

### 硬件MFA

硬件MFA依赖于物理设备，如YubiKey或RSA SecurID，这些设备能够生成一次性密码或采用其他认证方法（如FIDO U2F）。用户在尝试登录时需要插入或接触这些硬件设备，从而得到一个唯一的验证码或完成认证请求。硬件MFA提供了更高的安全性，因为它需要实际拥有这个物理设备，降低了被破解的可能性。同时，硬件MFA适用于高安全性需求的环境，但成本和管理相对较高。

## 为什么开启MFA很重要？

如果缺少多因素认证（MFA），会有以下风险：

1. **账户被盗风险增加**：没有MFA，攻击者可能仅通过获取密码就能非法访问账户。
2. **敏感数据泄露**：未经授权的访问者可能会窃取敏感信息，如个人身份数据、财务记录或商业机密。
3. **欺诈行为**：攻击者可能利用非法获得的访问权限进行欺诈行为，如转移资金或进行未经授权的交易。
4. **违反合规性要求**：许多行业标准和法规要求实施MFA来保护敏感数据，缺少MFA可能导致合规性问题。
5. **信誉损失**：数据泄露或安全事件可能损害组织的声誉，导致客户信任下降。
6. **法律责任**：未能采取适当的安全措施，如MFA，可能导致组织面临法律责任和罚款。
7. **增加恶意软件感染风险**：未授权的访问者可能会在系统中安装恶意软件，如勒索软件或间谍软件。
8. **内部威胁**：缺少MFA可能使得内部人员更容易滥用他们的访问权限。
9. **难以追踪和监控**：没有MFA，当账户被非法访问时，可能更难以追踪和监控到这些活动。
10. **财务损失**：安全事件可能导致直接的财务损失，包括支付给攻击者的赎金、修复成本和业务中断损失。
11. **客户流失**：客户可能会因为安全问题而转向竞争对手，导致客户流失。
12. **操作复杂性增加**：在没有MFA的情况下，可能需要更多的手动安全检查和监控，增加了操作的复杂性和成本。

因此，实施MFA是保护组织免受这些风险的重要步骤，它提供了一个重要的安全层，显著提高了账户和数据的安全性。

## **如何选择合适的MFA**

1. **硬件MFA**：在安全性是首要考虑，且不计成本的企业中。
2. **Passkey MFA**：适合追求高安全性和便捷性的个人用户，尤其是在使用支持FIDO2的现代设备时比如苹果手机，苹果电脑可以通过Passkey MFA获得额外的安全性。
3. **虚拟MFA**：适合需要额外安全层但预算有限或不想使用额外硬件的用户。

在选择MFA方案时，应根据组织的安全需求、用户的使用习惯以及成本效益进行综合考虑。

## 设定计划启用MFA

### 1-开启管理账户根用户的MFA

管理账户是权限最大的账户，根用户是账户中权限最大的一个用户。因此保护好这个用户至关重要。建议选择硬件MFA进行保护，并且平时不要使用，仅在必须使用到根用户权限时才用。可以创建一个新的用户执行日常的操作，哪怕是授予了Admin权限的普通用户也比直接使用根用户要强。

### 2-开启成员账户根用户的MFA

成员账户会受到管理账户的控制，但是成员账户的根用户同样是账户中权限最大的一个用户。如果丢失会造成严重的安全隐患

### 3-开启普通IAM用户的MFA

授予IAM用户开启MFA的权限，并且可以进一步限制只有当通过MFA登录的IAM用户才能够正常使用原来的操作。如果增加了限制，则可以通过邮件通知IAM用户的持有者这一消息。关于如何给IAM用户授权开启MFA可以参考此文档：<https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_examples_aws_my-sec-creds-self-manage.html>

## 如何开启MFA

### 1-使用FIDO2硬件MFA/通行密钥或安全密钥

购买FIDO2的硬件MFA，比如从亚马逊网站上采购，检索关键字“FIDO2 security key”，比如购买[Identiv uTrust FIDO2 NFC+ Security Key USB-A (FIDO2, U2F, PIV, TOTP, HOTP, WebAuth)](https://www.amazon.com/sspa/click?ie=UTF8\&spc=MTo4OTExMTA1NTgwMTk4MzUyOjE3MjExMDYzMTc6c3BfYXRmOjIwMDE0NTI4MTgxOTc5ODo6MDo6\&url=%2FIdentiv-uTrust-NFC-Security-WebAuth%2Fdp%2FB09XSQP9RD%2Fref%3Dsr_1_1_sspa%3Fcrid%3D1YL9FCPI1SSTS%26dib%3DeyJ2IjoiMSJ9.XE1B5UnWd9j1TyDHhcr1lsm-tlYt5XW6TkAfcc1UGMc8tAnXjcbWYRu3GdGMNevhDPExNn2z7nAtj8Kdt8Dw0P13fJUsiCrjpl0WTXXZmpyjJzAK78q3AJRKKf4c3IlhnQTvcOSStRs8C-zlFMmpeBUxdyRbqt6K_izKe7z9CBo7EXLEMgJdudJ-H8U6rx0Y1RF5XJtIhnp8RUfneykIXHy45fn48ce0aWzk9OLc9eI.LMo2Df3GZR8eJeVm7mOa53tK0-dcStw3m7rXPycJRjo%26dib_tag%3Dse%26keywords%3DFIDO2%2Bsecurity%2Bkey%26qid%3D1721106317%26sprefix%3Dfido2%2Bsecurity%2Bke%252Caps%252C492%26sr%3D8-1-spons%26sp_csd%3Dd2lkZ2V0TmFtZT1zcF9hdGY%26psc%3D1)，或者[Yubico - Security Key NFC - Black - Two-Factor authentication (2FA) Security Key, Connect via USB-A or NFC, FIDO U2F/FIDO2 Certified](https://www.amazon.com/Security-Key-NFC-Yubico-authentication/dp/B0BVNPWPCN/ref=sr_1_3?crid=1YL9FCPI1SSTS\&dib=eyJ2IjoiMSJ9.XE1B5UnWd9j1TyDHhcr1lsm-tlYt5XW6TkAfcc1UGMc8tAnXjcbWYRu3GdGMNevhDPExNn2z7nAtj8Kdt8Dw0P13fJUsiCrjpl0WTXXZmpyjJzAK78q3AJRKKf4c3IlhnQTvcOSStRs8C-zlFMmpeBUxdyRbqt6K_izKe7z9CBo7EXLEMgJdudJ-H8U6rx0Y1RF5XJtIhnp8RUfneykIXHy45fn48ce0aWzk9OLc9eI.LMo2Df3GZR8eJeVm7mOa53tK0-dcStw3m7rXPycJRjo\&dib_tag=se\&keywords=FIDO2+security+key\&qid=1721106317\&sprefix=fido2+security+ke%2Caps%2C492\&sr=8-3)。

在 AWS 控制台中绑定 FIDO2 硬件 MFA 的步骤如下：

1. **登录 AWS 管理控制台：** 使用您的 AWS 账户 ID 和密码登录 AWS 管理控制台。
2. **访问 IAM 控制台：** 在控制台导航栏中，找到并点击 **IAM**。
3. **选择您的 IAM 用户：** 在 IAM 控制台左侧的导航栏中，点击 **Users**，然后选择您要绑定 FIDO2 设备的 IAM 用户。
4. **进入安全凭证页面：** 在用户页面中，点击 **Security Credentials** 选项卡。
5. **启用 MFA：** 在 **Multi-factor authentication (MFA)** 部分，点击 **Assign MFA device** 按钮。
6. **选择设备类型：** 在 **MFA device name** 页面中，为您的 FIDO2 设备输入一个名称，选择 **Passkey or Security Key**，然后点击 **Next** 按钮。
7. **设置 FIDO2 设备：** 在 **Set up device** 页面中，根据您使用的 FIDO2 设备型号，按照以下步骤操作：
   * **插入 FIDO2 设备：** 将您的 FIDO2 设备插入电脑的 USB 端口。
   * **验证设备：** 浏览器会自动识别您的设备，您可能需要在设备上进行一些操作，例如按下按钮（使用的FIDO2安全密钥）。
   * **完成注册：** 按照浏览器提示完成 FIDO2 设备的注册步骤。
8. **完成绑定：** 完成上述步骤后，点击 **Continue** 按钮，您的 FIDO2 设备将成功绑定到您的 IAM 用户。

### 2-使用PassKey绑定MFA/通行密钥或安全密钥

在 AWS 控制台中绑定 Passkey 的 MFA，需要以下步骤：

1. **登录 AWS 管理控制台：** 使用您的 AWS 账户 ID 和密码登录 AWS 管理控制台。
2. **访问 IAM 控制台：** 在控制台导航栏中，找到并点击 **IAM**。
3. **选择您的 IAM 用户：** 在 IAM 控制台左侧的导航栏中，点击 **Users**，然后选择您要绑定 Passkey 的 IAM 用户。
4. **进入安全凭证页面：** 在用户页面中，点击 **Security Credentials** 选项卡。
5. **启用 MFA：** 在 **Multi-factor authentication (MFA)** 部分，点击 **Assign MFA device** 按钮。
6. **选择设备类型：** 在 **MFA device name** 页面中，为您的 Passkey 输入一个名称，选择 **Passkey or Security Key**，然后点击 **Next** 按钮。
7. **设置 Passkey：** 在 **Set up device** 页面中，根据您使用的 Passkey 类型，按照以下步骤操作：
   * **使用浏览器注册：** 如果您的 Passkey 是通过浏览器注册的，例如使用 Google、Apple 或 Microsoft 的 Passkey，您将看到一个提示，要求您使用您的设备进行验证。
   * **使用硬件安全密钥：** 如果您的 Passkey 是通过硬件安全密钥注册的，您需要插入您的安全密钥并按照屏幕上的提示进行操作。
8. **完成绑定：** 完成上述步骤后，点击 **Continue** 按钮，您的 Passkey 将成功绑定到您的 IAM 用户。

**注意事项：**

* 确保您的 Passkey 符合 AWS 支持的配置要求，例如支持 WebAuthn 协议。
* 您的设备需要支持 Passkey 功能，例如 iPhone、Android 手机、Windows 电脑等。
* Passkey 通常与您的账户或设备关联，您可以使用相同的 Passkey 在多个设备上进行验证。
* 为了安全起见，请将您的 Passkey 存储在安全的地方，并定期更换密码。

完成上述步骤后，您就可以使用 Passkey 进行双因素身份验证，以提高您的 AWS 账户安全性。

### 3-虚拟MFA/身份验证器应用程序

在 AWS 控制台中绑定虚拟 MFA 设备，需要以下步骤：

1. **登录 AWS 管理控制台：** 使用您的 AWS 账户 ID 和密码登录 AWS 管理控制台。
2. **访问 IAM 控制台：** 在控制台导航栏中，找到并点击 **IAM**。
3. **选择您的 IAM 用户：** 在 IAM 控制台左侧的导航栏中，点击 **Users**，然后选择您要绑定虚拟 MFA 的 IAM 用户。
4. **进入安全凭证页面：** 在用户页面中，点击 **Security Credentials** 选项卡。
5. **启用 MFA：** 在 **Multi-factor authentication (MFA)** 部分，点击 **Assign MFA device** 按钮。
6. **选择设备类型：** 在 **MFA device name** 页面中，为您的虚拟 MFA 设备输入一个名称，选择 **Authenticator app**，然后点击 **Next** 按钮。
7. **设置虚拟 MFA 设备：**
   * **打开您的虚拟 MFA 应用：** 在您的手机或平板电脑上打开您已安装的虚拟 MFA 应用，例如 Google Authenticator、Microsoft Authenticator 或 Authy。
   * **扫描二维码：** 在 AWS 控制台中，点击 **Show QR code** 按钮，并使用您的虚拟 MFA 应用扫描生成的二维码。
   * **手动输入密钥：** 如果您的虚拟 MFA 应用不支持扫描二维码，您可以点击 **Show secret key** 按钮，然后手动将密钥输入到您的虚拟 MFA 应用中。
   * **验证设备：** 完成上述步骤后，您的虚拟 MFA 应用会生成一个六位数的验证码，您需要在 AWS 控制台的 **MFA code 1** 和 **MFA code 2** 框中输入生成的两个验证码。
8. **完成绑定：** 完成上述步骤后，点击 **Add MFA** 按钮，您的虚拟 MFA 设备将成功绑定到您的 IAM 用户。

**注意事项：**

* 确保您的虚拟 MFA 应用符合 AWS 支持的配置要求，例如支持 TOTP 算法。
* 您的设备需要支持虚拟 MFA 应用，例如手机、平板电脑等。
* 为了安全起见，请将您的虚拟 MFA 应用的备份功能启用，以防止丢失设备后无法访问您的 AWS 账户。
* 除了推荐的Google Authenticator、Duo Mobile 或 Authy这几个应用用于扫描二维码，还可以使用腾讯身份验证器，阿里云APP，华为云APP。

完成上述步骤后，您就可以使用虚拟 MFA 设备进行双因素身份验证，以提高您的 AWS 账户安全性。

### 4-硬件TOTP令牌

与FIDO2安全密钥类似，在电商平台购买TOTP硬件，比如[VIP Hardware Authenticator – OTP One Time Password Display Token - Two Factor Authentication - Time Based TOTP - Key Chain Size](https://www.amazon.com/Symantec-VIP-Hardware-Authenticator-Authentication/dp/B07X1VD542/ref=sr_1_1?crid=1V4AD3HBYRP7P\&dib=eyJ2IjoiMSJ9.m-HvgcigW3D8zS0H8pGVXmzuefchomag-9Ms2IomjCmldAJ80Thmsf7bQC8Z4ynGJoCPrd4pvsGN2kxZcH_dAsm8VGZg6kq48GL5xjZPJ1Qo2xa3KjvLbKNFrRu2-Bps3Lqy-Ess8nwt8F769idI8iZcdbYDRAg-JzXoTjrufe-9ijRaOaCgenTXX0apWnGelh9sQIWIyaE2C5pKJnDmHgqBG20828GlsoK85J33SA96TcDkyTsIXRgB1UGtbmWRUwDbS7EaEODtGvyit6uPOCBKS2trEfZRTRqksVt3d9E.0KFIkH2b2Y6DOG4uS8euE4rIzU56DTyisEkiHDZwFHI\&dib_tag=se\&keywords=TOTP\&qid=1721107997\&sprefix=totp%2Caps%2C374\&sr=8-1)，[SafeNet IDProve 110 6-digit OTP Token for Use with Amazon Web Services Only](https://www.amazon.com/SafeNet-IDProve-Time-based-6-Digit-Services/dp/B002CRN5X8/ref=sr_1_2?crid=1V4AD3HBYRP7P\&dib=eyJ2IjoiMSJ9.m-HvgcigW3D8zS0H8pGVXmzuefchomag-9Ms2IomjCmldAJ80Thmsf7bQC8Z4ynGJoCPrd4pvsGN2kxZcH_dAsm8VGZg6kq48GL5xjZPJ1Qo2xa3KjvLbKNFrRu2-Bps3Lqy-Ess8nwt8F769idI8iZcdbYDRAg-JzXoTjrufe-9ijRaOaCgenTXX0apWnGelh9sQIWIyaE2C5pKJnDmHgqBG20828GlsoK85J33SA96TcDkyTsIXRgB1UGtbmWRUwDbS7EaEODtGvyit6uPOCBKS2trEfZRTRqksVt3d9E.0KFIkH2b2Y6DOG4uS8euE4rIzU56DTyisEkiHDZwFHI\&dib_tag=se\&keywords=TOTP\&qid=1721107997\&sprefix=totp%2Caps%2C374\&sr=8-2)。

在 AWS 控制台中绑定硬件 TOTP 令牌，您可以按照以下步骤操作：

1. **登录 AWS 管理控制台：** 使用您的 AWS 账户 ID 和密码登录 AWS 管理控制台。
2. **访问 IAM 控制台：** 在控制台导航栏中，找到并点击 **IAM**。
3. **选择您的 IAM 用户：** 在 IAM 控制台左侧的导航栏中，点击 **Users**，然后选择您要绑定硬件 TOTP 令牌的 IAM 用户。
4. **进入安全凭证页面：** 在用户页面中，点击 **Security Credentials** 选项卡。
5. **启用 MFA：** 在 **Multi-factor authentication (MFA)** 部分，点击 **Assign MFA device** 按钮。
6. **选择设备类型：** 在 **MFA device name** 页面中，为您的硬件 TOTP 令牌输入一个名称，选择 **Hardware TOTP token**，然后点击 **Next** 按钮。
7. **输入设备信息：** 在 **Hardware TOTP token** 页面中，输入以下信息：
   * **Serial number：** 您的硬件 TOTP 令牌背面的序列号。
   * **MFA code 1：** 您的硬件 TOTP 令牌显示的第一个六位数字代码。
   * **MFA code 2：** 等待 30 秒，您的硬件 TOTP 令牌会更新代码，输入第二个六位数字代码。
8. **完成绑定：** 完成上述步骤后，点击 **Add MFA** 按钮，您的硬件 TOTP 令牌将成功绑定到您的 IAM 用户。

**注意事项：**

* 确保您的硬件 TOTP 令牌符合 AWS 支持的配置要求。
* 为了安全起见，请将您的硬件 TOTP 令牌存储在安全的地方，并定期更换密码。

完成上述步骤后，您就可以使用硬件 TOTP 令牌进行双因素身份验证，以提高您的 AWS 账户安全性。
