全部产品
Search
文档中心

实时计算Flink版:阿里云账号角色授权

更新时间:Jul 19, 2023

开通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: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资源。