

# 删除角色或实例配置文件
<a name="id_roles_manage_delete"></a>

如果您不再需要某个角色，我们建议您删除该角色及其关联的权限。这样您就没有未被主动监控或维护的未使用实体。

如果该角色与 EC2 实例关联，您还可以从实例配置文件中删除角色，然后删除实例配置文件。

**警告**  
确保您没有使用要删除的角色或实例配置文件运行任何 Amazon EC2 实例。删除与正在运行的实例关联的角色或实例配置文件将中断该实例上正在运行的所有应用程序。

如果您不希望永久删除角色，则可以禁用角色。为此，请更改角色的策略，然后撤消所有当前会话。例如，您可以将策略添加到拒绝访问所有 Amazon 的角色。您还可以编辑信任策略，以拒绝任何试图代入此角色的用户的访问。有关撤消会话的更多信息，请参阅 [撤销 IAM 角色临时安全凭证](id_roles_use_revoke-sessions.md)。

**Topics**
+ [查看角色访问权限](#roles-delete_prerequisites)
+ [删除服务相关角色](#id_roles_manage_delete_slr)
+ [删除 IAM 角色（控制台）](#roles-managingrole-deleting-console)
+ [创建 IAM 角色 (Amazon CLI)](#roles-managingrole-deleting-cli)
+ [删除 IAM 角色 (Amazon API)](#roles-managingrole-deleting-api)
+ [相关信息](#roles-managingrole-deleting-related-info)

## 查看角色访问权限
<a name="roles-delete_prerequisites"></a>

在删除角色之前，建议您查看上次使用角色的时间。可使用 Amazon Web Services 管理控制台、Amazon CLI 或 Amazon API 完成此操作。如果您不希望从使用该角色的用户处删除访问权限，则应查看此信息。

角色的上次活动日期可能与**上次访问时间**选项卡中报告的上次日期不相符。[**上次访问时间**](access_policies_last-accessed-view-data.md)选项卡仅报告角色的权限策略所允许服务的活动。角色的上次活动日期包括访问最后一次尝试 Amazon 中的任何服务。

**注意**  
角色上次活动和上次访问数据的跟踪周期为 400 天。如果您的地区在一年内开始支持这些功能，则此时间段可能会缩短。角色可能在 400 天之前使用过。有关跟踪周期的更多信息，请参阅[Amazon 跟踪上次访问信息的位置](access_policies_last-accessed.md#last-accessed_tracking-period)。

**查看上次使用角色的时间（控制台）**

1. 登录 Amazon Web Services 管理控制台，然后通过以下网址打开 IAM 控制台：[https://console.aws.amazon.com/iam/](https://console.amazonaws.cn/iam/)。

1. 在导航窗格中，选择**角色**。

1. 查找要查看其活动的角色的行。您可以使用搜索字段缩小结果范围。查看**上一个活动**列以查看距离上次使用角色的天数。如果在跟踪周期内未使用该角色，则表将显示**无**。

1. 选择角色的名称可查看更多信息。角色的**摘要**页面还包括**上一个活动**，显示上次使用角色的日期。如果在过去 400 天内未使用该角色，则**上一个活动**中显示**在跟踪期间未被访问**。

**查看上次使用角色的时间 (Amazon CLI)**  
`[aws iam get-role](https://docs.amazonaws.cn/cli/latest/reference/iam/get-role.html)` – 运行此命令返回有关角色的信息，包括 `RoleLastUsed` 对象。此对象包含上次使用角色的 `Region` 和 `LastUsedDate`。如果存在 `RoleLastUsed` 但不包含值，则在跟踪周期内未使用该角色。

**查看上次使用角色的时间 (Amazon API)**  
`[GetRole](https://docs.amazonaws.cn/IAM/latest/APIReference/GetRole.html)` – 调用此操作以返回有关角色的信息，包括 `RoleLastUsed` 对象。此对象包含上次使用角色的 `Region` 和 `LastUsedDate`。如果存在 `RoleLastUsed` 但不包含值，则在跟踪周期内未使用该角色。

## 删除服务相关角色
<a name="id_roles_manage_delete_slr"></a>

您用来删除服务相关角色的方法取决于服务。在某些情况下，无需手动删除服务相关角色。例如，在服务中完成特定操作 (如删除资源) 时，服务可能为您删除服务相关角色。在其他情况下，服务可能支持从服务控制台、API 或 Amazon CLI 中手动删除服务相关角色。

查看链接服务中*[服务相关角色](id_roles.md#iam-term-service-linked-role)*的文档以了解如何删除该角色。您可以转至控制台中的 IAM **Roles**（角色）页面来查看您的账户中的服务相关角色。服务相关角色在表的 **Trusted entities**（可信实体）列中随 **(Service-linked role)** [（服务相关角色）] 一起显示。角色的 **Summary**（摘要）页面上的横幅也指示角色是服务相关角色。

如果服务不包括有关删除服务相关角色的文档，您可以使用 IAM 控制台、Amazon CLI 或 API 来删除角色。

## 删除 IAM 角色（控制台）
<a name="roles-managingrole-deleting-console"></a>

当您使用 Amazon Web Services 管理控制台 删除角色时，IAM 会自动分离与该角色关联的托管式策略。此外，它还会自动删除任何与该角色关联的内联策略，以及包含该角色的任何 Amazon EC2 实例配置文件。

**重要**  
在某些情况下，某个角色可能与 Amazon EC2 实例配置文件关联，并且该角色和实例配置文件可能同名。在这种情况下，您可以使用 Amazon Web Services 管理控制台删除角色和实例配置文件。对于您在控制台中创建的角色和实例配置文件，会自动建立这种关联。如果您从 Amazon CLI、Tools for Windows PowerShell 或 Amazon API 创建角色，则角色和实例配置文件可能具有不同的名称。在这种情况下，您无法使用控制台删除它们。而是必须使用 Amazon CLI、Tools for Windows PowerShell 或 Amazon API 首先从实例配置文件中删除该角色。然后必须采取单独的步骤删除该角色。

**删除角色 (控制台)**

1. 登录 Amazon Web Services 管理控制台，然后通过以下网址打开 IAM 控制台：[https://console.aws.amazon.com/iam/](https://console.amazonaws.cn/iam/)。

1. 在导航窗格中，选择**角色**，然后选中要删除的角色旁的复选框。

1. 在页面的顶部，选择 **Delete**（移除）。

1. 在确认对话框中，查看上次访问的信息，该信息显示每个选定角色上次访问 Amazon 服务的时间。这样可帮助您确认角色当前是否处于活动状态。如果要继续操作，请在文本输入字段中输入角色的名称，然后选择 **Delete**（删除）。如果确定，您就可以继续执行删除操作，即使仍在加载上次访问的信息。

**注意**  
您不能使用控制台删除实例配置文件，除非它与角色同名。实例配置文件在删除角色的过程中被删除，如上述步骤所述。要在不删除角色的情况下删除实例配置文件，必须使用 Amazon CLI 或 Amazon API。有关更多信息，请参阅以下部分。

## 创建 IAM 角色 (Amazon CLI)
<a name="roles-managingrole-deleting-cli"></a>

当您使用 Amazon CLI 删除角色时，必须先删除与角色关联的内联策略。您还必须分离与该角色关联的托管式策略。如果您想要删除包含角色的关联实例配置文件，必须分别删除。

**删除角色 (Amazon CLI)**

1. 如果您不知道要删除的角色的名称，请输入以下命令列出账户中的角色：

   ```
   aws iam list-roles
   ```

   该列表包括各个角色的 Amazon Resource Name (ARN)。通过 CLI 命令使用角色名称（并非 ARN）指向角色。例如，如果某个角色的 ARN 为 `arn:aws:iam::123456789012:role/myrole`，则将该角色称为 **myrole**。

1. 从该角色所关联的全部实例配置文件中删除该角色。

   1. 要列出与角色关联的所有实例配置文件，请输入以下命令：

      ```
      aws iam list-instance-profiles-for-role --role-name role-name
      ```

   1. 要从某个实例配置文件中删除该角色，请为每个实例配置文件输入以下命令：

      ```
      aws iam remove-role-from-instance-profile --instance-profile-name instance-profile-name --role-name role-name
      ```

1. 删除与角色相关的全部策略。

   1. 要列出角色中的所有内联策略，请输入以下命令：

      ```
      aws iam list-role-policies --role-name role-name
      ```

   1. 要删除角色中的每个内联策略，请为每个策略输入以下命令：

      ```
      aws iam delete-role-policy --role-name role-name --policy-name policy-name
      ```

   1. 要列出附加到角色的所有托管策略，请输入以下命令：

      ```
      aws iam list-attached-role-policies --role-name role-name
      ```

   1. 要从角色中分离每个托管策略，请为每个策略输入以下命令：

      ```
      aws iam detach-role-policy --role-name role-name --policy-arn policy-arn
      ```

1. 输入以下命令可删除角色：

   ```
   aws iam delete-role --role-name role-name
   ```

1. 如果您没有计划重新使用与角色相关联的实例配置文件，则可以输入以下命令来删除它们：

   ```
   aws iam delete-instance-profile --instance-profile-name instance-profile-name
   ```

## 删除 IAM 角色 (Amazon API)
<a name="roles-managingrole-deleting-api"></a>

当您使用 IAM API 删除角色时，必须先删除与角色关联的内联策略。您还必须分离与该角色关联的托管式策略。如果您想要删除包含角色的关联实例配置文件，必须分别删除。

**删除角色 (Amazon API)**

1. 要列出角色所关联的所有实例配置文件，请调用 [ListInstanceProfilesForRole](https://docs.amazonaws.cn/IAM/latest/APIReference/API_ListInstanceProfilesForRole.html)。

   要从实例配置文件删除该角色，请调用 [RemoveRoleFromInstanceProfile](https://docs.amazonaws.cn/IAM/latest/APIReference/API_RemoveRoleFromInstanceProfile.html)。必须提交角色名称和实例配置文件名称。

   如果您不会重用与角色相关联的实例配置文件，请调用 [DeleteInstanceProfile](https://docs.amazonaws.cn/IAM/latest/APIReference/API_DeleteInstanceProfile.html) 来删除它。

1. 要列出一个角色的所有内联策略，请调用 [ListRolePolicies](https://docs.amazonaws.cn/IAM/latest/APIReference/API_ListRolePolicies.html)。

   要删除该角色所关联的所有内联策略，请调用 [DeleteRolePolicy](https://docs.amazonaws.cn/IAM/latest/APIReference/API_DeleteRolePolicy.html)。必须提交角色名称和内联策略名称。

1. 要列出附加到角色的所有托管式策略，请调用 [ListAttachedRolePolicies](https://docs.amazonaws.cn/IAM/latest/APIReference/API_ListAttachedRolePolicies.html)。

   要分离附加到角色的托管式策略，请调用 [DetachRolePolicy](https://docs.amazonaws.cn/IAM/latest/APIReference/API_DetachRolePolicy.html)。必须提交角色名称和托管策略 ARN。

1. 调用 [DeleteRole](https://docs.amazonaws.cn/IAM/latest/APIReference/API_DeleteRole.html) 删除角色。

## 相关信息
<a name="roles-managingrole-deleting-related-info"></a>

有关实例配置文件的基本信息，请参阅 [使用实例配置文件](id_roles_use_switch-role-ec2_instance-profiles.md)。

有关服务相关角色的一般信息，请参阅[创建服务相关角色](id_roles_create-service-linked-role.md)。