撤消 IAM 角色临时安全凭证 - Amazon Identity and Access Management
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

撤消 IAM 角色临时安全凭证

警告

如果您执行此页面上的步骤,则通过担任角色创建的具有当前会话的所有用户对所有 Amazon 操作和资源的访问将被拒绝。这会导致用户丢失未保存的工作。

在允许用户访问具有较长的会话持续时间(例如 12 小时)的 Amazon Web Services Management Console 时,用户的临时凭证不会很快过期。如果用户无意中向未授权第三方公开其凭证,则第三方在会话的持续时间内将具有访问权限。不过,如果需要,可以撤销对某个特定时间点之前发布的角色凭证的所有权限。指定时间之前发布的该角色的所有临时凭证将变得无效。这将强制所有用户重新进行身份验证并请求新的凭证。

注意

您无法撤销服务相关角色对会话的权限。

在使用本主题中的过程撤消角色的权限时,Amazon 会向角色附加新的内联策略来拒绝对所有操作的所有权限。它包括仅当用户在撤销权限时的某个时间点之前 代入角色的情况下应用限制的情况。如果用户在您撤销权限之后 代入角色,则拒绝策略不适用于该用户。

有关拒绝访问的更多信息,请参阅 禁用临时安全凭证的权限

重要

此拒绝策略适用于指定角色的所有用户,而不只是适用于具有持续时间更长的控制台会话的用户。

从角色撤消会话权限所需的最低权限

要从角色成功撤消会话权限,您必须具有该角色的 PutRolePolicy 权限。这允许您将 AWSRevokeOlderSessions 内联策略附加到该角色。

撤消会话权限

您可以从角色撤消会话权限。

立即拒绝对角色凭证的任何当前用户的所有权限
  1. 登录 Amazon Web Services Management Console,然后使用以下网址打开 IAM 控制台:https://console.aws.amazon.com/iam/

  2. 在导航窗格中,请选择 Roles(角色),然后选择要撤消其权限的角色的名称(而不是复选框)。

  3. 在所选角色的 Summary 页面上,选择 Revoke sessions 选项卡。

  4. Revoke sessions 选项卡上,选择 Revoke active sessions

  5. Amazon 要求您确认此操作。选择 I acknowledge that I am revoking all active sessions for this role.(我确认我正在撤消此角色的所有活动会话。)复选框,然后在对话框中选择 Revoke active sessions(撤销活动会话)。

    然后 IAM 会将名为 AWSRevokeOlderSessions 的策略附加到角色。选择撤消活动会话后,此策略将拒绝在过去已经以及未来大约 30 秒钟将会代入该角色的用户的所有访问权限。此未来时间选项考虑了策略的传播延迟,以便处理在更新后的策略在给定区域生效之前获得或续订的新会话。任何在您选择“撤消活动会话”之后超过大约 30 秒代入角色的用户均不受影响。要了解为什么更改并非始终立即可见,请参阅 我所做的更改可能不会立即可见

注意

如果您稍后再次选择撤消活动会话,则将刷新策略中的日期和时间戳,并将再次拒绝在新的指定时间之前代入角色的任何用户的所有访问权限。

以这种方式调用会话的有效用户必须获得临时凭证,新会话才能继续工作。在凭证过期前,Amazon CLI 会缓存凭证。要强制 CLI 删除并刷新已失效的缓存证书,请运行以下命令之一:

Linux、macOS 或 Unix

$ rm -r ~/.aws/cli/cache

Windows

C:\> del /s /q %UserProfile%\.aws\cli\cache

在指定时间之前撤消会话权限

您也可以使用 Amazon CLI 或 SDK 在策略的 Condition 元素中指定 aws:TokenIssueTime 键的值,随时撤消会话权限。

aws:TokenIssueTime 的值早于指定的日期和时间时,该策略会拒绝所有权限。aws:TokenIssueTime 的值对应于临时安全凭证的确切创建时间。aws:TokenIssueTime 值仅存在于使用临时安全凭证签署的 Amazon 请求的上下文中,因此,该策略中的 Deny 语句不会影响使用该 IAM 用户的长期凭证签署的请求。

该策略还可以附加到角色。在这种情况下,该策略只会影响由该角色在指定日期和时间之前创建的临时安全凭证。

{ "Version": "2012-10-17", "Statement": { "Effect": "Deny", "Action": "*", "Resource": "*", "Condition": { "DateLessThan": {"aws:TokenIssueTime": "2014-05-07T23:47:00Z"} } } }

以这种方式调用会话的有效用户必须获得临时凭证,新会话才能继续工作。在凭证过期前,Amazon CLI 会缓存凭证。要强制 CLI 删除并刷新已失效的缓存证书,请运行以下命令之一:

Linux、macOS 或 Unix

$ rm -r ~/.aws/cli/cache

Windows

C:\> del /s /q %UserProfile%\.aws\cli\cache