

# 创建用于紧急访问的 IAM 用户
<a name="getting-started-emergency-iam-user"></a>

*[IAM 用户](https://docs.amazonaws.cn/IAM/latest/UserGuide/id_users.html)*是 Amazon Web Services 账户内对某个人员或应用程序具有特定权限的一个身份。

让 IAM 用户进行紧急访问是创建 IAM 用户的推荐理由之一，这样当您的身份提供商无法访问时，您可以访问您的 Amazon Web Services 账户。

**注意**  
作为安全[最佳实践](best-practices.md)，我们建议您通过身份联合验证而非创建 IAM 用户来提供对资源的访问权限。要了解需要使用 IAM 用户的特定情况，请参阅 [何时创建 IAM 用户（而非角色）](https://docs.amazonaws.cn/IAM/latest/UserGuide/id.html#id_which-to-choose)。

## 创建用于紧急访问的 IAM 用户
<a name="getting-started-emergency-iam-user-section-1"></a>

**最小权限**  
要执行下列步骤，您必须至少具有以下 IAM 权限：  
`access-analyzer:ValidatePolicy`
`iam:AddUserToGroup`
`iam:AttachGroupPolicy`
`iam:CreateGroup`
`iam:CreateLoginProfile`
`iam:CreateUser`
`iam:GetAccountPasswordPolicy`
`iam:GetLoginProfile`
`iam:GetUser`
`iam:ListAttachedGroupPolicies`
`iam:ListAttachedUserPolicies`
`iam:ListGroupPolicies`
`iam:ListGroups`
`iam:ListGroupsForUser`
`iam:ListPolicies`
`iam:ListUserPolicies`
`iam:ListUsers`

------
#### [ Console ]<a name="gs-proc-iam-user-user"></a>

1. 按照 *Amazon 登录用户指南*中的[如何登录 Amazon](https://docs.amazonaws.cn/signin/latest/userguide/how-to-sign-in.html)所述，根据用户类型选择相应的登录过程。

1. 在 **IAM 控制台主页**左侧的导航窗格中，在**搜索 IAM** 文本框中输入查询语句。

1. 在导航窗格中，选择**用户**，然后选择**创建用户**。
**注意**  
如果您启用了 IAM Identity Center，则 Amazon Web Services 管理控制台 会显示一条提醒，提示您最好在 IAM Identity Center 中管理用户的访问权限。在此过程中，您创建的 IAM 用户专门在您的身份提供商不可用时使用。

1. 在**指定用户详细信息**页面中的**用户详细信息**下的**用户名**中，输入新用户的名称。这是 Amazon 的登录名。在此示例中，请输入 **EmergencyAccess**。
**注意**  
用户名可以是一个最多由 64 个字母、数字和以下字符构成的组合：加号 (\$1)、等号 (=)、逗号 (,)、句点 (.)、at 符号 (@)、下划线 (\$1) 和连字符 (-)。账户中的名称必须唯一。名称不区分大小写。例如，您不能创建名为 TESTUSER 和 testuser 的两个用户。在策略中使用用户名或将其作为 ARN 的一部分时，用户名区分大小写。在控制台中向客户显示用户名时（例如在登录过程中），用户名不区分大小写。

1. 选择**向 Amazon Web Services 管理控制台 提供用户访问权限 – *可选***旁边的复选框，然后选择**我想创建一个 IAM 用户**。

1. 在**控制台密码**下，选择**自动生成的密码**。

1. 清除**用户必须在下次登录时创建新密码（推荐）**旁边的复选框。由于该 IAM 用户用于紧急访问，因此受信任的管理员会保留密码，仅在需要时提供密码。

1. 在**设置权限**页面上的**权限选项**下，选择**将用户添加到组**。然后，在**用户组**下，选择**创建组**。

1. 在**创建用户组**页面上的**用户组名称**中，输入 **EmergencyAccessGroup**。然后，在**权限策略**下，选择 **AdministratorAccess**。

1. 选择**创建用户组**，返回**设置权限**页面。

1. 在**用户组**下，选择您之前创建的 **EmergencyAccessGroup** 名称。

1. 选择**下一步**，进入**查看并创建**页面。

1. 在**查看和创建**页面上，查看要添加到新用户的用户组成员资格列表。如果您已准备好继续，请选择**创建用户**。

1. 在**找回密码**页面上，选择**下载 .csv 文件**以保存包含用户凭证信息（连接 URL、用户名和密码）的 .csv 文件。

1. 保存此文件，以便在您需要登录 IAM 且无权访问身份提供商时使用。

新的 IAM 用户显示在**用户**列表中。选择**用户名称**链接以查看用户详细信息。

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

1. 创建一个名为 **EmergencyAccess** 的用户。
   + [aws iam create-user](https://docs.amazonaws.cn/cli/latest/reference/iam/create-user.html)

   ```
   aws iam create-user \
      --user-name EmergencyAccess
   ```

1. （可选）向用户提供对 Amazon Web Services 管理控制台的访问权限。这需要密码。要为 IAM 用户创建密码，您可以使用 `--cli-input-json` 参数传递包含密码的 JSON 文件。您还必须向用户提供[账户登录页面的 URL](id_users_sign-in.md)。
   +  [aws iam create-login-profile](https://docs.amazonaws.cn/cli/latest/reference/iam/create-login-profile.html)

     ```
      
     aws iam create-login-profile \
        --generate-cli-skeleton > create-login-profile.json
     ```
   + 在文本编辑器中打开 `create-login-profile.json` 文件并输入符合密码策略的密码，然后保存该文件。例如：

     ```
     {
      "UserName": "EmergencyAccess",
      "Password": "Ex@3dRA0djs",
      "PasswordResetRequired": false
     }
     ```
   + 再次使用 `aws iam create-login-profile` 命令，传递 `--cli-input-json` 参数以指定您的 JSON 文件。

     ```
     aws iam create-login-profile \
        --cli-input-json file://create-login-profile.json
     ```
**注意**  
如果您在 JSON 文件中提供的密码违反了账户的密码策略，则将收到 `PassworPolicyViolation` 错误。如果发生这种情况，则请查看您账户的[密码策略](https://docs.amazonaws.cn/IAM/latest/UserGuide/id_credentials_passwords_account-policy.html#default-policy-details)，并更新 JSON 文件中的密码以符合要求。

1. 创建 **EmergencyAccessGroup**，将 Amazon 托管策略 `AdministratorAccess` 附加到组，然后将 **EmergencyAccess** 用户添加到该组。
**注意**  
*Amazon 托管策略* 是由 Amazon 创建和管理的独立策略。每个策略都有自己的 Amazon 资源名称（ARN），其中包含策略名称。例如，`arn:aws:iam::aws:policy/IAMReadOnlyAccess` 是一个 Amazon 托管策略。有关 ARN 的更多信息，请参阅 [IAM ARN](reference_identifiers.md#identifiers-arns)。有关适用于 Amazon Web Services 服务 的 Amazon 托管式策略的列表，请参阅 [Amazon 托管式策略](https://docs.amazonaws.cn//aws-managed-policy/latest/reference/policy-list.html)。
   + [aws iam create-group](https://docs.amazonaws.cn/cli/latest/reference/iam/create-group.html) 

     ```
     aws iam create-group \
        --group-name EmergencyAccessGroup
     ```
   + [aws iam attach-group-policy](https://docs.amazonaws.cn/cli/latest/reference/iam/attach-group-policy.html)

     ```
     aws iam attach-group-policy \
        --policy-arn arn:aws:iam::aws:policy/AdministratorAccess \
        --group-name >EmergencyAccessGroup
     ```
   + [aws iam add-user-to-group](https://docs.amazonaws.cn/cli/latest/reference/iam/add-user-to-group.html) 

     ```
     aws iam add-user-to-group \
        --user-name EmergencyAccess \
        --group-name EmergencyAccessGroup
     ```
   + 运行 [aws iam get-group](https://docs.amazonaws.cn/cli/latest/reference/iam/get-group.html) 命令列出 **EmergencyAccessGroup** 及其成员。

     ```
     aws iam get-group \
        --group-name EmergencyAccessGroup
     ```

------