访问分析器通过持续分析您账号或资源目录内的RAM身份权限及实际访问行为,以及与外部账号共享的资源的权限配置行为,帮助您识别过度授权、不活跃身份和外部访问等安全风险,并提供治理建议。本文为您介绍基于分析结果进行权限收敛的通用原则、各场景下的治理操作指引以及回滚恢复方案。
概述
当企业内的RAM身份(用户或角色)被授予超出其业务需求的权限时,即产生过度授权。这不仅增加了因误操作或凭证泄露导致的安全风险,也为满足合规性审计带来了挑战。手动审计和收缩权限耗时耗力,且难以持续。
访问分析器包含过度授权分析器和识别外部访问两种类型。过度授权分析器用于自动识别和治理RAM身份(RAM用户、RAM角色)因过度授权而产生的安全风险;外部访问分析器用于识别信任区域外的身份对您资源的可访问配置。两者结合可帮助您全面管控权限风险。
访问分析器是一项辅助分析工具,其分析结果基于身份和资源权限配置信息以及操作审计(ActionTrail)采集的调用记录。建议您将分析结果作为排查起点,结合业务实际情况进行二次确认后再执行收敛和治理操作。
通用治理原则
无论面对何种类型的分析结果,在执行权限收敛前,建议遵循以下原则。
先排查确认,再执行收敛
访问分析器提供的治理建议基于算法和访问数据生成,无法完全感知您的业务上下文。在应用任何建议前,请务必确认目标身份或资源在当前及可预见的未来是否确实不再需要相关权限。
对于生产环境的关键身份(如运维角色、CI/CD角色、核心应用使用的RAM角色),建议先联系对应的业务负责人确认。
对于权限策略的移除建议,建议进入分析结果详情页,查看已访问服务、已授予服务以及最近访问时间,辅助判断该权限是否不再需要。
对于外部访问分析结果,建议进入详情页查看具体的外部访问主体,确认该访问关系是否为业务所需。
选择适当的变更窗口
权限收敛操作可能对运行中的业务产生影响,建议您:
避开业务高峰期和重要发布窗口执行权限变更。
对于线上核心应用所使用的RAM身份,建议在测试环境先行验证相同权限变更的影响。
如涉及跨账号资源(资源目录场景),请提前与目标账号的管理员沟通并协调变更时间。
操作前准备回滚手段
任何权限收敛操作在执行前,都应具备快速回滚的能力。具体措施包括:
记录变更前状态:在移除策略前,记录目标身份当前附加的所有策略名称及策略类型(系统策略或自定义策略)。
保留自定义策略副本:如需移除自定义策略,建议先保留自定义策略,或导出策略内容备份,避免因误删策略定义导致无法重新授权。
避免直接删除身份:对于不活跃的RAM用户,建议先禁用控制台登录和AccessKey,观察一段时间后再决定是否删除,以便在业务报错时快速恢复。
了解回滚命令:对于通过控制台执行的解除授权操作,可通过RAM OpenAPI(AttachPolicyToUser、AttachPolicyToRole)在必要时快速恢复权限。详细回滚方法请参见本文的回滚与恢复章节。
核心概念
分析结果
分析结果是访问分析器输出的数据对象,包含以下关键信息:
结果类型:分析结果所属的类别,如:
超级管理员用户/角色
特权用户/角色
不活跃的用户/角色
过度授权的用户/角色
结果状态:处理状态(待处理、已解决、已归档)
资源信息:目标资源的名称、类型、所有者
时间信息:创建时间、分析时间、更新时间
结果ID:分析结果的唯一标识符
治理建议
治理建议是访问分析器针对分析结果生成的解决方案,包含:
权限替换:用权限范围较小的策略替换高权限策略。例如,将超级管理员权限(
AdministratorAccess)替换为系统管理员权限(PowerUserAccess)权限移除:移除闲置的权限策略
身份管理:禁用或删除不活跃的身份
结果归档:将符合预期的授权行为归档
判定逻辑
访问分析器通过以下逻辑判定过度授权类型。当一个身份同时满足多个条件时,将依据从上到下的优先级顺序,归入唯一的分析结果类别。
优先级 | 分析结果类型 | 判定逻辑简述 |
1 | 超级管理员用户/角色 | RAM身份拥有账号内所有资源的管理权限,例如被授予了 |
2 | 特权用户/角色 | RAM身份被授予了除 |
3 | 不活跃的用户/角色 | RAM身份在指定闲置访问周期内(默认为90天),未访问过资源或数据,且不满足优先级1和2的条件。注意:未被授予任何权限的用户或角色,即使不活跃,也不会被归入此类。 |
4 | 过度授权的用户/角色 | RAM身份在指定的闲置访问周期内,拥有未使用的服务粒度或操作粒度权限,且不满足以上所有条件。注意:当前对不同服务的粒度支持范围不同,具体可参考使用限制中的粒度支持范围。 |
快速入门:完成一次权限收敛
您可以快速使用访问分析器完成一次基础的权限治理操作:禁用一个不活跃的RAM用户。
准备工作
在开始前,请确保已满足以下条件:
已创建分析器:已在访问分析器控制台创建类型为过度授权的分析器。
具备操作权限:执行治理操作需要相应的RAM权限。建议为操作人员授予
AliyunRAMAccessAnalyzerFullAccess和AliyunRAMFullAccess权限。
操作步骤
定位分析结果
登录RAM控制台。
在左侧导航栏,点击。
在顶部菜单栏,选择分析器实例所在的地域。
在页签,找到类型为不活跃的用户的待处理分析结果并点击。
查看并执行治理建议
在结果列表中,选择一个确认不再需要的目标RAM用户,点击对应的结果 ID。
在分析结果详情页,点击操作列的治理建议页签。稍作等待,系统会显示移除未使用的身份的建议。点击前往治理。
页面将跳转至RAM控制台的用户详情页。可根据实际情况,禁用控制台登录、禁用AccessKey或删除该用户。
验证结果。返回访问分析器控制台,可将该分析结果归档,或等待下一次分析周期后该结果自动消失(转为已解决状态)。
过度授权治理操作指引
如您已熟悉各类分析结果类型,请参照下列操作指引,对不同类型的分析结果执行相应的治理措施。
过度授权分析器的分析结果反映的是统计周期内的权限使用情况。某些权限可能在统计周期内未被调用,但在特定场景(如季度结算、灾备演练、版本发布)下仍然需要。请结合业务实际判断后再执行操作。
治理超级管理员用户/角色 - 替换权限为系统管理员
超级管理员身份通常被授予了AdministratorAccess权限,拥有账号内所有资源的管理权限。此类身份的风险等级最高,一旦凭证泄露将造成全局影响。如该身份确实需要管理员权限(符合预期),建议为RAM用户配置MFA多因素认证并归档该分析结果;如该身份不需要完整管理员权限(不符合预期),可将权限替换为PowerUserAccess(保留除RAM和财务相关权限外的所有管理权限)。
在或页签下,找到结果类型为超级管理员用户/角色的条目,点击具体的结果 ID。
在分析结果详情页,点击操作列的治理建议页签。
在治理建议面板中,找到将权限替换为系统管理员(
PowerUserAccess)的建议。根据资源所有者的不同,执行相应操作:
当前账号:直接点击应用建议。系统将自动为目标身份附加
PowerUserAccess策略,然后分离AdministratorAccess策略。跨账号:系统不支持自动应用。请点击复制URL,然后登录到目标资源所在的账号,访问该URL并手动完成权限替换。
(可选)如果分析器没有给出治理建议,请参见为何治理建议会显示为空?。
风险与回滚:此操作会变更核心权限。执行前请务必评估 PowerUserAccess 是否满足该身份的日常工作需求。若操作后出现问题,请立即前往RAM控制台,为该身份重新授予 AdministratorAccess 权限。
治理超级管理员用户/角色 - 移除未使用的权限策略
如果超级管理员身份上还附加了其他闲置的系统策略或自定义策略,系统也会建议移除这些权限策略。如果有多条权限策略匹配治理建议,则会针对每一条策略生成一条建议。
在或页签下,找到结果类型为超级管理员用户/角色的条目,点击具体的结果 ID。
在分析结果详情页,点击操作列的治理建议页签。
在治理建议面板中,找到移除策略的建议。
根据资源所有者的不同,执行相应操作:
当前账号:点击应用建议,系统将自动分离该策略。
在分析结果详情页治理建议页签的优化授权区域,找到推荐权限策略为无(移除策略)的行(如
AliyunRAMFullAccess),在该行操作列中进行操作。跨账号:点击复制URL,登录目标账号后访问该URL,并手动分离策略。
(可选)如果分析器没有给出治理建议,请参见为何治理建议会显示为空?。
风险与回滚:确认该策略确实不再需要。若误删,可前往RAM控制台,为该身份重新授予被移除的权限策略。
治理特权用户/角色 - 移除未使用的高危权限策略
对于特权用户/角色,治理建议是移除未使用的高危权限策略。操作步骤与上述治理超级管理员用户/角色 - 移除未使用的权限策略相同。
治理不活跃的用户/角色 - 禁用或删除身份
不活跃身份在指定的闲置访问周期内没有任何权限访问活动。长期闲置的身份如果仍保有有效凭证,将成为潜在的安全隐患。
治理前请确认:该身份是否为季节性或周期性使用的账号(如仅用于月末财务结算、季度审计的账号);是否为备用或灾备账号(灾备账号通常长期不活跃,但故障切换时至关重要);对于RAM角色,是否有后台服务在异常情况下才会调用该角色(如应急运维角色、告警处理角色)。如属于上述情况,建议归档该结果而非直接删除。
如确认不再使用,最佳实践是先禁用再观察,最后删除:
在或页签下,找到类型为不活跃的用户/角色的条目,点击具体的结果 ID。
在分析结果详情页,点击操作列的治理建议页签。
在治理建议面板中,找到移除未使用的身份的建议。
根据 资源所有者 的不同,执行相应操作:
当前账号:点击前往治理,页面将跳转至RAM控制台对应的用户或角色详情页。可根据需要禁用登录(清空登录设置)、禁用/删除AccessKey,或直接删除该身份。
跨账号:点击复制资源 URL,登录目标账号后访问该URL进行处理。
复制资源 URL 按钮位于分析结果详情页的治理建议页签下方。
(可选)如果分析器没有给出治理建议,请参见为何治理建议会显示为空?。
治理过度授权的用户/角色 - 移除未使用的权限策略
对于过度授权的用户/角色,治理建议是移除未使用的权限策略。操作步骤与上述治理超级管理员用户/角色 - 移除未使用的权限策略相同。
归档分析结果
若某个分析结果符合业务预期且无需处理,可将其归档。归档后,分析结果的结果状态会从待处理变更为已归档。
单个归档:在分析结果列表的操作列,或在治理建议面板中,点击归档结果。
批量自动归档:如需系统自动忽略特定类型的分析结果(例如,忽略某个特定角色的不活跃状态),可点击保存为归档规则。通过设定规则条件,未来所有匹配该规则的分析结果都将被自动 归档。具体请参见:自动归档分析结果。
查看与恢复:系统默认仅展示待处理的分析结果。如要查看或恢复已归档的分析结果,您可在分析结果列表页面,通过设置筛选条件将结果状态设置为已归档,即可查看所有已归档的结果。对于需要重新处理的条目,可以点击取消归档,该条目会重新变更回待处理状态。
外部访问治理最佳实践
外部访问分析器通过分析OSS Bucket Policy、ACL以及RAM角色信任策略,识别信任区域外身份对您资源的可访问配置。此类分析结果的处理核心在于访问边界管控,即确保只有预期的外部身份才能访问您的资源。
与过度授权分析不同,外部访问分析基于资源策略配置的静态分析,而非访问行为的动态统计。因此,"外部可访问"仅表示策略配置上允许外部访问,不代表该资源已被实际访问或存在实际泄露。
排查思路
在对外部访问分析结果执行治理前,建议按以下步骤排查:
确认外部访问主体是谁:进入分析结果详情页,查看外部访问主体的具体信息。对于OSS Bucket,查看是否包含匿名用户(AllUsers)或特定阿里云账号;对于RAM角色,查看信任策略中的可信实体范围。
确认该访问关系是否为业务所需:判断该外部访问是否属于正常的业务协作(如合作伙伴账号访问、集团内跨部门资源共享、多云架构下的跨账号部署)。
确认授予的权限范围是否合理:即使外部访问是预期的,也应检查授予的权限是否最小化。例如,合作伙伴是否被授予了过高的操作权限。
跨账号场景需多方协调:如涉及其他阿里云账号的外部访问,建议先与访问方及资源所有者确认业务依赖关系,避免因策略收紧导致合作方业务中断。
OSS Bucket外部访问的治理
OSS Bucket的外部访问通常来源于Bucket Policy、Bucket ACL或"阻止公共访问"配置的缺失。
如果该外部访问符合预期(如合作伙伴需要读取特定Bucket):
检查当前授权是否遵循最小权限原则。例如,是否仅授予了必要的Object操作权限(如
GetObject),而非Bucket级别的全部权限。建议将Bucket Policy中的授权范围从通配符(*)收窄到具体的账号ID或RAM角色ARN。
将该分析结果归档,避免重复提示。
如果该外部访问不符合预期(如Bucket被配置为公开访问):
前往OSS控制台,优先检查并开启Bucket级别的"阻止公共访问"功能,这会全局性地禁止该Bucket的公开访问,是最快速有效的收敛手段。
检查Bucket Policy,移除非预期的跨账号授权或匿名访问(Principal为*)的配置。
检查Bucket ACL,确保没有配置为"公共读"或"公共读写"。
修改完成后,等待外部访问分析器重新分析(通常在策略变更后3~5分钟内),确认该分析结果状态变为"已解决"。
RAM角色跨账号信任的治理
RAM角色的信任策略决定了哪些外部身份可以扮演该角色。过度宽松的角色信任策略会导致跨账号权限提升风险。
如果该跨账号信任符合预期(如多云架构下的跨账号授权):
检查信任策略中的Condition条件,建议尽可能增加约束(如指定源IP范围、要求MFA等),降低凭证泄露后的影响面。
检查该角色被授予的权限策略,确保权限最小化。
将该分析结果归档。
如果该跨账号信任不符合预期:
前往RAM控制台,进入该角色详情页,修改信任策略。
将信任策略中的Principal范围收紧,仅保留必要的账号ID或服务标识。
移除任何不必要的通配符授权或过期账号的授权。
修改完成后,观察依赖该角色的业务系统是否正常运行。特别注意跨账号调用该角色的应用,如因信任策略收紧导致STS AssumeRole失败,需要及时恢复。
回滚与恢复
权限收敛操作执行后,如发现业务异常或误操作,请按以下方式快速恢复。
恢复被分离的权限策略
如果您在访问分析器控制台执行了解除授权操作,可通过以下OpenAPI命令重新为身份附加策略:
RAM用户:
aliyun ram AttachPolicyToUser --PolicyType <System|Custom> --PolicyName <策略名称> --UserName <用户名称>RAM角色:
aliyun ram AttachPolicyToRole --PolicyType <System|Custom> --PolicyName <策略名称> --RoleName <角色名称>用户组:
aliyun ram AttachPolicyToGroup --PolicyType <System|Custom> --PolicyName <策略名称> --GroupName <用户组名称>
对于系统策略,直接重新附加同名策略即可。
对于自定义策略,如果策略定义本身已被删除,则无法通过上述命令恢复。因此,在移除自定义策略前,请务必在RAM控制台的权限策略页面备份策略内容。
恢复被禁用的身份
RAM用户:如果仅禁用了控制台登录和AccessKey,可重新创建登录配置(CreateLoginProfile)和启用AccessKey(UpdateAccessKey --Status Active)。
RAM角色:如果已删除角色且没有提前备份信任策略和附加策略信息,需要手动重新创建并配置。
恢复被修改的RAM角色信任策略
如果修改角色信任策略后导致跨账号业务异常,需要尽快恢复原信任策略:
前往RAM控制台,进入该角色详情页的信任策略页签。
如已提前备份原信任策略,直接粘贴恢复。
如未备份,需要手动重新添加被误删的可信实体。对于不确定的账号ID,建议先通过操作审计日志查询近期的AssumeRole调用记录,确认哪些外部身份近期有合法的AssumeRole行为。
恢复归档的分析结果
如某条分析结果被误归档,您可以在分析结果列表页将结果状态筛选为已归档,找到对应条目后点击取消归档,该结果将重新变为待处理状态。
使用限制
分析器类型:本功能仅支持过度授权类型的分析器实例,暂不支持外部访问类型。
粒度支持范围:过度授权分析器会基于权限审计信息分析资源目录或当前账号内所有RAM身份(不含服务关联角色)的权限。其支持的策略类型、云服务及粒度与权限审计保持一致,详见:支持权限审计的云服务。如策略包含不在支持列表内的服务,将无法给出移除权限的建议。
策略类型(仅针对超级管理员替换):超级管理员的权限替换治理建议仅支持系统策略
AdministratorAccess,不支持自定义的管理员策略。策略内容:如果策略内容中包含
Deny或NotAction语句,分析器将无法给出移除权限的建议。授权范围:当管理员权限的授权范围是“资源组”而非“账号”时,该身份不会被判定为超级管理员。
授权方式:权限可直接授予用户或角色,或通过用户组继承。分析器能识别这两种方式,但对用户组继承的授权暂不提供自动治理建议,需管理员手动处理。
数据延迟:治理建议是基于分析结果生成的,分析结果的产生会有一定的延迟(最长24小时)。如果关注治理建议的时效性,您可以尝试手动触发重新扫描(在分析结果详情页点击重新扫描),然后再次查看对应的治理建议。
常见问题
是否有办法批量处理产生的治理建议?
目前不支持批量应用建议。但对于符合预期的特定类型治理建议,可通过创建归档规则来进行自动归档,从而实现批量忽略。
如何确认分析结果的数据有多新?
可在分析结果列表页查看每条结果的更新时间字段,或在结果详情页查看分析时间和更新时间,以确认其数据的时效性。时区显示均为本地时间。
为何治理建议会显示为空?
在分析结果详情页点击治理建议时,如未显示任何建议,表示需您手动处理该分析结果,例如手动移除权限或将结果归档。
造成治理建议为空的常见原因包括:
超级管理员权限替换:若RAM身份在闲置访问周期内已使用过
AdministratorAccess与PowerUserAccess之间的差值权限,分析器无法推荐降权。移除闲置权限:如果RAM身份在闲置访问周期内使用过某权限策略中部分服务,分析器将不建议移除该策略。
如权限策略通过用户组继承,或策略中部分服务不在支持范围内,系统不会生成治理建议。详情请参见:使用限制。
分析结果中的"已访问服务"为空,是否意味着该身份完全没有使用过?
不一定。可能的原因包括:
该身份在跟踪期(2024-02-01起)之前创建且早期有访问,但近期无访问。
该身份的访问行为涉及数据平面操作或内部服务代调用,不在当前分析范围内。
操作审计日志存在延迟(最长不超过24小时)。
建议结合操作审计日志进一步排查该身份的历史访问行为。
外部访问分析结果中的"公开访问"是否意味着我的数据已经泄露?
不一定。外部访问分析器基于策略配置的静态分析判定是否存在公开访问,它无法判断该Bucket中的数据是否已被实际下载或访问。即使策略上允许公开访问,如果该Bucket中没有敏感数据、或该访问路径未被外界知晓,实际风险可能较低。但无论如何,非预期的公开访问配置都应尽快修复。
应用治理建议后,为什么分析结果没有立即消失?
访问分析器在检测到权限变更后,需要一定时间(通常为3~5分钟)重新分析受影响的身份。在此期间,原分析结果的状态会被更新为已解决,同时基于新的权限配置生成新的分析结果(如果仍存在风险)。如果变更后该身份不再满足任何风险条件,则不会生成新的分析结果。
批量治理是否有风险?
是的。虽然访问分析器支持对部分分析结果一键应用建议,但批量操作会同时改变多个身份的权限状态,一旦其中某个身份是业务关键身份,将导致影响面扩大。建议您遵循"小步快跑"原则,逐条确认、逐条处理,尤其是在首次使用访问分析器进行治理时。
资源目录场景下,如何处理成员账号的分析结果?
在资源目录范围内创建的分析器,会分析所有成员账号的RAM身份。对于跨账号的分析结果:
移除未使用权限策略的建议,在当前登录账号下无法直接执行,控制台会提供资源链接,您需要登录到目标账号后手动处理。
不活跃身份的删除或禁用操作,同样需要登录目标账号执行。
建议您定期与成员账号管理员同步治理进展,或通过归档规则自动归档已知且符合预期的分析结果,减少跨账号治理的协调成本。
如何判断权限是否符合实际需求?
当您查看某条具体的分析结果时,建议在详情页关注以下关键属性,以帮助判断当前权限是否满足实际业务需求。如发现权限超出实际需要,可根据界面提供的治理建议进行调整,或手动优化权限配置。
已访问服务/已授予服务:
已授予服务表示在该身份被分配的权限策略中,包含的所有当前分析器支持的云服务数量。您可以通过查看访问记录列表来详细了解这些云服务。
已访问服务表示在闲置周期内,分析器检测到该身份实际使用过的云服务数量。已访问服务会在访问记录列表中优先显示,且显示最近访问时间。您也可以主动筛选周期内有访问的所有云服务。
已访问操作/已授予操作:
已授予操作是指各个已授予服务下所包含的全部操作权限总数。
已访问操作是指分析器检测到该身份在闲置周期内使用过的权限操作数量。
说明注意:分析器对不同云服务的权限审计支持粒度不同,部分服务暂不支持操作粒度级别的访问统计(这部分服务的已访问操作/已授予操作列为空)。具体支持列表请参见:支持权限审计的云服务。
最近访问时间:显示每个已访问服务的最近一次被访问的具体时间。
对于支持操作粒度权限审计的云服务,您可以在操作栏点击查看鉴权操作,详细查看该身份实际访问过的具体操作及其最近访问时间。带有特权标识的操作属于高风险操作,请重点关注。