IAM 教程:使用户能够管理其凭证和 MFA 设置
您可以允许您的用户在我的安全凭证页面上自行管理他们自己的 Multi-Factor Authentication (MFA) 设备和凭证。您可以使用AWS 管理控制台为用户配置凭证(访问密钥、密码、签名证书和 SSH 公有密钥)和 MFA 设备。这对少数用户非常有用。但随着用户数增加,这个任务很快会变得非常耗时。安全最佳实践指定用户应定期更改其密码并轮换其访问密钥。他们还应该删除或停用不再需要的凭证。我们还强烈建议他们使用 MFA 进行敏感操作。本教程旨在介绍如何实现这些最佳实践,而不给您的管理员带来负担。
本教程介绍如何允许用户访问 AWS 服务,不过此操作仅限于用户使用 MFA 登录的情况。如果未使用 MFA 设备登录,则用户无法访问其他服务。
此工作流程具有三个基本步骤。

- 步骤 1:创建策略以强制 MFA 登录
-
创建一个禁止所有操作(除了允许在 My Security Credentials (我的安全凭证) 页面上更改他们自己的凭证并管理其 MFA 设备的少数几个 IAM 操作)的客户托管策略。有关访问该页面的更多信息,请参阅IAM 用户如何更改自己的密码(控制台)。
- 步骤 2:将策略附加到您的测试组
-
创建一个组,在使用 MFA 登录时,该组的成员具有所有 Amazon EC2 操作的完全访问权限。要创建此类组,请附加名为
AmazonEC2FullAccess
的 AWS 托管策略和在步骤 1 中创建的客户托管策略。 - 步骤 3:测试您的用户的访问权限
-
以测试用户身份登录,验证对 Amazon EC2 的访问是否被阻止,直至该用户创建 MFA 设备为止。之后,用户可以使用该设备进行登录。
先决条件
要执行本教程中的步骤,您必须已具备以下内容:
-
可使用 IAM 用户身份登录的具有管理权限的 AWS 账户。
-
您在步骤 1 的策略中键入的账户 ID 号。
要查找您的账户 ID 号,请在页面顶部的导航栏上,选择 Support,然后选择 Support Center。您可以在该页面的 Support 菜单下找到您的账户 ID。
-
一个作为组成员的测试 IAM 用户,如下所示:
创建用户账户 | 创建和配置组账户 | |||
---|---|---|---|---|
用户名称 | 其他说明 | 组名 | 将用户添加为成员 | 其他说明 |
MFAUser | 仅选择 AWS 管理控制台 access (AWS 管理控制台访问) 选项,然后分配密码。 | EC2MFA | MFAUser | 请勿向此组附加任何策略或授予任何权限。 |
步骤 1:创建策略以强制 MFA 登录
首先创建一个 IAM 客户托管策略,除 IAM 用户管理其自有凭证和 MFA 设备所需的权限外,该策略拒绝其他所有权限。
-
使用具有管理员凭证的用户身份登录 AWS 管理控制台。根据 IAM 最佳实践,请勿使用 AWS 账户根用户凭证登录。有关更多信息,请参阅创建单独的 IAM 用户。
-
通过以下网址打开 IAM 控制台:https://console.amazonaws.cn/iam/
。 -
在导航窗格中选择 Policies,然后选择 Create policy。
-
选择 JSON 选项卡,然后复制以下 JSON 策略文档中的文本:AWS:允许经过 MFA 身份验证的 IAM 用户在“我的安全凭证”页面上管理自己的凭证。。
-
将策略文本粘贴到 JSON 文本框中,然后选择 Review policy (查看策略)。策略验证程序将报告任何语法错误。
注意 您可以随时在 Visual editor (可视化编辑器) 和 JSON 选项卡之间切换。但是,以上策略包含
NotAction
元素,该元素在可视化编辑器中不受支持。对于此策略,您在 Visual editor 选项卡上将看到一个通知。返回 JSON 选项卡以继续处理此策略。 -
在 Review (查看) 页面上,键入
Force_MFA
作为策略名称。对于策略说明,键入This policy allows users to manage their own passwords and MFA devices but nothing else unless they authenticate with MFA.
。查看策略 Summary (摘要) 以查看您的策略授予的权限,然后选择 Create policy (创建策略) 以保存您的工作。将在托管策略列表中显示新策略,并已准备好附加该策略。
步骤 2:将策略附加到您的测试组
接下来,您将两个策略附加到测试 IAM 组,将使用该组授予受 MFA 保护的权限。
-
在导航窗格中,选择 Groups。
-
在搜索框中键入
EC2MFA
,然后在列表中选择组名称 (而不是选中复选框)。 -
在 Permissions 选项卡上,单击 Attach Policy。
-
在 Attach Policy (附加策略) 页上的搜索框中键入
EC2Full
,然后选中列表中 AmazonEC2FullAccess 旁边的复选框。暂不保存您的更改。 -
在搜索框中键入
Force
,然后选中列表中 Force_MFA 旁边的复选框。 -
选择 Attach Policy。
步骤 3:测试您的用户的访问权限
在本教程的这一部分中,您以测试用户身份登录并验证策略是否正常工作。
-
使用上一部分中分配给您的密码,以
MFAUser
身份登录您的 AWS 账户。使用 URL:https://
<alias or account ID number>
.signin.amazonaws.cn/console -
选择 EC2 打开 Amazon EC2 控制台,验证此用户没有执行任何操作的权限。
-
在右上角的导航栏中,选择
MFAUser
用户名,然后选择我的安全凭证。 -
现在添加一个 MFA 设备。在多重身份验证 (MFA) 部分中,选择分配 MFA 设备。
注意 可能会出现未授权您执行
iam:DeleteVirtualMFADevice
的错误。如果某个人以前开始将虚拟 MFA 设备分配给该用户并取消了该过程,则可能会发生这种情况。要继续,您或其他管理员必须删除用户的现有 MFA 设备。有关更多信息,请参阅 未授权我执行:iam:DeleteVirtualMFADevice。 -
对于本教程,我们使用一个虚拟 (基于软件的) MFA 设备,例如,手机上的 Google Authenticator 应用程序。选择 Virtual MFA device (虚拟 MFA 设备),然后单击 Continue (继续)。
IAM 将生成并显示虚拟 MFA 设备的配置信息,包括 QR 代码图形。此图形是秘密配置密钥的表示形式,适用于不支持 QR 代码的设备上的手动输入。
-
打开您的虚拟 MFA 应用程序。(有关可以用作托管虚拟 MFA 设备的应用程序的列表,请参阅虚拟 MFA 应用程序
。) 如果虚拟 MFA 应用程序支持多个账户 (多个虚拟 MFA 设备),请选择相应的选项以创建新账户 (新的虚拟 MFA 设备)。 -
确定 MFA 应用程序是否支持 QR 代码,然后执行以下操作之一:
-
在向导中,选择 Show QR code (显示 QR 代码)。使用此应用程序扫描 QR 代码。例如,您可选择摄像头图标或选择类似于 Scan code 的选项,然后使用设备的摄像头扫描此代码。
-
在 Manage MFA Device (管理 MFA 设备) 向导中,选择 Show secret key (显示私有密钥),然后在您的 MFA 应用程序中键入私有密钥。
完成操作后,虚拟 MFA 设备会开始生成一次性密码。
-
-
在 Manage MFA Device (管理 MFA 设备) 向导的 MFA Code 1 (MFA 代码 1) 框中,键入虚拟 MFA 设备上当前显示的一次性密码。请等候 30 秒,以便设备生成新的一次性密码。然后在 MFA Code 2 (MFA 代码 2) 框中键入第二个一次性密码。选择 Assign MFA (分配 MFA)。
重要 生成代码之后立即提交您的请求。如果在生成代码后等待很长时间才提交请求,MFA 设备将成功与用户关联,但 MFA 设备不同步。这是因为基于时间的一次性密码 (TOTP) 很快会过期。这种情况下,您可以重新同步设备。
虚拟 MFA 设备现已准备好与 AWS 一起使用。
-
从控制台注销,然后重新以
MFAUser
身份登录。此时 AWS 会提示输入您手机中的 MFA 代码。收到该代码后,请将代码键入框中,然后选择 Submit。 -
选择 EC2 以再次打开 Amazon EC2 控制台。请注意,这次您可以看到所有信息,并且可以执行所需的任何操作。如果您以该用户身份转至任何其他控制台,则会看到指示访问被拒绝的消息。导致出现此问题的原因是,本教程中的策略仅向 Amazon EC2 授予访问权限。
相关资源
有关 IAM 用户指南 中的相关信息,请参阅以下资源: