

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# Toolkit for Visual Studio 中的多重身份验证（MFA）
<a name="mfa-credentials"></a>

多重身份验证 (MFA) 为您的账户提供了额外的安全保障。 AWS MFA 要求用户在访问网站或服务时提供登录凭证和来自支持的 AWS MFA 机制的唯一身份验证。 AWS 

AWS 支持一系列虚拟设备和硬件设备进行 MFA 身份验证。以下是通过智能手机应用程序启用的虚拟 MFA 设备示例。要了解有关 MFA 设备选项的更多信息，请参阅《IAM 用户指南》**中的[在 AWS中使用多重身份验证（MFA）](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_mfa.html)。

## 步骤 1：创建 IAM 角色，以向 IAM 用户委派访问权限
<a name="create-mfa-role"></a>

以下过程介绍如何设置向 IAM 用户分配权限的角色委派。有关角色委派的详细信息，请参阅《AWS Identity and Access Management 用户指南》**中的[创建向 IAM 用户委派权限的角色](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-user.html)主题。

1. 前往 [https://console.aws.amazon.com/iam 上的 IAM](https://console.aws.amazon.com/iam) 控制台。

1. 在导航栏中选择**角色**，然后选择**创建角色**。

1. 在**创建角色**页面中，选择**另一个 AWS 账户**。

1. 输入所需的**账户 ID** 并选中**需要 MFA** 复选框。
**注意**  
要查找您的 12 位账号（ID），请在控制台顶部的导航栏上，选择**支持**，然后选择**支持中心**。

1. 选择**下一步: 权限**。

1. 将现有策略附加到角色或为其创建新策略。您在此页面上选择的策略决定了 IAM 用户可以通过 Toolkit 访问哪些 AWS 服务。

1. 附加策略后，选择**下一步：标签**，设置向角色添加 IAM 标签的选项。然后，选择**下一步：审核**以继续。

1. 在**审核**页面中，输入所需的**角色名称**（例如 *toolkit-role*）。您也可以添加可选的**角色描述**。

1. 选择**创建角色**。

1. 当显示确认消息（例如“角色 **toolkit-role** 已创建”）时，请在消息中选择该角色的名称。

1. 在**摘要**页面中，选择复制图标以复制**角色 ARN** 并将其粘贴到一个文件中。（在配置代入角色的 IAM 用户时，您需要此 ARN。）

## 步骤 2：创建代入角色权限的 IAM 用户
<a name="create-mfa-user"></a>

此步骤将创建一个没有权限的 IAM 用户，以便可以添加内联策略。

1. 前往 [https://console.aws.amazon.com/iam 上的 IAM](https://console.aws.amazon.com/iam) 控制台。

1. 在导航栏中，选择**用户**，然后选择**添加用户**。

1. 在**添加用户**页面中，输入所需的**用户名**（例如 *toolkit-user*），然后选中**编程访问**复选框。

1. 选择**下一步：权限**、**下一步：标签**和**下一步：审核**，进行翻页。您不必在此阶段添加权限，因为用户将代入通过角色委派的权限。

1. 在**审核**页面中，您会被告知**此用户没有权限**。选择**创建用户**。

1. 在**成功**页面中，选择**下载.csv** 以下载包含访问密钥 ID 和秘密访问密钥的文件。（在凭证文件中定义用户的配置文件时，您将需要这两个信息。）

1. 选择**关闭**。

## 步骤 3：添加允许 IAM 用户代入角色的策略
<a name="add-mfa-policy"></a>

 以下过程将创建一个内联策略，允许用户代入角色（以及该角色的权限）。

1. 在 IAM 控制台的**用户**页面中，选择您刚刚创建的 IAM 用户（例如 *toolkit-user*）。

1. 在**摘要**页面的**权限**选项卡上，选择**添加内联策略**。

1. 在**创建策略**页面中，选择**选择服务**，在**查找服务**中输入 **STS**，然后从结果中选择 **STS**。

1. 在 **“操作**” 中，开始输入术语*AssumeRole*。当**AssumeRole**复选框出现时，将其选中。

1. 在**资源部分**，确保选中**特定**，然后单击**添加 ARN** 以限制访问。

1. 对于**添加 ARN** 对话框中的**为角色指定 ARN**，添加您在步骤 1 中创建的角色的 ARN。

   添加该角色的 ARN 后，与该角色关联的可信账户和角色名称将显示在**账户**和**带路径的角色名称**中。

1. 选择**添加**。

1. 返回**创建策略**页面，选择**指定请求条件（可选）**，选中**需要 MFA** 复选框，然后选择**关闭**进行确认。

1. 选择**查看策略**

1. 在**查看策略**页面中，为策略输入**名称**，然后选择**创建策略**。

   **权限**选项卡中将显示直接附加到 IAM 用户的新内联策略。

## 步骤 4：为 IAM 用户管理虚拟 MFA 设备
<a name="manage-virtual-mfa"></a>

1. 将虚拟 MFA 应用程序下载并安装到智能手机。

    有关支持的应用程序列表，请参阅[多重身份验证](https://aws.amazon.com/iam/features/mfa/?audit=2019q1)资源页面。

1. 在 IAM 控制台中，从导航栏中选择**用户**，然后选择代入角色的用户（在本例中为 *toolkit-user*）。

1. 在**摘要**页面中，选择**安全凭证**选项卡，然后为**已分配的 MFA 设备**选择**管理**。

1. 在**管理 MFA 设备**窗格中，选择**虚拟 MFA 设备**，然后选择**继续**。

1. 在**设置虚拟 MFA 设备**窗格中，选择**显示 QR 码**，然后使用安装在智能手机上的虚拟 MFA 应用程序扫描二维码。

1. 扫描二维码后，虚拟 MFA 应用程序会生成一次性 MFA 代码。在 **MFA 代码 1** 和 **MFA 代码 2** 中连续输入两个 MFA 代码。

1. 选择**分配 MFA**。

1. 返回用户的**安全凭证**选项卡，复制新**分配的 MFA 设备**的 ARN。

   ARN 包含您的 12 位账户 ID，其格式类似于以下内容：`arn:aws:iam::123456789012:mfa/toolkit-user`。在下个步骤中定义 MFA 配置文件时，您需要用到此 ARN。

## 步骤 5：创建配置文件以允许 MFA
<a name="mfa-profiles"></a>

以下过程创建了在 Visual Studio 的 Toolkit for Visual Studi AWS o 中访问服务时允许 MFA 的配置文件。

您创建的配置文件包括您在前面的步骤中复制和存储的三条信息：
+ IAM 用户的访问密钥（访问密钥 ID 和秘密访问密钥）
+ 向 IAM 用户委派权限的角色的 ARN 
+ 分配给 IAM 用户的虚拟 MFA 设备的 ARN 

在包含您的 AWS 凭据的 AWS 共享凭证文件或 SDK Store 中，添加以下条目：

```
[toolkit-user]
aws_access_key_id = AKIAIOSFODNN7EXAMPLE
aws_secret_access_key = wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY

[mfa]
source_profile = toolkit-user
role_arn = arn:aws:iam::111111111111:role/toolkit-role
mfa_serial = arn:aws:iam::111111111111:mfa/toolkit-user
```

提供的示例中定义了两个配置文件：
+ `[toolkit-user]` 配置文件包含您在步骤 2 中创建 IAM 用户时生成和保存的访问密钥和秘密访问密钥。
+ `[mfa]` 配置文件定义了如何支持多因素身份验证。该配置文件有三个条目：

  ◦ `source_profile`：指定配置文件，将使用其凭证代入此配置文件中的 `role_arn` 设置所指定的角色。在本例中，该条目为 `toolkit-user` 配置文件。

  ◦ `role_arn`：指定 IAM 角色的 Amazon 资源名称（ARN），您将通过此角色执行使用此配置文件请求的操作。在本例中，该条目您在步骤 1 中创建的角色的 ARN。

  ◦`mfa_serial`：指定用户在代入角色时必须使用的 MFA 设备的标识或序列号。在本例中，该条目是您在步骤 3 中设置的虚拟设备的 ARN。