

# 更改 IAM 用户的权限
<a name="id_users_change-permissions"></a>

您可以更改您 Amazon Web Services 账户 中的 IAM 用户的权限，方法是更改用户的组成员资格、复制现有用户的权限、直接为用户附加策略或设置[权限边界](access_policies_boundaries.md)。权限边界控制用户可以具有的最大权限。权限边界是一项高级 Amazon 功能。

有关您修改用户的权限所需的权限的信息，请参阅[访问 IAM 资源所需的权限](access_permissions-required.md)。

**Topics**
+ [查看用户访问](#users-modify_prerequisites)
+ [基于用户的访问活动生成策略](#users_change_permissions-gen-policy)
+ [向用户添加权限（控制台）](#users_change_permissions-add-console)
+ [更改用户的权限（控制台）](#users_change_permissions-change-console)
+ [要从用户删除权限策略（控制台）](#users_change_permissions-remove-policy-console)
+ [要从用户删除权限边界（控制台）](#users_change_permissions-remove-boundary-console)
+ [添加和删除用户的权限（Amazon CLI 或 Amazon API）](#users_change_permissions-add-programmatic)

## 查看用户访问
<a name="users-modify_prerequisites"></a>

在更改用户的权限之前，您应查看其最近的服务级别活动。这非常重要，因为您不想删除使用它的主体（个人或应用程序）的访问权限。有关查看上次访问的信息的更多信息，请参阅 [使用上次访问的信息优化 Amazon 中的权限](access_policies_last-accessed.md)。

## 基于用户的访问活动生成策略
<a name="users_change_permissions-gen-policy"></a>

有时，您可能会向 IAM 实体（用户或角色）授予超出其需要的权限。为帮助您优化授予的权限，您可以根据实体的访问活动生成 IAM policy。IAM 访问分析器会查看您的 Amazon CloudTrail 日志并生成一个策略模板，其中包含实体在指定日期范围内使用的权限。您可以使用模板创建具有精细权限的托管策略，然后将其附加到 IAM 实体。这样，您仅需授予用户或角色与特定使用案例中的 Amazon 资源进行交互所需的权限。要了解更多信息，请参阅 [IAM Acess Analyzer 策略生成](https://docs.amazonaws.cn/IAM/latest/UserGuide/access-analyzer-policy-generation.html)。

## 向用户添加权限（控制台）
<a name="users_change_permissions-add-console"></a>

IAM 提供了三种方法来向用户添加权限策略：
+ **将 IAM 用户添加到组** - 使用户成为一个组的成员。来自该组的策略将附加到用户。
+ **复制现有 IAM 用户的权限** - 复制所有组成员资格、附加的托管策略、内联策略以及源用户的任何现有权限边界。
+ **直接为 IAM 用户附加策略** - 直接为用户附加托管策略。为方便管理权限，请将策略附加到组，然后让 IAM 用户成为相应组的成员。

**重要**  
如果用户具有权限边界，则您为用户添加的权限不能超过权限边界所允许的权限。

### 要通过将 IAM 用户添加到组来添加权限
<a name="users_change_permissions-add-group-console"></a>

将 IAM 用户添加到 IAM 组后，该用户的权限会立即更新为该组所定义的权限。

------
#### [ Console ]

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

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

1. 在导航窗格中，选择 **Users**（用户）。

1. 在 **Users**（用户）列表中，选择 IAM 用户的名称。

1. 选择 **Groups**（群组）选项卡，以显示包含当前用户的群组的列表。

1. 选择 **Add user to groups**（将用户添加到群组）。

1. 选中您希望用户加入的每个组对应的复选框。列表显示了每个组的名称以及用户在成为该组成员后获得的策略。

1. （可选）您可以选择 **Create group**（创建群组）来定义新的群组。如果您想将用户添加到与现有群组具有不同附加策略的群组中，这将非常有用：

   1. 在新选项卡中，对于 **User group name**（用户组名），键入您的新组名称。
**注意**  
Amazon 账户中 IAM 资源的数量和大小是有限的。有关更多信息，请参阅 [IAM 和 Amazon STS 配额](reference_iam-quotas.md)。组名称可以是最多由 128 个字母、数字和以下字符构成的组合：加号 (\$1)、等号 (=)、逗号 (,)、句点 (.)、at 符号 (@) 和连字符 (-)。账户中的名称必须唯一。名称不区分大小写。例如，您不能创建名为 *TESTGROUP* 和 *testgroup* 的两个组。

   1. 选中您要附加到组的托管式策略对应的一个或多个复选框。您还可以通过选择 **Create policy** 来创建新的托管策略。如果您这样做，请在创建新的策略之后返回到此浏览器选项卡或窗口；选择 **Refresh**，然后选择新策略以将其附加到您的组。有关更多信息，请参阅 [使用客户管理型策略定义自定义 IAM 权限](access_policies_create.md)。

   1. 选择**创建用户组**。

   1. 返回到原始选项卡，刷新您的组列表。然后选中您的新组对应的复选框。

1. 选择 **Add user to group(s)**（将用户添加到群组）。

控制台会显示一条状态消息，通知您用户已添加到您指定的群组中。

------

### 要通过从其他 IAM 用户复制来添加权限
<a name="users_change_permissions-add-copy-console"></a>

如果您选择通过复制权限来为 IAM 用户添加权限，那么 IAM 会复制指定用户的所有组成员资格、附加托管策略、内联策略和任何现有权限边界，并立即将其应用到当前选定的用户。

------
#### [ Console ]

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

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

1. 在导航窗格中，选择 **Users**（用户）。

1. 在 **Users**（用户）列表中，选择 IAM 用户的名称。

1. 在 **Permissions**（权限）选项卡中，选择 **Add permissions**（添加权限）。

1. 在 **Add permissions**（添加权限）页面上，选择 **Copy permissions**（复制权限）。列表显示了可用 IAM 用户以及其组成员资格和附加的策略。

1. 选择您想要复制其权限的用户旁边的单选按钮。

1. 选择 **Next**（下一步），以查看要对用户所做的更改列表。然后选择 **Add permissions**（添加权限）。

控制台会显示一条状态消息，通知您权限已从您指定的 IAM 用户那里复制。

------

### 要通过直接将策略附加到 IAM 用户来添加权限
<a name="users_change_permissions-add-directly-console"></a>

您可以直接将托管策略附加到 IAM 用户。更新后的权限会立即应用。

------
#### [ Console ]

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

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

1. 在导航窗格中，选择 **Users**（用户）。

1. 在 **Users**（用户）列表中，选择 IAM 用户的名称。

1. 在 **Permissions**（权限）选项卡中，选择 **Add permissions**（添加权限）。

1. 在 **Add permissions**（添加权限）页面上，选择 **Attach policies directly**（直接附加策略）。**Permissions policies**（权限策略）列表显示可用策略及其策略类型和附加实体。

1. 选择要附加的 **Policy name**（策略名称）旁边的单选按钮。

1. 选择 **Next**（下一步），以查看要对用户所做的更改列表。然后选择 **Add permissions**（添加权限）。

控制台会显示一条状态消息，通知您已将策略添加到指定的 IAM 用户。

------

### 要为 IAM 用户设置权限边界
<a name="users_change_permissions-set-boundary-console"></a>

权限边界是 Amazon 中管理权限的高级功能，用于设置 IAM 用户可拥有的最大权限。设置权限边界会立即将 IAM 用户的权限限制在边界内，而与授予的其他权限无关。

------
#### [ Console ]

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

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

1. 在导航窗格中，选择 **Users**（用户）。

1. 在 **Users**（用户）列表中，选择要更改其权限边界的 IAM 用户的名称。

1. 选择 **Permissions**（权限）选项卡。如有必要，打开 **Permissions boundary** （权限边界）部分，然后选择 **Set permissions boundary**（设置权限边界）。

1. 在 **Set permissions boundary**（设置权限边界）页面中的 **Permissions policies**（权限策略）下，选择您要用于权限边界的策略。

1. 选择 **Set boundary**（设置边界）。

控制台会显示一条状态消息，通知您权限边界已添加。

------

## 更改用户的权限（控制台）
<a name="users_change_permissions-change-console"></a>

IAM 允许您通过以下方式更改与用户关联的权限：
+ **编辑权限策略** - 编辑用户的内联策略、用户的组的内联策略，或编辑直接附加到用户或从组附加到用户的托管策略。如果用户具有权限边界，则您提供的权限不能超过用作用户的权限边界的策略所允许的权限。
+ **更改权限边界** - 更改用作用户的权限边界的策略。这可以扩大或限制用户可以具有的最大权限。

### 编辑附加到用户的权限策略
<a name="users_change_permissions-edit-policy-console"></a>

更改权限会立即更新用户的访问权限。

------
#### [ Console ]

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

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

1. 在导航窗格中，选择 **Users**（用户）。

1. 在 **Users**（用户）列表中，选择要更改其权限边界的 IAM 用户的名称。

1. 选择 **Permissions**（权限）选项卡。如有必要，打开 **Permissions boundary**（权限边界）部分。

1. 请选择要编辑的策略的名称以查看有关该策略的详细信息。选择 **Entities attached**（附加的实体）选项卡，查看编辑策略后可能受影响的其他实体（IAM 用户、组和角色）。

1. 选择 **Permissions**（权限）选项卡并查看策略授予的权限。要更改权限，请选择 **Edit**（编辑）。

1. 编辑该策略并解决任何[策略验证](access_policies_policy-validator.md)建议。有关更多信息，请参阅 [编辑 IAM 策略](access_policies_manage-edit.md)。

1. 选择 **Next**（下一步），查看策略摘要，然后选择 **Save changes**（保存更改）。

控制台会显示一条状态消息，通知您策略已更新。

------

### 要为用户更改权限边界
<a name="users_change_permissions-change-boundary-console"></a>

更改权限边界会立即更新用户的访问权限。

------
#### [ Console ]

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

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

1. 在导航窗格中，选择 **Users**（用户）。

1. 在 **Users**（用户）列表中，选择要更改其权限边界的 IAM 用户的名称。

1. 选择 **Permissions**（权限）选项卡。如有必要，打开 **Permissions boundary**（权限边界）部分，然后选择 **Change boundary**（更改边界）。

1. 选择要用于权限边界的策略。

1. 选择 **Set boundary**（设置边界）。

控制台会显示一条状态消息，通知您权限边界已更改。

------

## 要从用户删除权限策略（控制台）
<a name="users_change_permissions-remove-policy-console"></a>

删除权限策略会立即更新用户的访问权限。

------
#### [ Console ]

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

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

1. 在导航窗格中，选择 **Users**（用户）。

1. 选择要删除其权限策略的用户的名称。

1. 选择**权限**选项卡。

1. 如果要通过移除现有策略来撤消权限，请查看 **Attached via**（附加方式）来了解用户如何获取该策略，然后再选择 **Remove**（删除）以删除策略：
   + 如果该策略因组成员资格而适用，则选择 **Remove**（删除），从组中删除该用户。请记住，可向单个组中附加多个策略。如果您从组中删除某个用户，该用户将失去对其通过组成员资格接收的*所有*策略的访问权限。
   + 如果该策略是直接附加到该用户的托管策略，则选择 **Remove**（删除），从该用户中分离该策略。这不会影响该策略本身或该策略可能附加到的任何其他实体。
   + 如果该策略是内联嵌入式策略，则选择 **Remove**（删除），从 IAM 中删除该策略。直接附加到用户的内联策略只能在该用户中存在。

如果策略是通过组成员资格授予用户的，则控制台会显示一条状态消息，通知您该 IAM 用户已从 IAM 组移除。如果策略是直接附加或内联的，则状态消息会通知您该策略已被删除。

------

## 要从用户删除权限边界（控制台）
<a name="users_change_permissions-remove-boundary-console"></a>

删除权限边界会立即更新用户的访问权限。

------
#### [ Console ]

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

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

1. 在导航窗格中，选择 **Users**（用户）。

1. 在 **Users**（用户）列表中，选择要删除其权限边界的 IAM 用户的名称。

1. 选择**权限**选项卡。如有必要，打开 **Permissions boundary**（权限边界）部分。

1.  选择 **Change boundary**（更改边界）。要确认要删除权限边界，请在确认对话框中选择 **Remove boundary**（删除边界）。

控制台会显示一条状态消息，通知您权限边界已删除。

------

## 添加和删除用户的权限（Amazon CLI 或 Amazon API）
<a name="users_change_permissions-add-programmatic"></a>

要以编程方式添加或删除权限，您必须添加组成员资格、附加或分离托管策略或者添加或删除内联策略。有关更多信息，请参阅以下主题：
+ [编辑 IAM 组中的用户](id_groups_manage_add-remove-users.md)
+ [添加和删除 IAM 身份权限](access_policies_manage-attach-detach.md)