开通Flink全托管服务前,需要授予您的阿里云账号AliyunStreamAsiDefaultRole系统默认角色。本文为您介绍角色授权的两种方式。
背景信息
您的阿里云账号被正确授予AliyunStreamAsiDefaultRole角色后,Flink全托管服务才能正常地调用专有网络VPC、云服务器ECS、负载均衡SLB和应用实时监控服务ARMS等相关服务来启动Flink全托管的相关组件。
注意事项
如果您提前手动添加了AliyunStreamAsiDefaultRole角色,可能会导致自动化授予时无法跳转到RAM控制台。此时,您需要手动将添加的AliyunStreamAsiDefaultRole角色删除,重新开始自动化授权。
如果您使用手动授权请务必按文档要求添加完整的角色和权限,否则会导致无法登录访问Flink全托管。建议您使用自动化授权的方式进行授权。
自动化授权
通常,第一次购买产品时,需要您进行自动化授权操作。
登录实时计算控制台。
单击Flink全托管下的立即购买。
在授权请求页面,单击前往RAM进行授权。
在云资源访问授权页面,单击页面下方的同意授权。
说明系统已默认勾选AliyunStreamAsiDefaultRole角色。
手动授权(方式一)
如果您不小心删除了AliyunStreamAsiDefaultRole角色或者变更了授权策略导致Flink全托管服务不可用,请按照以下操作步骤重新授权。
创建角色。
登录RAM控制台。
在左侧导航栏,选择 。
在角色页面,单击创建角色。
在创建角色面板,选择可信实体类型,单击下一步。
可信实体类型如下:
阿里云账号:受信云账号下的子用户可以通过扮演该RAM角色来访问您的云资源,受信云账号可以是当前云账号,也可以是其他云账号。
阿里云服务:受信云服务可以通过扮演RAM角色来访问您的云资源。
身份提供商:身份提供商功能,通过设置SSO可以实现从企业本地账号系统登录阿里云控制台,帮您解决企业的统一用户登录认证要求。
详情请参见创建可信实体为阿里云账号的RAM角色、创建可信实体为阿里云服务的RAM角色或者创建可信实体为身份提供商的RAM角色。
输入相关角色信息,单击完成。
角色名称为AliyunStreamAsiDefaultRole。如果AliyunStreamAsiDefaultRole角色已存在,则不必重复创建该角色。
添加授权策略。
登录RAM控制台。
在左侧导航栏,选择 。
在角色页面,找到AliyunStreamAsiDefaultRole角色,单击操作列下的精确授权。
在添加权限面板,选择权限类型为自定义策略,并输入策略名称。
需要为AliyunStreamAsiDefaultRole角色添加三个授权策略:
策略一:自定义策略(AliyunStreamAsiDefaultRolePolicy0)
{ "Version": "1", "Statement": [ { "Action": "oss:ListBuckets", "Resource": "acs:oss:*:*:*", "Effect": "Allow" }, { "Action": [ "ecs:AssociateEipAddress", "ecs:AttachNetworkInterface", "ecs:AuthorizeSecurityGroup", "ecs:AuthorizeSecurityGroupEgress", "ecs:CreateNetworkInterface", "ecs:CreateNetworkInterfacePermission", "ecs:CreateSecurityGroup", "ecs:DeleteNetworkInterface", "ecs:DeleteNetworkInterfacePermission", "ecs:DeleteSecurityGroup", "ecs:DescribeNetworkInterfacePermissions", "ecs:DescribeNetworkInterfaces", "ecs:DescribeSecurityGroupAttribute", "ecs:DescribeSecurityGroupReferences", "ecs:DescribeSecurityGroups", "ecs:DetachNetworkInterface", "ecs:JoinSecurityGroup", "ecs:LeaveSecurityGroup", "ecs:ModifyNetworkInterfaceAttribute", "ecs:ModifySecurityGroupAttribute", "ecs:ModifySecurityGroupPolicy", "ecs:ModifySecurityGroupPolicy", "ecs:ModifySecurityGroupRule", "ecs:RevokeSecurityGroup", "ecs:RevokeSecurityGroupEgress", "ecs:UnassociateEipAddress" ], "Resource": "*", "Effect": "Allow" }, { "Action": [ "arms:ListDashboards" ], "Resource": "*", "Effect": "Allow" }, { "Action": [ "vpc:DescribeVpcAttribute", "vpc:DescribeVpcs", "vpc:DescribeVSwitchAttributes", "vpc:DescribeVSwitches", "vpc:DescribeRouteTableList", "vpc:DescribeRouteTables", "vpc:DescribeRouteEntryList", "vpc:DescribeRouterInterfaceAttribute", "vpc:DescribeRouterInterfaces", "vpc:DescribeVRouters" ], "Resource": "*", "Effect": "Allow" } ] }
策略二:自定义策略(AliyunStreamAsiDefaultRolePolicy1)
{ "Version": "1", "Statement": [ { "Action": [ "slb:AddBackendServers", "slb:AddListenerWhiteListItem", "slb:AddTags", "slb:AddVServerGroupBackendServers", "slb:CreateLoadBalancer", "slb:CreateLoadBalancerHTTPListener", "slb:CreateLoadBalancerHTTPSListener", "slb:CreateLoadBalancerTCPListener", "slb:CreateLoadBalancerUDPListener", "slb:CreateRules", "slb:CreateVServerGroup", "slb:DeleteLoadBalancer", "slb:DeleteLoadBalancerListener", "slb:DeleteRules", "slb:DeleteServerCertificate", "slb:DeleteVServerGroup", "slb:DescribeHealthStatus", "slb:DescribeListenerAccessControlAttribute", "slb:DescribeLoadBalancerAttribute", "slb:DescribeLoadBalancerHTTPListenerAttribute", "slb:DescribeLoadBalancerHTTPListenerAttributes", "slb:DescribeLoadBalancerHTTPSListenerAttribute", "slb:DescribeLoadBalancerTCPListenerAttribute", "slb:DescribeLoadBalancerUDPListenerAttribute", "slb:DescribeLoadBalancers", "slb:DescribeRegions", "slb:DescribeRules", "slb:DescribeServerCertificates", "slb:DescribeTags", "slb:DescribeVServerGroupAttribute", "slb:DescribeVServerGroups", "slb:ModifyLoadBalancerInstanceSpec", "slb:ModifyLoadBalancerInternetSpec", "slb:ModifyLoadBalancerPayType", "slb:RemoveBackendServers", "slb:RemoveListenerWhiteListItem", "slb:RemoveVServerGroupBackendServers", "slb:SetBackendServers", "slb:SetListenerAccessControlStatus", "slb:SetLoadBalancerHTTPListenerAttribute", "slb:SetLoadBalancerHTTPSListenerAttribute", "slb:SetLoadBalancerName", "slb:SetLoadBalancerStatus", "slb:SetLoadBalancerTCPListenerAttribute", "slb:SetLoadBalancerUDPListenerAttribute", "slb:SetRule", "slb:SetServerCertificateName", "slb:SetVServerGroupAttribute", "slb:StartLoadBalancerListener", "slb:StopLoadBalancerListener", "slb:UploadServerCertificate" ], "Resource": "*", "Effect": "Allow" } ] }
策略三:自定义策略(FlinkServerlessPolicy)
{ "Version": "1", "Statement": [ { "Action": [ "ram:*" ], "Resource": [ "acs:ram:*:*:domain/*", "acs:ram:*:*:application/*" ], "Effect": "Allow" } ] }
单击确定。
创建好以上角色及策略后,即可正常开通及使用Flink全托管服务。
手动授权(方式二)
如果您不小心删除了AliyunStreamAsiDefaultRole角色或者变更了授权策略导致Flink全托管服务不可用,您可以按照以下操作步骤先删除资源编排服务ROS的资源栈、RAM角色和RAM权限策略后,登录实时计算控制台,重新授权。
删除资源编排服务ROS的资源栈。
登录ROS控制台。
在左侧导航栏,单击资源栈。
在页面顶部,地域切换为杭州。
在资源栈名称后,分别输入FlinkServerlessStack和FlinkOnAckStack,并单击
图标。
说明FlinkServerlessStack:Flink全托管的ROS资源栈统一名称。
FlinkOnAckStack:容器服务ACK的ROS资源栈统一名称。
在对应资源栈操作列中,单击删除,在弹出的对话框中,单击确定。
删除RAM角色。
登录RAM控制台。
在左侧导航栏,选择 。
在搜索栏中,输入AliyunStreamAsiDefaultRole。单击结果中的AliyunStreamAsiDefaultRole角色名称,进入角色详情页面。
选择所有权限策略,单击解除授权。
重要您需要将对应角色的所有权限策略解除授权后,此角色才能删除成功。
返回上一页面,单击AliyunStreamAsiDefaultRole角色操作列下的删除,在弹出的对话框中,单击确定。
删除RAM权限策略。
登录RAM控制台。
在左侧导航栏,单击 。
在搜索栏中,分别输入AliyunStreamAsiDefaultRolePolicy0、AliyunStreamAsiDefaultRolePolicy1和FlinkServerlessPolicy。
在操作列中,单击删除,在弹出的对话框中,单击确定。
在实时计算控制台,重新授权。
登录实时计算控制台。
单击Flink全托管下的购买产品。
在授权请求页面,单击前往RAM进行授权。
在云资源访问授权页面,单击页面下方的同意授权。
权限说明
在使用Flink全托管的过程中,不同的使用场景下,您可能会涉及开通以下权限。当您需要开通以下权限时,请参见上文中的自动化授权、手动授权(方式一)或者手动授权(方式二)。
ECS相关权限
为了能从公网访问开发控制台,需要在您账号下开通弹性公网IP(EIP)。此外,为了连通VPC内的资源,需要在VPC下创建弹性网卡(ENI)。这些ENI会被添加到Flink Serverless专属安全组中,因此Flink服务需要有对EIP、安全组和ENI的操作权限。
权限名称(Action)
权限说明
ecs:AssociateEipAddress
申请EIP地址,您可以通过公网访问Flink服务。
ecs:AttachNetworkInterface
允许Flink服务将您的弹性网卡绑定到Flink资源池。
ecs:AuthorizeSecurityGroup
Flink产品会创建一个新的安全组,该权限用于增加该安全组内一条入方向安全组规则。
ecs:AuthorizeSecurityGroupEgress
Flink产品会创建一个新的安全组,该权限用于增加该安全组内一条出方向安全组规则。
ecs:CreateNetworkInterface
允许Flink服务创建您VPC内的弹性网卡,支持Flink服务连接您的VPC。
ecs:CreateNetworkInterfacePermission
允许Flink服务授权弹性网卡权限。
ecs:CreateSecurityGroup
Flink产品会创建一个新的安全组,该权限用于创建安全组。
ecs:DeleteNetworkInterface
Flink任务结束后删除对应资源的弹性网卡。
ecs:DeleteNetworkInterfacePermission
允许Flink服务拥有您的弹性网卡解绑权限。
ecs:DeleteSecurityGroup
Flink产品会创建一个新的安全组,该权限用于删除该安全组。
ecs:DescribeNetworkInterfacePermissions
允许您的弹性网卡从Flink Serverless资源池解绑。
ecs:DescribeNetworkInterfaces
允许Flink服务查询弹性网卡。
ecs:DescribeSecurityGroupAttribute
允许Flink服务查询一个安全组的安全组规则。
ecs:DescribeSecurityGroupReferences
允许Flink服务查询安全组及安全组级别的授权行为。
ecs:DescribeSecurityGroups
允许Flink服务查询创建的安全组的基本信息。
ecs:DetachNetworkInterface
允许Flink服务将您的弹性网卡从Flink资源池解绑。
ecs:JoinSecurityGroup
允许Flink服务将弹性网卡加入指定安全组。
ecs:LeaveSecurityGroup
允许Flink服务将弹性网卡移除指定安全组。
ecs:ModifyNetworkInterfaceAttribute
允许Flink服务修改一个弹性网卡的名称、描述以及所属安全组等。
ecs:ModifySecurityGroupAttribute
允许Flink服务修改一个安全组的名称或者描述。
ecs:ModifySecurityGroupPolicy
允许Flink服务修改安全组内的连通策略。
ecs:ModifySecurityGroupRule
允许Flink服务修改安全组入方向规则的描述信息。
ecs:RevokeSecurityGroup
允许Flink删除一条安全组入方向的权限。
ecs:RevokeSecurityGroupEgress
允许Flink删除一条安全组出方向的权限。
ecs:UnassociateEipAddress
允许Flink服务释放EIP。
负载均衡SLB相关权限
为了您能从公网访问开发控制台,需要在您账号下开通按量付费SLB服务,因此需要管理SLB的相关权限。
权限名称(Action)
权限说明
slb:AddBackendServers
允许Flink服务修改负载均衡的Backend。
slb:AddListenerWhiteListItem
允许Flink服务添加监听访问控制白名单。
slb:AddTags
允许Flink服务为指定的负载均衡实例添加标签。
slb:AddVServerGroupBackendServers
允许Flink服务向指定的后端服务器组中添加后端服务器。
slb:CreateLoadBalancer
允许Flink服务创建负载均衡实例。
slb:CreateLoadBalancerHTTPListener
允许Flink服务创建HTTP监听。
slb:CreateLoadBalancerHTTPSListener
允许Flink服务创建HTTPS监听。
slb:CreateLoadBalancerTCPListener
允许Flink服务创建TCP监听。
slb:CreateLoadBalancerUDPListener
允许Flink服务创建UDP监听。
slb:CreateRules
允许Flink服务为指定HTTP或HTTPS监听创建转发规则。
slb:CreateVServerGroup
允许Flink服务添加后端服务器组并向指定的后端服务器组中添加后端服务器。
slb:DeleteLoadBalancer
允许Flink服务删除负载均衡实例。
slb:DeleteLoadBalancerListener
允许Flink服务删除后端监听。
slb:DeleteRules
允许Flink服务删除指定HTTP或HTTPS监听的转发规则。
slb:DeleteVServerGroup
允许Flink服务删除服务器组。
slb:DescribeHealthStatus
允许Flink服务查询后端服务器的健康状态。
slb:DescribeListenerAccessControlAttribute
允许Flink服务查询指定负载均衡监听的白名单配置。
slb:DescribeLoadBalancerAttribute
允许Flink服务查询指定负载均衡实例的详细信息。
slb:DescribeLoadBalancerHTTPListenerAttribute
允许Flink服务查询HTTP监听配置。
slb:DescribeLoadBalancerHTTPSListenerAttribute
允许Flink服务查询HTTPS监听配置。
slb:DescribeLoadBalancerTCPListenerAttribute
允许Flink服务查询TCP监听配置。
slb:DescribeLoadBalancerUDPListenerAttribute
允许Flink服务查询UDP监听配置。
slb:DescribeLoadBalancers
允许Flink服务查询已创建的负载均衡实例。
slb:DescribeRegions
允许Flink服务查询可用负载均衡实例的地域。
slb:DescribeRules
允许Flink服务查询指定监听已配置的转发规则。
slb:DescribeTags
允许Flink服务查询Tags列表。
slb:DescribeVServerGroupAttribute
允许Flink服务查询服务器组的详细信息。
slb:DescribeVServerGroups
允许Flink服务查询服务器组列表。
slb:ModifyLoadBalancerInstanceSpec
允许Flink服务修改负载均衡的示例规格。
slb:ModifyLoadBalancerInternetSpec
允许Flink服务修改公网负载均衡实例的计费方式(按流量计费或按带宽计费)。
slb:ModifyLoadBalancerPayType
允许Flink服务修改公网负载均衡实例的购买方式(按量付费或包年包月)。
slb:RemoveBackendServers
允许Flink服务移除后端服务器。
slb:RemoveListenerWhiteListItem
允许Flink服务删除监听白名单中的IP。
slb:RemoveVServerGroupBackendServers
允许Flink服务从指定的后端服务器组中移除后端服务器。
slb:SetBackendServers
允许Flink服务设置后端服务器权重。
slb:SetListenerAccessControlStatus
允许Flink服务设置是否开启指定监听的白名单访问控制。
slb:SetLoadBalancerHTTPListenerAttribute
允许Flink服务修改HTTP监听的配置。
slb:SetLoadBalancerHTTPSListenerAttribute
允许Flink服务修改HTTPS监听的配置。
slb:SetLoadBalancerName
允许Flink服务设置负载均衡实例的名称。
slb:SetLoadBalancerStatus
允许Flink服务设置负载均衡实例的状态。
slb:SetLoadBalancerTCPListenerAttribute
允许Flink服务修改TCP监听的配置。
slb:SetLoadBalancerUDPListenerAttribute
允许Flink服务修改UDP监听的配置。
slb:SetRule
允许Flink服务修改虚拟服务器的转发规则。
slb:SetServerCertificateName
允许Flink服务设置服务器证书名称。
slb:SetVServerGroupAttribute
允许Flink服务修改虚拟服务器组配置。
slb:StartLoadBalancerListener
允许Flink服务启动指定监听。
slb:StopLoadBalancerListener
允许Flink服务停止指定监听。
OSS相关权限
为了使您能够查看OSS Bucket列表,需要您开通OSS相关权限。
权限名称(Action)
权限说明
oss:ListBuckets
允许Flink服务查看OSS Bucket列表。
oss:GetBucketInfo
获取存储空间(Bucket)的相关信息。
oss:GetObjectMetadata
获取某个文件的元信息。
oss:GetObject
获取某个文件。
oss:ListObjects
列举存储空间(Bucket)中所有文件(Object)的信息。
oss:PutObject
上传文件。
oss:CopyObject
拷贝同一地域下相同或不同存储空间(Bucket)之间的文件(Object)。
oss:CompleteMultipartUpload
在将所有数据Part都上传完成后来完成整个文件的分片上传。
oss:AbortMultipartUpload
取消MultipartUpload事件并删除对应的Part数据。
oss:InitiateMultipartUpload
使用Multipart Upload模式传输数据前,通知OSS初始化一个Multipart Upload事件。
oss:UploadPartCopy
从一个已存在的Object中拷贝数据来上传一个Part。
oss:UploadPart
根据指定的Object名和uploadId来分块(Part)上传数据。
oss:DeleteObject
删除某个文件(Object)。
oss:PutBucketcors
为指定的存储空间(Bucket)设置跨域资源共享CORS(Cross-Origin Resource Sharing)规则。
oss:GetBucketCors
获取指定存储空间(Bucket)当前的跨域资源共享CORS(Cross-Origin Resource Sharing)规则。
oss:PutBucket
创建存储空间(Bucket)。
说明如果您使用OSS的KMS加密能力,则需要对AliyunStreamAsiDefaultRole角色增加KMS的相关权限策略,才能正常使用。策略详情请参见上传文件至设置了默认加密方式的Bucket。
ARMS相关权限
Flink的指标会存入ARMS,因此会为您开通ARMS服务。
权限名称(Action)
权限说明
arms:ListDashboards
查看ARMS大盘信息。
arms:CreateContact
创建联系人。
arms:DeleteContact
删除联系人。
arms:SearchContact
查找联系人。
arms:UpdateContact
更新联系人。
arms:CreateContactGroup
创建联系人组。
arms:DeleteContactGroup
删除联系人组。
arms:SearchContactGroup
查找联系人组。
arms:UpdateContactGroup
更新联系人组。
arms:SearchAlertRules
查找报警规则。
arms:CreateAlertRules
创建报警规则。
arms:UpdateAlertRules
更新报警规则。
arms:DeleteAlertRules
删除报警规则。
arms:StartAlertRule
启动报警规则。
arms:StopAlertRule
暂停报警规则。
arms:SearchAlarmHistories
查看历史报警信息。
arms:OpenArmsService
开通ARMS服务。
arms:CreateWebhook
创建Webhook。
arms:UpdateWebhook
更新Webhook。
arms:CreateDispatchRule
创建分派规则。
arms:ListDispatchRule
查看分派规则列表。
arms:DeleteDispatchRule
删除分派规则。
arms:UpdateDispatchRule
更新分派规则。
arms:DescribeDispatchRule
查看分派规则详情。
VPC相关权限
开通Flink全托管的过程中,需要VPC内资源的Describe权限。
权限名称(Action)
权限说明
vpc:DescribeVpcAttribute
允许Flink服务查询指定VPC的配置信息。
vpc:DescribeVpcs
允许Flink服务查询已经创建的VPC。
vpc:DescribeVSwitchAttributes
允许Flink服务查询指定交换机的信息。
vpc:DescribeVSwitches
允许Flink服务查询已创建的交换机。
vpc:DescribeRouteTableList
允许Flink服务查询路由表列表。
vpc:DescribeRouteTables
允许Flink服务查询指定路由表。
vpc:DescribeRouteEntryList
允许Flink服务查询路由表条目列表。
vpc:DescribeRouterInterfaceAttribute
允许Flink服务查询路由器接口配置。
vpc:DescribeRouterInterfaces
允许Flink服务查询路由器接口。
vpc:DescribeVRouters
允许Flink服务查询指定地域的路由器列表。
vpc:CreateVpc
创建专有网络。
vpc:CreateVSwitch
创建交换机。
RAM相关权限
开通Flink全托管的过程中,需要RAM相关权限进行资源配置。
权限名称(Action)
权限说明
ram:*
可以增删改查domain和application这两个RAM资源。