可信云服务可以通过RAM角色扮演的方式访问其他云服务的资源。可信实体为阿里云服务的RAM角色分为两种:普通服务角色和服务关联角色。本文主要介绍服务关联角色。
什么是服务关联角色
在某些场景下,一个云服务为了完成自身的某个功能,需要获取其他云服务的访问权限。例如:配置审计(Config)服务要读取您的云资源信息,以获取资源列表和变更历史,就需要获取ECS、RDS等产品的访问权限。阿里云提供了服务关联角色SLR(Service Linked Role)来满足此类场景的需求。
服务关联角色是一种可信实体为阿里云服务的RAM角色,旨在解决跨云服务的授权访问问题。服务关联角色是与某个云服务关联的角色。多数情况下,在您使用特定功能时,关联的云服务会自动创建或删除服务关联角色,不需要您主动创建或删除。通过服务关联角色可以更好地配置云服务正常操作所必需的权限,避免误操作带来的风险。
服务关联角色的权限策略由关联的云服务定义和使用,您不能修改或删除权限策略,也不能为服务关联角色添加或移除权限。
创建服务关联角色
某些云服务将在您执行某些特定操作(例如:创建一个云资源或开启一个功能)时自动创建服务关联角色,您可以在RAM控制台的角色管理页面、API或CLI调用ListRoles的返回结果中查看自动创建的服务关联角色。
此外,您也可以主动创建服务关联角色。具体操作,请参见创建服务关联角色。
服务关联角色会占用您的RAM角色配额。当RAM角色数量超限时,您仍然可以成功创建服务关联角色,但无法创建其他类型的角色。
关于自动创建服务关联角色的详情,请参见对应云服务的文档说明。
删除服务关联角色
某些云服务将在您执行某些特定操作(例如:删除所有资源或关闭一个功能)时自动删除已创建的服务关联角色,但您也可以从控制台主动删除。关于主动删除服务关联角色,详情请参见删除RAM角色。
当您尝试删除一个服务关联角色时,RAM会先检查这个角色是否仍被云资源使用:
如果为否,您可以成功删除该服务关联角色。
如果为是,您暂不能删除该服务关联角色,但可以根据删除失败的提示信息,查看哪些云资源在使用该角色。您需要找到对应的云资源并手动清理这些云资源,然后再删除该服务关联角色。
关于删除服务关联角色的条件,请参见对应云服务的文档说明。
创建和删除服务关联角色所需的权限
通过RAM用户创建或删除服务关联角色时,RAM用户必须具备对应权限。自动创建服务关联角色的场景也需要具备对应权限。
以下将提供一个自定义权限策略示例,允许RAM用户为资源管理(Resource Management)创建和删除服务关联角色。其中,ram:ServiceName
的取值可以从支持服务关联角色的云服务的云服务标识列获取。
{
"Action": [
"ram:CreateServiceLinkedRole",
"ram:DeleteServiceLinkedRole"
],
"Resource": "*",
"Effect": "Allow",
"Condition": {
"StringEquals": {
"ram:ServiceName": "resourcemanager.aliyuncs.com"
}
}
}
创建服务关联角色的权限通常包含在其对应云服务的管理员权限策略(例如:AliyunESSFullAccess)中,因此RAM用户如果具有该云服务的管理员权限,也可以为该云服务创建服务关联角色。
使用服务关联角色
服务关联角色仅限关联的对应云服务使用,其他身份(例如:RAM用户、其他RAM角色)都无法扮演该角色。
您可以在已创建的服务关联角色的信任策略管理页签中,通过Service
字段查看可以使用该角色的云服务。
支持服务关联角色的云服务
支持服务关联角色的云服务,请参见支持服务关联角色的云服务。
不支持服务关联角色的云服务,请使用普通服务角色获取其他云服务的访问权限。