权限审计概览

作为管理员,您可能会给RAM身份(RAM 用户、RAM 角色)授予超出其实际所需的权限。权限审计功能可以帮助您识别RAM身份所拥有的权限,以及权限的最近访问时间。您可以基于此信息识别未使用的权限,并将其安全地删除,从而遵循RAM身份的最小授权原则。

使用前必读

在使用权限审计功能变更RAM身份的权限之前,请务必查看如下使用须知。

跟踪期

访问的跟踪期于2024-02-01开始,早于此时间的访问将不会被记录。最近访问时间的数据延迟不超过24小时。

尝试访问

最近访问包含对云服务API的所有访问请求,而不仅是访问成功的请求。它包含通过阿里云控制台、通过CLI、SDK或直接访问API的所有尝试。权限审计中出现非预期的访问并不意味着您的账号已被泄露,因为该访问请求有可能已被拒绝。对于请求的详细信息,请查看您的操作审计日志。

报告所有者

只有生成权限审计报告的实体才能查看报告中的权限访问记录详情。通过阿里云控制台查看权限访问记录时,您需要等待报告生成后,才能查看。通过API、SDK或CLI查看权限访问记录时,您的访问凭证必须与生成报告的所有者一致。如果您使用角色的临时凭证(STS Token)生成报告,则必须要用同一角色的STS Token查看权限访问记录详情。

支持的策略类型

权限审计仅分析基于身份的策略,即授予RAM用户、RAM用户组、RAM角色的权限策略。权限审计不会分析其他类型的权限策略,包括基于资源的策略(例如:OSS Bucket Policy)、资源目录的管控策略和会话策略。

支持的审计粒度

  • 服务级别

    在云服务维度对RAM身份的权限和访问进行分析。您可以查看RAM身份被授予的云服务的权限,访问过的云服务及访问云服务的最后时间。以此用来撤销无需使用的系统策略,或者将管理员权限收敛成具体云服务的管理权限。

    支持服务级别审计的云服务,请参见支持权限审计的云服务

  • 操作级别

    在服务级别的基础上,进一步细化到具体的API操作(Action),在操作维度对RAM身份的权限和访问进行分析。您可以查看RAM身份被授予的具体API操作的权限,访问过的API操作及访问API操作的最后时间。以此用来对应用程序进行精细化权限管控,或者对高危权限进行收敛。

    支持操作级别审计的云服务,请参见支持权限审计的云服务审计粒度列标识为操作级别的云服务。

    重要
    • 权限审计仅支持云服务已接入操作审计管控平面的操作,不支持存储在云服务中的数据平面的操作(例如:OSS 的 GetObject)。

    • 对于ram:PassRole这种仅有权限,没有关联API的操作,权限审计不支持该操作。

不支持的场景

在一些业务场景中,阿里云服务会代表您发起对其他云服务API的权限检查。例如,当使用资源中心跨产品、跨地域搜索资源时,资源中心会检查调用者是否拥有目标云产品的查看权限,并仅返回调用者有权限的资源。这种场景下的权限检查并非调用者直接对目标云产品API发起的访问行为,不会包含在权限审计信息中。

涉及这类权限检查的API如下表所示:

云服务

云服务代码

API

资源中心

resourcecenter

SearchResources

GetResourceCounts

GetResourceConfiguration

ListResourceTypes

ExecuteSQLQuery

资源管理

resourcemanager

ListResources

标签

tag

ListTagResources

ListTagKeys

ListTagValues

查看RAM用户的权限访问记录

  1. 使用RAM管理员登录RAM控制台

  2. 在左侧导航栏,选择身份管理 > 用户

  3. 用户页面,单击目标RAM用户名称。

  4. 在RAM用户详情页,单击权限访问Beta页签。

    系统会开始生成RAM用户的权限审计报告,请您耐心等待一会,直到报告生成成功。

  5. 查看权限访问记录。

    您可以查看RAM用户有权访问的云服务、被授予的权限策略以及访问云服务的最后时间。

    对于支持操作级别审计的云服务,您可以单击操作列的查看鉴权操作,查看允许操作的API列表及访问该操作的最后时间。

    image

查看RAM角色的权限访问记录

  1. 使用RAM管理员登录RAM控制台

  2. 在左侧导航栏,选择身份管理 > 角色

  3. 角色页面,单击目标RAM角色名称。

  4. 在RAM角色详情页,单击权限访问Beta页签。

    系统会开始生成RAM角色的权限审计报告,请您耐心等待一会,直到报告生成成功。

    说明

    服务关联角色不支持权限审计,不展示权限访问Beta页签。

  5. 查看权限访问记录。

    您可以查看RAM角色有权访问的云服务、被授予的权限策略以及访问云服务的最后时间。

    对于支持操作级别审计的云服务,您可以单击操作列的查看鉴权操作,查看允许操作的API列表及访问该操作的最后时间。

    image

权限审计常见问题

权限审计报告返回结果为空

权限审计报告返回的结果为空,可能有很多原因。您可以根据以下步骤排查:

  1. 检查是否为RAM身份授予了基于身份的策略。对于RAM用户,请确保该RAM用户至少被授予或通过RAM用户组继承了一条权限策略。对于RAM角色,请确保该RAM角色至少被授予了一条权限策略。

  2. 检查为RAM身份授予的权限策略是否有实际的授权行为。系统会分析RAM身份被授予的所有权限策略,计算出RAM身份实际可能有权限访问的云服务及操作。

  3. 检查为RAM身份授予的云服务或操作是否在支持权限审计的云服务中。

查询权限审计报告返回结果报错“InvalidParameter.Policy.Statement

出现这条报错的原因是权限策略格式错误,报错会同步返回格式错误的权限策略名称及具体原因。请检查该权限策略的详细内容,修复格式错误的内容,再重新生成权限审计报告。

查询权限审计报告返回结果报错“InvalidParameter.Policy.NotAction”

出现这条报错的原因是NotAction元素的值存在格式错误,报错会同步返回无法分析的权限策略名称。请检查此权限策略的详细内容,并修复格式错误的内容,再重新生成权限审计报告。

查询权限审计报告返回结果报错“LengthExceedLimit.Policy”

出现这条报错的原因是您授予的权限策略内容过大无法分析,报错会同步返回无法分析的权限策略名称。为了解决这个问题,您可以尝试按照语句(Statement)拆分这条权限策略,再重新生成权限审计报告。

相关文档

  • 支持权限审计的云服务及审计粒度,请参见支持权限审计的云服务

  • 您还可以使用过度授权分析器持续检测资源目录或当前账号内过度授权的RAM身份。更多信息,请参见识别过度授权