AWS Identity and Access Management
用户指南
AWS 服务或AWS文档中描述的功能,可能因地区/位置而异。请点击 Amazon AWS 入门,可查看中国地区的具体差异

删除角色或实例配置文件

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

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

警告

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

删除服务相关角色

如果角色是服务相关角色,请查看链接服务的文档以了解如何删除该角色。您可以转至控制台中的 IAM Roles 页面来查看您的账户中的服务相关角色。服务相关角色在表的 Trusted entities 列中随 (Service-linked role) 一起显示。角色的 Summary 页面上的横幅也指示角色是服务相关角色。

如果服务不包括有关删除服务相关角色的文档,则可以使用 IAM 控制台、API 或 CLI 来删除角色。有关更多信息,请参阅 删除服务相关角色

删除 IAM 角色 (控制台)

当您使用 AWS 管理控制台删除角色时,IAM 还会自动删除与角色关联的策略。此外,它还会删除包含该角色的任何 Amazon EC2 实例配置文件。

重要

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

删除角色 (控制台)

  1. 登录 AWS 管理控制台 并通过以下网址打开 IAM 控制台 https://console.amazonaws.cn/iam/

  2. 在导航窗格中,选择 Roles,然后选择要删除的角色名称旁的复选框,而不是名称或行本身。

  3. 对于页面顶部的 Role actions,选择 Delete role

  4. 在确认对话框中,查看上次访问服务数据,该数据显示每个选定角色上次访问 AWS 服务的时间。这样可帮助您确认角色当前是否处于活动状态。如果要继续,请选择 Yes, Delete。如果确定,您就可以继续执行删除操作,即使仍在加载上次访问服务数据。

注意

您不能使用控制台删除实例配置文件,除非它与角色具有完全相同的名称。另外,必须在删除角色的过程中删除实例配置文件,如上述步骤所述。要在不删除角色的情况下删除实例配置文件,必须使用 AWS CLI、Windows PowerShell 工具 或 AWS API。有关更多信息,请参阅以下部分。

删除 IAM 角色 (AWS CLI)

当您使用 AWS CLI 删除角色时,必须先删除与角色关联的策略。此外,如果您想要删除包含角色的关联实例配置文件,必须分别删除。

使用 AWS CLI 删除角色 (AWS CLI)

  1. 如果不知道要删除的角色的名称,请键入以下命令列出账户中的角色:

    $ aws iam list-roles

    系统将显示带有 Amazon 资源名称 (ARN) 的角色列表。通过 CLI 命令使用角色名称(并非 ARN)指向角色。例如,如果一个角色的 ARN 为:arn:aws-cn:iam::123456789012:role/myrole,则应将角色称为 myrole

  2. 从角色所属的全部实例配置文件移除该角色。

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

      $ aws iam list-instance-profiles-for-role --role-name role-name
    2. 要从某个实例配置文件中删除该角色,请为每个实例配置文件键入以下命令:

      $ aws iam remove-role-from-instance-profile --instance-profile-name instance-profile-name --role-name role-name
  3. 删除与角色相关的全部策略。

    1. 要列出角色中的所有策略,请键入以下命令:

      $ aws iam list-role-policies --role-name role-name
    2. 要删除角色中的每个策略,请为每个策略键入以下命令:

      $ aws iam delete-role-policy --role-name role-name --policy-name policy-name
  4. 键入以下命令可删除角色:

    $ aws iam delete-role --role-name role-name
  5. 如果您没有计划重新使用与角色相关联的实例配置文件,则可以键入以下命令来删除它们:

    $ aws iam delete-instance-profile --instance-profile-name instance-profile-name

删除 IAM 角色 (Windows PowerShell 工具)

当您使用 Windows PowerShell 删除角色时,必须先删除与角色关联的策略。此外,如果您想要删除包含角色的关联实例配置文件,必须分别删除。

使用 Windows PowerShell 工具 删除角色 (Windows PowerShell 工具)

  1. 如果不知道要删除的角色的名称,请键入以下命令列出账户中的角色:

    PS C:\> Get-IAMRoles | Select RoleName

    通过 PowerShell cmdlet 使用角色名称(并非 ARN)指向角色。例如,如果一个角色的 ARN 为:arn:aws-cn:iam::123456789012:role/myrole,则应将角色称为 myrole

  2. 从角色所属的全部实例配置文件移除该角色。以下命令将获取包含角色的所有实例配置文件的列表,从列表中的每个实例配置文件中删除角色,然后删除已为空的实例配置文件。如果您计划重复使用实例配置文件,则可以省略命令中的最后一个 cmdlet。

    PS C:\> Get-IAMInstanceProfileForRole -RoleName RoleName | Remove-IAMRoleFromInstanceProfile -RoleName RoleName | Remove-IAMInstanceProfile
  3. 删除与角色相关的全部策略。以下命令将获取附加到角色的所有策略的列表并分离每个策略。

    PS C:\> Get-IAMAttachedRolePolicies -RoleName RoleName | Unregister-IAMRolePolicy -RoleName RoleName
  4. 键入以下命令可删除角色:

    PS C:\> Remove-IAMRole -RoleName RoleName

删除 IAM 角色 (AWS API)

当您使用 IAM API 删除角色时,必须先删除与角色关联的策略。此外,如果您想要删除包含角色的关联实例配置文件,必须分别删除。

使用 AWS API 删除角色 (API)

  1. 要列出角色所属的所有实例配置文件,请调用 ListInstanceProfilesForRole

    要从角色所属的所有实例配置文件删除该角色,请调用 RemoveRoleFromInstanceProfile。必须提交角色名称和实例配置文件名称。

    如果您不会重用与角色相关联的实例配置文件,请调用 DeleteInstanceProfile 来删除它。

  2. 要列出一个角色的所有策略,请调用 ListRolePolicies

    要删除与该角色相关联的所有策略,请调用 DeleteRolePolicy。必须提交角色名称和策略名称。

  3. 调用 DeleteRole 删除角色。

有关实例配置文件的基本信息,请参阅 使用实例配置文件

有关服务相关角色的一般信息,请参阅使用服务相关角色