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

背景信息

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

注意事项

  • 如果您提前手动添加了AliyunStreamAsiDefaultRole角色,可能会导致自动化授予时无法跳转到RAM控制台。此时,您需要手动将添加的AliyunStreamAsiDefaultRole角色删除,重新开始自动化授权。
  • 如果您使用手动授权请务必按文档要求添加完整的角色和权限,否则会导致无法登录访问Flink全托管。建议您使用自动化授权的方式进行授权。

自动化授权

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

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

手动授权(方式一)

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

  1. 创建角色。
    1. 登录RAM控制台。
    2. 在左侧导航栏,选择身份管理 > 角色
    3. 角色页面,单击创建角色
    4. 创建角色面板,选择可信实体类型,单击下一步
      可信实体类型如下:
      • 阿里云账号:受信云账号下的子用户可以通过扮演该RAM角色来访问您的云资源,受信云账号可以是当前云账号,也可以是其他云账号。
      • 阿里云服务:受信云服务可以通过扮演RAM角色来访问您的云资源。
      • 身份提供商:身份提供商功能,通过设置SSO可以实现从企业本地账号系统登录阿里云控制台,帮您解决企业的统一用户登录认证要求。

      详情请参见创建可信实体为阿里云账号的RAM角色创建可信实体为阿里云服务的RAM角色或者创建可信实体为身份提供商的RAM角色

    5. 输入相关角色信息,单击完成
    角色名称为AliyunStreamAsiDefaultRole。如果AliyunStreamAsiDefaultRole角色已存在,则不必重复创建该角色。
  2. 添加授权策略。
    1. 登录RAM控制台。
    2. 在左侧导航栏,选择身份管理 > 角色
    3. 角色页面,找到AliyunStreamAsiDefaultRole角色,单击操作列下的精确授权
    4. 添加权限面板,选择权限类型为自定义策略,并输入策略名称。
      需要为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"
                }
            ]
        }
    5. 单击确定
说明 创建好以上角色及策略后,即可正常开通及使用Flink全托管服务。

手动授权(方式二)

如果您不小心删除了AliyunStreamAsiDefaultRole角色或者变更了授权策略导致Flink全托管服务不可用,您可以按照以下操作步骤先删除资源编排服务ROS的资源栈、RAM角色和RAM权限策略后,登录实时计算控制台,重新授权。

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

权限说明

在使用Flink全托管的过程中,不同的使用场景下,您可能会涉及开通以下权限。当您需要开通以下权限时,请参见上文中的自动化授权手动授权(方式一)或者手动授权(方式二)

  • ECS相关权限
    为了能从公网访问开发控制台,需要在您账号下开通弹性公网IP(EIP)。此外,为了连通VPC内的资源,需要在VPC下创建弹性网卡(ENI)。这些ENI会被添加到Flink Serverless专属安全组中,因此Flink服务需要有对EIP、安全组和ENI的操作权限。
    权限名称(Action)权限说明
    ecs:AssociateEipAddress申请EIP地址,您可以通过公网访问Flink服务。
    ecs:AttachNetworkInterface允许Flink服务将您的弹性网卡绑定到Flink资源池。
    ecs:AuthorizeSecurityGroupFlink产品会创建一个新的安全组,该权限用于增加该安全组内一条入方向安全组规则。
    ecs:AuthorizeSecurityGroupEgressFlink产品会创建一个新的安全组,该权限用于增加该安全组内一条出方向安全组规则。
    ecs:CreateNetworkInterface允许Flink服务创建您VPC内的弹性网卡,支持Flink服务连接您的VPC。
    ecs:CreateNetworkInterfacePermission允许Flink服务授权弹性网卡权限。
    ecs:CreateSecurityGroupFlink产品会创建一个新的安全组,该权限用于创建安全组。
    ecs:DeleteNetworkInterfaceFlink任务结束后删除对应资源的弹性网卡。
    ecs:DeleteNetworkInterfacePermission允许Flink服务拥有您的弹性网卡解绑权限。
    ecs:DeleteSecurityGroupFlink产品会创建一个新的安全组,该权限用于删除该安全组。
    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的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:CreateWehook创建Webhock。
    arms:UpdateWebhook更新Webhock。
    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服务查询指定地域的路由器列表。
  • RAM相关权限
    开通Flink全托管的过程中,需要RAM相关权限进行资源配置。
    权限名称(Action)权限说明
    ram:*可以增删改查domain和application这两个RAM资源。