服务关联角色是某个云服务在某些情况下,为了完成自身的某个功能,需要获取其他云服务的访问权限而提供的RAM角色。通常情况下,服务关联角色是在您执行某项操作时,由系统自动创建。在自动创建服务关联角色失败或云消息队列 RocketMQ 版不支持自动创建时,您需要手动创建服务关联角色。
背景信息
阿里云访问控制为每个服务关联角色提供了一个系统权限策略,该策略不支持修改。如果您想了解该系统策略的具体内容,可前往指定服务关联角色的详情页面查看。具体信息,请参见系统策略参考。
支持的服务关联角色
云消息队列 RocketMQ 版提供以下服务关联角色,系统将会在您首次使用相关功能时,自动创建对应的服务关联角色。
例如,您首次使用云消息队列 RocketMQ 版仪表盘功能时,系统会自动创建AliyunServiceRoleForOns服务关联角色。
|
角色名称 |
角色权限策略 |
角色权限 |
|
AliyunServiceRoleForOns |
AliyunServiceRolePolicyForOns |
云消息队列 RocketMQ 版通过扮演该RAM角色,可获得如下权限: |
|
AliyunServiceRoleForRMQMigration |
AliyunServiceRolePolicyForRMQMigration |
云消息队列 RocketMQ 版通过扮演该RAM角色,获取访问专有网络VPC的权限,以实现自建RocketMQ集群迁移上云的功能。 |
|
AliyunServiceRoleForRMQDisasterRecovery |
AliyunServiceRolePolicyForRMQDisasterRecovery |
云消息队列 RocketMQ 版通过扮演该RAM角色,获取访问事件总线EventBridge的权限,以实现全球消息复制的功能。 |
|
AliyunServiceRoleForRMQ |
AliyunServiceRolePolicyForRMQ |
云消息队列 RocketMQ 版5.x系列默认策略。如果您创建云消息队列 RocketMQ 版5.x系列实例时,系统会为您完成AliyunServiceRolePolicyForRMQ的自动创建。 |
Serverless 实例创建报错排查
通过 Terraform 或 OpenAPI 创建 RocketMQ 5.x Serverless 实例时,如果收到 EntityNotExist.Role 或“创建 ASK 集群前需要完成服务角色授权”错误,可按以下步骤排查:
-
登录RAM 控制台,在角色页面搜索
AliyunServiceRoleForRMQ。 -
如果角色不存在,使用阿里云账号执行以下命令创建该角色:
aliyun ram CreateServiceLinkedRole --ServiceName rmq.aliyuncs.com --force --region cn-hangzhou -
也可以访问 RocketMQ 控制台首页,系统会自动触发角色创建。
-
角色创建成功后,重新创建实例。
报错信息中的引导链接 https://www.aliyun.com/product/ack/serverless 指向已下线的 ASK 开通页面,该页面已返回 404。请勿创建容器服务(CS)的角色,RocketMQ Serverless 实例所需的是 AliyunServiceRoleForRMQ 服务关联角色。
策略内容
-
AliyunServiceRoleForOns
服务关联角色AliyunServiceRoleForOns被授予的权限策略AliyunServiceRolePolicyForOns的策略内容如下:
{ "Version": "1", "Statement": [ { "Action": [ "cms:DescribeMetricRuleList", "cms:DescribeMetricList", "cms:DescribeMetricData" ], "Resource": "*", "Effect": "Allow" }, { "Action": [ "arms:OpenVCluster", "arms:ListDashboards", "arms:CheckServiceStatus" ], "Resource": "*", "Effect": "Allow" }, { "Action": "ram:DeleteServiceLinkedRole", "Resource": "*", "Effect": "Allow", "Condition": { "StringEquals": { "ram:ServiceName": "ons.aliyuncs.com" } } } ] } -
AliyunServiceRoleForRMQMigration
服务关联角色AliyunServiceRoleForRMQMigration被授予的权限策略AliyunServiceRolePolicyForRMQMigration的策略内容如下:
{ "Version": "1", "Statement": [ { "Effect": "Allow", "Action": [ "privatelink:CreateVpcEndpoint", "privatelink:ListVpcEndpoints", "privatelink:GetVpcEndpointAttribute", "privatelink:AddZoneToVpcEndpoint", "privatelink:ListVpcEndpointZones", "privatelink:RemoveZoneFromVpcEndpoint", "privatelink:DeleteVpcEndpoint", "privatelink:AttachSecurityGroupToVpcEndpoint", "privatelink:ListVpcEndpointSecurityGroups", "privatelink:DetachSecurityGroupFromVpcEndpoint" ], "Resource": "*" }, { "Action": "ram:DeleteServiceLinkedRole", "Resource": "*", "Effect": "Allow", "Condition": { "StringEquals": { "ram:ServiceName": "migration.rmq.aliyuncs.com" } } }, { "Action": "ram:CreateServiceLinkedRole", "Resource": "*", "Effect": "Allow", "Condition": { "StringEquals": { "ram:ServiceName": "privatelink.aliyuncs.com" } } } ] } -
AliyunServiceRoleForRMQDisasterRecovery
服务关联角色AliyunServiceRoleForRMQDisasterRecovery被授予的权限策略AliyunServiceRolePolicyForRMQDisasterRecovery的策略内容如下:
{ "Version": "1", "Statement": [ { "Effect": "Allow", "Action": [ "eventbridge:ListEventStreamings", "eventbridge:DeleteEventStreaming", "eventbridge:CreateEventStreaming", "eventbridge:StartEventStreaming", "eventbridge:UpdateEventStreaming", "eventbridge:PauseEventStreaming", "eventbridge:GetEventStreaming", "Ecs:DescribeSecurityGroups" ], "Resource": "*" }, { "Action": "ram:DeleteServiceLinkedRole", "Resource": "*", "Effect": "Allow", "Condition": { "StringEquals": { "ram:ServiceName": "disaster-recovery.rmq.aliyuncs.com" } } } ] } -
AliyunServiceRoleForRMQ
服务关联角色AliyunServiceRoleForRMQ被授予的权限策略AliyunServiceRolePolicyForRMQ的策略内容如下:
{ "Version": "1", "Statement": [ { "Effect": "Allow", "Action": [ "privatelink:CreateVpcEndpoint", "privatelink:ListVpcEndpoints", "privatelink:GetVpcEndpointAttribute", "privatelink:AddZoneToVpcEndpoint", "privatelink:ListVpcEndpointZones", "privatelink:RemoveZoneFromVpcEndpoint", "privatelink:DeleteVpcEndpoint", "privatelink:AttachSecurityGroupToVpcEndpoint", "privatelink:ListVpcEndpointSecurityGroups", "privatelink:DetachSecurityGroupFromVpcEndpoint", "privatelink:UpdateVpcEndpointZoneConnectionResourceAttribute", "Ecs:CreateSecurityGroup", "Ecs:DeleteSecurityGroup", "Ecs:DescribeSecurityGroupAttribute", "Ecs:DescribeSecurityGroups", "kms:DescribeRegions", "kms:GetKmsInstance", "kms:ListKeys", "kms:ListAliases", "kms:ListResourceTags", "kms:DescribeKey", "kms:TagResource", "kms:UntagResource" ], "Resource": "*" }, { "Action": [ "kms:Encrypt", "kms:Decrypt", "kms:GenerateDataKey" ], "Resource": "*", "Effect": "Allow", "Condition": { "StringEqualsIgnoreCase": { "kms:tag/acs:rocketmq:instance-encryption": "true" } } }, { "Action": "ram:DeleteServiceLinkedRole", "Resource": "*", "Effect": "Allow", "Condition": { "StringEquals": { "ram:ServiceName": "rmq.aliyuncs.com" } } }, { "Action": "ram:CreateServiceLinkedRole", "Resource": "*", "Effect": "Allow", "Condition": { "StringEquals": { "ram:ServiceName": "privatelink.aliyuncs.com" } } } ] }
查看服务关联角色
当服务关联角色创建成功后,您可以在RAM控制台的角色页面查看该服务关联角色的以下信息:
-
基本信息
在角色详情页面的基本信息区域,查看角色基本信息,包括角色名称、创建时间、角色ARN和备注等。
-
权限策略
在角色详情页的{key, select, RAM {RAM 访问控制} Overview {概览} Identities {身份管理} Users {用户} Groups {用户组} Roles {角色} Settings {设置} Permissions {权限管理} Grants {授权} Troubleshoot {权限诊断} Policies {权限策略} Integrations {集成管理} Providers {SSO 管理} Applications {OAuth 应用(公测)} CloudSSO {多账号身份权限(云 SSO)} AccessAnalyzing {访问分析} Analyzers {分析器} Findings {分析结果} Beta {Beta} Governance {AI 云治理中心} other {{key}} }页签,单击权限策略名称,查看权限策略内容。
说明您只能通过服务关联角色,查看其关联的权限策略内容,不能在RAM控制台的{key, select, RAM {RAM 访问控制} Overview {概览} Identities {身份管理} Users {用户} Groups {用户组} Roles {角色} Settings {设置} Permissions {权限管理} Grants {授权} Troubleshoot {权限诊断} Policies {权限策略} Integrations {集成管理} Providers {SSO 管理} Applications {OAuth 应用(公测)} CloudSSO {多账号身份权限(云 SSO)} AccessAnalyzing {访问分析} Analyzers {分析器} Findings {分析结果} Beta {Beta} Governance {AI 云治理中心} other {{key}} }页面直接查看该权限策略。
-
信任策略
在角色详情页的信任策略页签,查看信任策略内容。信任策略是描述RAM角色可信实体的策略,可信实体是指可以扮演RAM角色的实体用户身份。服务关联角色的可信实体为云服务,您可以通过信任策略中的
Service字段查看。
关于如何查看服务关联角色,请参见查看RAM角色。
删除服务关联角色
删除服务关联角色后,依赖该角色的对应功能将无法正常使用,请谨慎删除。
当您长时间不使用云安全中心或者需要注销阿里云账号前,您可能需要在访问控制管理控制台手动删除服务关联角色。具体操作,请参见删除RAM角色。
常见问题
为什么我的RAM用户无法自动创建云消息队列 RocketMQ 版服务关联角色AliyunServiceRoleForOns?
如果阿里云账号已经创建了服务关联角色,RAM用户就会继承该阿里云账号的服务关联角色。如果没有继承,请登录RAM控制台为其添加以下权限策略。
{
"Statement": [
{
"Action": [
"ram:CreateServiceLinkedRole"
],
"Resource": "acs:ram:*:阿里云账号ID:role/*",
"Effect": "Allow",
"Condition": {
"StringEquals": {
"ram:ServiceName": "ons.aliyuncs.com"
}
}
}
],
"Version": "1"
}
请将阿里云账号ID替换为您实际的阿里云账号ID。
如果您的RAM用户被授予该权限策略后,仍然无法自动创建服务关联角色,请为该RAM用户授予以下任一系统权限策略:
-
AliyunMQFullAccess
-
AliyunMQReadOnlyAccess
具体信息,请参见系统权限策略。