您开通实时计算服务时,需要授予一个名称为AliyunStreamDefaultRole的系统默认角色给实时计算的服务账号。当且仅当该角色被正确授予后,实时计算才能正常地调用相关服务,例如RDS等。
注意:实时计算必须提前进行角色授权,否则后续不能正常运行。
自动化角色授予流程
当您创建项目或第一次进入项目时,如果没有正确的授予默认角色给实时计算服务账号,会看到如下视图,此时应该点击前往授权,进行角色授权。
点击AliyunStreamDefaultRole>同意授权,即完成了授权的全部内容。
当完成以上授权步骤后,重新刷新实时计算的控制台,就可以进行操作了。如果想要查看AliyunStreamDefaultRole 相关的详细信息,可以登陆Ram的控制台查看,也可以点击查看链接。
实时计算角色当前授权的权限如下:
{
"Version": "1",
"Statement": [
{
"Action": [
"ots:List*",
"ots:DescribeTable",
"ots:Get*",
"ots:*Row"
],
"Resource": "*",
"Effect": "Allow"
},
{
"Action": [
"dhs:Create*",
"dhs:List*",
"dhs:Get*",
"dhs:PutRecords",
"dhs:DeleteTopic"
],
"Resource": "*",
"Effect": "Allow"
},
{
"Action": [
"log:List*",
"log:Get*",
"log:Post*"
],
"Resource": "*",
"Effect": "Allow"
},
{
"Action": [
"mns:List*",
"mns:Get*",
"mns:Send*",
"mns:Publish*",
"mns:Subscribe"
],
"Resource": "*",
"Effect": "Allow"
},
{
"Action": [
"drds:DescribeDrdsInstance",
"drds:ModifyDrdsIpWhiteList"
],
"Resource": "*",
"Effect": "Allow"
},
{
"Action": [
"rds:Describe*",
"rds:ModifySecurityIps*"
],
"Resource": "*",
"Effect": "Allow"
},
{
"Action": [
"vpc:DescribeVpcs",
"vpc:DescribeVSwitches"
],
"Resource": "*",
"Effect": "Allow"
},
{
"Action": [
"ecs:CreateSecurityGroup",
"ecs:AuthorizeSecurityGroup",
"ecs:CreateNetworkInterface",
"ecs:DescribeNetworkInterfaces",
"ecs:AttachNetworkInterface",
"ecs:DescribeNetworkInterfacePermissions",
"ecs:CreateNetworkInterfacePermission"
],
"Resource": "*",
"Effect": "Allow"
},
{
"Action": "oss:*",
"Resource": "*",
"Effect": "Allow"
}
]
}
重新初始化
如果您不小心删除了阿里云实时计算在RAM角色”AliyunStreamDefaultRole”,或者您不小心修改了AliyunStreamDefaultRole的授权策略无法恢复。您可以考虑在RAM中删除该角色,并重新进入实时计算WebConsole,让实时计算尝试重新初始化注册RAM角色的流程。
注意:
- 删除AliyunStreamDefaultRole角色后,可能导致实时计算正在运行的作业瞬间无法读写上下游外部存储,直到后续重新初始化AliyunStreamDefaultRole角色后即可恢复正常。请务必确保这项操作对于线上实时计算业务是否会造成影响。
- RAM删除角色和流计算重新初始化操作均需要当前用户的主账号或者经主账号授权的具备RAM权限子账号操作。
在RAM中,找到角色管理>AliyunStreamDefaultRole>删除,即可删除阿里云实时计算的角色。
进入实时计算WebConsole,实时计算此时就会提示用户进行重新授权。
注意:实时计算和RAM对于授权均有不同程度的缓存,有可能在删除角色或者授权角色后,实时计算仍然提示需要授权角色。这种情况实际上已经授权成功,请选择授权完毕按钮即可。
异常问题
子账号在操作数据存储的时候会出现以下错误信息。
主子账号Role授权
进入RAM地址,进行以下操作为子账号赋权。
AliyunRAMFullAccess权限较大,如果您需要控制子账号的权限范围,只需授予PassRole权限,既可以修改授权策略的Action、Resource。如下示例:
说明:其中45643只是示例uid,请以实际uid为准
{
"Statement": [
{
"Action": "ram:PassRole",
"Effect": "Allow",
"Resource": "acs:ram::45643:role/AliyunStreamDefaultRole"
}
],
"Version": "1"
}
操作步骤
1.新建授权策略
2.授权子账号
3.搜索名称,授权完成
本文转自实时计算——角色授权