本文为您介绍访问分析器(Access Analyzer)服务关联角色(AliyunServiceRoleForAccessAnalyzer)的应用场景、权限策略及相关操作。
背景信息
服务关联角色(Service Linked Role,简称SLR)是与特定阿里云服务绑定的一种RAM角色。在某些场景下,为了完成自身功能,云服务需要获取访问其他云服务的权限。通过使用服务关联角色,您可以安全地授权云服务代表您访问其他资源,而无需手动创建和管理角色。更多信息,请参见服务关联角色。
应用场景
访问分析器服务关联角色(AliyunServiceRoleForAccessAnalyzer)的应用场景如下:
外部访问分析
当您创建外部访问分析器以识别账号内资源被外部账号访问的情况时,访问分析器需要读取OSS存储桶的权限策略、ACL、RAM角色的信任策略等配置信息,以识别哪些资源对外部账号开放了访问权限。
过度权限访问分析
当您创建过度授权访问分析器以识别账号内拥有过多权限的RAM身份时,访问分析器需要读取RAM身份配置信息(用户、角色、权限策略、登录信息和访问密钥等),并结合操作审计(ActionTrail)的活动日志分析身份的实际使用情况,以发现超级管理员、特权身份、不活跃身份和过度授权身份。
访问分析器通过服务关联角色获取这些只读权限,用于分析权限信息和操作审计活动日志。
权限策略
角色名称:AliyunServiceRoleForAccessAnalyzer
角色权限策略:AliyunServiceRolePolicyForAccessAnalyzer
权限内容:
{
"Version": "1",
"Statement": [
{
"Effect": "Allow",
"Action": [
"oss:GetBucketPolicy",
"oss:GetBucketAcl",
"oss:ListBuckets",
"oss:GetBucketPublicAccessBlock",
"oss:GetBucketPolicyStatus",
"ram:GetPolicy",
"ram:GetRole",
"ram:ListUsers",
"ram:ListRoles",
"ram:GetLoginProfile",
"ram:ListAccessKeys",
"ram:ListEntitiesForPolicy",
"ram:ListUsersForGroup",
"ram:GenerateServiceLastAccessedDetails",
"ram:GetServiceLastAccessedDetails"
],
"Resource": "*"
},
{
"Effect": "Allow",
"Action": [
"actiontrail:CreateServiceTrail",
"actiontrail:DeleteServiceTrail",
"actiontrail:GetServiceTrail",
"actiontrail:GetServiceTrailDeliveryStatus"
],
"Resource": "*"
},
{
"Effect": "Allow",
"Action": "ram:DeleteServiceLinkedRole",
"Resource": "*",
"Condition": {
"StringEquals": {
"ram:ServiceName": "accessanalyzer.aliyuncs.com"
}
}
}
]
}上述权限策略包含了三组权限:
第一组权限允许访问分析器读取OSS存储桶的权限策略、ACL和公开访问配置,以及RAM用户和角色的相关配置信息(登录信息、访问密钥和权限策略的授权信息等),用于外部访问分析和过度授权分析。
第二组权限允许访问分析器创建和管理操作审计(ActionTrail)服务跟踪,以获取活动日志用于分析身份的权限使用情况。
第三组权限允许访问分析器在删除所有分析器后自动清理该服务关联角色。
该策略由Access Analyzer服务按需更新。如需查看策略的最新版本,请在RAM控制台的权限策略页面搜索AliyunServiceRolePolicyForAccessAnalyzer。
创建服务关联角色
访问分析器服务关联角色(AliyunServiceRoleForAccessAnalyzer)会在以下场景中自动创建:
当您在访问分析器控制台首次创建分析器时,会自动创建服务关联角色。
当您使用API调用创建分析器时,会自动创建服务关联角色。
创建不同类型的分析器时,服务关联角色的创建行为如下:
创建“账号范围”的访问分析器:系统在当前账号中创建该服务关联角色。
创建“资源目录范围”的分析器:系统在资源目录中的所有成员账号中创建该服务关联角色。
创建服务关联角色需要RAM权限ram:CreateServiceLinkedRole。如果当前登录身份没有该权限,请联系阿里云账号(主账号)的管理员授予。
查看服务关联角色
当服务关联角色(AliyunServiceRoleForAccessAnalyzer)创建成功后,您可以在RAM控制台查看该角色的基本信息、信任策略和权限策略。
登录RAM控制台。
在左侧导航栏,选择身份管理 > 角色。
在角色列表中搜索
AliyunServiceRoleForAccessAnalyzer,单击角色名称进入角色详情页面。在角色详情页面的基本信息区域,查看角色ID和创建时间等信息。
单击信任策略管理页签,查看信任策略中的
Service字段是否包含accessanalyzer.aliyuncs.com。查看角色的权限策略:
在角色详情页面,单击权限管理页签。
在权限策略列表中查找
AliyunServiceRolePolicyForAccessAnalyzer,单击策略名称。查看策略内容,了解具体的授权范围。
删除服务关联角色
如果您需要删除AliyunServiceRoleForAccessAnalyzer(服务关联角色),需要先判断服务关联角色的对应服务是否已停用。
前提条件
如果您在创建分析器时选择的范围是当前账号,仅需删除当前账号下的所有访问分析器(包括过度授权分析器和外部访问分析器)。
如果您在创建分析器时选择的范围是资源目录,需要删除资源目录范围的分析器,同时需要删除资源目录中所有成员账号内由系统自动创建的服务关联角色。
操作步骤
登录RAM控制台。
在左侧导航栏,选择身份管理 > 角色。
在角色列表中搜索
AliyunServiceRoleForAccessAnalyzer,然后单击对应操作列的删除。在弹出的确认对话框中,单击确定。
如果访问分析器正在使用该服务关联角色,删除操作可能无法完成。请在删除服务关联角色之前,确保所有访问分析器已删除,确认服务关联角色不再被使用后再进行删除操作。
常见问题
为什么创建分析器时需要创建服务关联角色?
访问分析器需要读取您账号内的RAM身份信息、权限策略和操作审计日志来完成分析。通过服务关联角色机制,您可以在可控的权限范围内授权Access Analyzer服务访问这些数据,而无需使用您自己的AccessKey或手动创建角色。
删除服务关联角色会影响已有的分析结果吗?
删除服务关联角色前必须先删除所有分析器。删除分析器后,该分析器产生的所有分析结果和治理建议也会被清除,无法恢复。如果您只是暂时不需要分析器,建议保留角色和分析器,而非删除。
该服务关联角色的权限是否会自动更新?
是的。AliyunServiceRolePolicyForAccessAnalyzer是系统策略,由Access Analyzer服务按需更新。当Access Analyzer支持分析更多类型的资源时,该策略可能会增加相应权限。权限更新由阿里云自动完成,无需您手动操作。