开通Flink全托管服务前,需要授予您的账号AliyunStreamAsiDefaultRole系统默认角色。本文为您介绍两种角色授权的方式。

背景信息

说明 您的账号被正确授予AliyunStreamAsiDefaultRole角色后,Flink全托管服务才能正常地调用专有网络VPC、云服务器ECS、负载均衡SLB和应用实时监控服务ARMS等相关服务来启动Flink全托管的相关组件。

自动化授权

通常,第一次购买产品时,需要您进行自动化授权操作。

  1. 登录实时计算控制台
  2. 单击Flink全托管下的购买产品
  3. 授权请求页面,单击前往RAM进行授权前往授权
  4. 云资源访问授权页面,单击页面下方的同意授权AliyunStreamAsiDefaultRole
    说明 系统已默认勾选AliyunStreamAsiDefaultRole角色。

手动授权(方式一)

如果您不小心删除了AliyunStreamAsiDefaultRole角色或者变更了授权策略导致Flink全托管服务不可用,请按照以下操作步骤重新授权。

  1. 创建角色。
    1. 登录RAM控制台。
    2. 在页面左侧导航栏,单击RAM角色管理
    3. 单击创建RAM角色,并填写角色信息。
      说明 角色名称为AliyunStreamAsiDefaultRole,如果AliyunStreamDefaultRole角色已存在,则不必重复创建该角色。
  2. 添加授权策略。
    1. 登录RAM控制台。
    2. 在左侧导航栏,单击RAM角色管理
    3. RAM角色名称,找到AliyunStreamAsiDefaultRole角色。
    4. 单击精确授权
    5. 权限类型选择为自定义策略
    6. 输入策略名称中,输入策略名称。
      需要为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全托管服务。

手动授权(方式二)

  1. 删除资源编排服务ROS的资源栈。
    1. 登录ROS控制台
    2. 在页面顶部,地域切换为杭州
    3. 在左侧导航栏,单击资源栈
    4. 资源栈名称后,分别输入FlinkServerlessStackFlinkOnAckStack,并单击搜索图标图标。
      说明
      • FlinkServerlessStack:Flink全托管的ROS资源栈统一名称。
      • FlinkOnAckStack:容器服务ACK的ROS资源栈统一名称。
    5. 在对应资源栈操作列中,单击删除,在弹出的对话框中,单击确定
  2. 删除RAM角色。
    1. 登录RAM控制台。
    2. 在左侧导航栏,单击RAM角色管理
    3. 在搜索栏中,输入AliyunStreamAsiDefaultRole
    4. 操作列中,单击删除,在弹出的对话框中,单击确定
      说明 您需要单击AliyunStreamAsiDefaultRole名称,进入角色详情页面,移除权限后,此角色才能删除成功。
  3. 删除RAM权限策略。
    1. 登录RAM控制台。
    2. 在左侧导航栏,单击权限管理 > 权限策略管理
    3. 在搜索栏中,分别输入AliyunStreamAsiDefaultRolePolicy0AliyunStreamAsiDefaultRolePolicy1FlinkServerlessPolic
    4. 操作列中,单击删除,在弹出的对话框中,单击确定
  4. 在实时计算控制台,重新授权。
    1. 登录实时计算控制台
    2. 单击Flink全托管下的购买产品
    3. 授权请求页面,单击前往RAM进行授权前往授权
    4. 云资源访问授权页面,单击页面下方的同意授权AliyunStreamAsiDefaultRole

权限说明

  • ECS相关权限
    为了能从公网访问开发控制台,需要在您账号下开通弹性公网IP(EIP)。此外,为了连通VPC内的资源,需要在VPC下创建弹性网卡(ENI)。这些ENI会被添加到Flink Serverless专属安全组中,因此Flink服务需要有对EIP、安全组和ENI的操作权限。
    注意 EIP的公网流量会产生额外费用。
    权限名称(Action) 权限说明
    ecs:AssociateEipAddress 申请EIP地址,您可以通过公网访问Flink服务。
    ecs:AttachNetworkInterface 允许Flink服务将您的网卡绑定到Flink资源池。
    ecs:AuthorizeSecurityGroup Flink产品会创建一个新的安全组,该权限用于增加该安全组内一条入方向安全组规则。
    ecs:AuthorizeSecurityGroupEgress Flink产品会创建一个新的安全组,该权限用于增加该安全组内一条出方向安全组规则。
    ecs:CreateNetworkInterface 允许Flink服务创建您VPC内的弹性网卡,支持Flink服务连接您的VPC。
    ecs:CreateNetworkInterfacePermission 允许您的网卡绑定Flink Serverless资源池。
    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的相关权限。
    注意 按量付费的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:DescribeLoadBalancerHTTPSListenerAttributes 允许Flink服务查询HTTPS监听配置。
    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相关权限
    列出您在所选地域下的Bucket。
    权限名称(Action) 权限说明
    oss:ListBuckets 允许Flink服务查看OSS Bucket列表。
  • ARMS相关权限
    Flink的指标会存入ARMS,因此会为您开通ARMS服务。
    注意 您可以免费使用ARMS中Flink相关Metric的存储。
    权限名称(Action) 权限说明
    arms:ListDashboards 允许Flink服务查看ARMS Dashboard列表。
  • VPC相关权限
    开通Fink全托管的过程中,需要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服务查询指定地域的路由器列表。
  • RAM相关权限
    开通Fink全托管的过程中,需要RAM相关权限进行资源配置。
    权限名称(Action) 权限说明
    ram:* 可以增删改查domain和application这两个RAM资源。