全部产品
Search
文档中心

实时计算Flink版:RAM授权

更新时间:Oct 24, 2023

通过RAM用户或者RAM角色等方式访问实时计算控制台,并进行购买、查看或者删除工作空间等操作时,需要RAM用户或者RAM角色拥有相应的权限。本文为您介绍Flink支持的权限策略类型、以及如何进行RAM授权。

权限策略类型

权限策略是用语法结构描述的一组权限的集合,可以精确地描述被授权的资源集、操作集以及授权条件。RAM支持的权限策略基本元素和语言规范,请参见权限策略基本元素权限策略语法和结构

RAM支持以下两种权限策略:

  • 系统策略:统一由阿里云创建,用户只能使用不能修改,策略的版本更新由阿里云维护。Flink支持的系统策略,详情请参见系统权限策略

  • 自定义策略:用户可以自主创建、更新和删除,策略的版本更新由客户自己维护。Flink支持的自定义策略,详情请参见自定义权限策略

RAM授权操作

通过为RAM用户或RAM角色绑定权限策略,可以获得权限策略中指定的访问权限。本文为您介绍如何为RAM用户授权。RAM角色授权操作类似,详情请参见为RAM角色授权

  1. 使用阿里云账号(主账号)或具有管理权限的RAM用户登录RAM控制台

  2. 在左侧导航栏,选择身份管理 > 用户

  3. 用户页面,单击目标RAM用户操作列的添加权限

  4. 添加权限面板,为RAM用户添加权限。

    系统策略

    参数

    说明

    授权范围

    选择所需的应用范围:

    • 整个云账号:权限在当前阿里云账号内生效。

    • 指定资源组:权限在指定的资源组内生效。

    授权主体

    被授权主体,即需要授权的RAM用户,系统会自动填入当前的RAM用户,您也可以添加其他RAM用户。

    选择权限

    • 系统策略:Flink全托管支持的系统策略详情,请参见系统权限策略

    • 自定义策略:创建步骤请参见创建自定义权限策略。Flink全托管支持的自定义策略列表,请参见自定义权限策略。查看所有工作空间信息的自定义策略脚本示例如下。

      {
          "Version": "1",
          "Statement":  [
              {
                  "Action": "stream:DescribeVvpInstances",
                  "Resource": "*",
                  "Effect": "Allow"
              }
          ]
      }
  5. 单击确定

  6. 单击完成

系统权限策略

策略

名称

说明

流计算(Stream)服务所有权限

AliyunStreamFullAccess

包括自定义权限策略中所有的权限。

只读访问流计算(Stream)服务

AliyunStreamReadOnlyAccess

包含自定义权限策略中所有以Describe和Query开头的权限。

费用中心(BSS)的权限

AliyunBSSOrderAccess

配置该权限后,您可以在控制台进行查看、资源变配以及续费。

自定义权限策略

Flink全托管权限策略

说明

权限策略中Action表示要执行的操作,Resource表示要操作的对象,Effect表示授权效果是允许还是禁止。权限策略语法和结构的详情请参见权限策略语法和结构。您需要将策略内容中的以下参数替换为您的实际值。需要替换的参数如下:

  • {#regionId}:目标Flink全托管工作空间所在的地域。

  • {#accountId}:阿里云账号的uid。

  • {#instanceId}:目标Flink全托管订单实例ID。

  • {#namespace}:目标项目空间的名称。

  • Flink全托管工作空间

    权限

    策略内容

    新购Flink全托管

    {
        "Version": "1",
        "Statement": [
            {
                "Action": "stream:CreateVvpInstance",
                "Resource": "acs:stream:{#regionId}:{#accountId}:vvpinstance/*",
                "Effect": "Allow"
            }
        ]
    }

    查看工作空间

    {
        "Version": "1",
        "Statement": [
            {
                "Action": "stream:DescribeVvpInstances",
                "Resource": "acs:stream:{#regionId}:{#accountId}:vvpinstance/*",
                "Effect": "Allow"
            }
        ]
    }

    释放按量付费工作空间

    {
        "Version": "1",
        "Statement": [
            {
                "Action": "stream:DeleteVvpInstance",
                "Resource": "acs:stream:{#regionId}:{#accountId}:vvpinstance/{#instanceId}",
                "Effect": "Allow"
            }
        ]
    }

    工作空间续费

    {
        "Version": "1",
        "Statement": [
            {
                "Action": "stream:RenewVvpInstance",
                "Resource": "acs:stream:{#regionId}:{#accountId}:vvpinstance/{#InstanceId}",
                "Effect": "Allow"
            }
        ]
    }

    工作空间扩缩容

    {
        "Version": "1",
        "Statement": [
            {
                "Action": "stream:ModifyVvpPrepayInstanceSpec",
                "Resource": "acs:stream:{#regionId}:{#accountId}:vvpinstance/{#instanceId}",
                "Effect": "Allow"
            }
        ]
    }

    变更工作空间付费模式

    {
        "Version": "1",
        "Statement": [
            {
                "Action": "stream:ConvertVvpInstance",
                "Resource": "acs:stream:{#regionId}:{#accountId}:vvpinstance/{#InstanceId}",
                "Effect": "Allow"
            }
        ]
    }

    查询工作空间创建价格

    {
        "Version": "1",
        "Statement": [
            {
                "Action": "stream:QueryCreateVvpInstance",
                "Resource": "acs:stream:{#regionId}:{#accountId}:vvpinstance/*",
                "Effect": "Allow"
            }
        ]
    }

    查询工作空间续费价格

    {
        "Version": "1",
        "Statement": [
            {
                "Action": "stream:QueryRenewVvpInstance",
                "Resource": "acs:stream:{#regionId}:{#accountId}:vvpinstance/{#InstanceId}",
                "Effect": "Allow"
            }
        ]
    }

    查询工作空间扩缩容价格

    {
        "Version": "1",
        "Statement": [
            {
                "Action": "stream:QueryModifyVvpPrepayInstanceSpec",
                "Resource": "acs:stream:{#regionId}:{#accountId}:vvpinstance/{#InstanceId}",
                "Effect": "Allow"
            }
        ]
    }

    查询按量付费转包年包月价格

    {
        "Version": "1",
        "Statement": [
            {
                "Action": "stream:QueryConvertVvpInstance",
                "Resource": "acs:stream:{#regionId}:{#accountId}:vvpinstance/{#InstanceId}",
                "Effect": "Allow"
            }
        ]
    }
  • Flink全托管项目空间

    重要

    在配置项目空间权限信息前,您需要先配置查看已创建的工作空间(DescribeVvpInstances)的权限,否则会报缺少权限的错误。

    权限

    策略内容

    创建项目空间

    {
        "Version": "1",
        "Statement": [
            {
                "Action": "stream:CreateVvpNamespace",
                "Resource": "acs:stream:{#regionId}:{#accountId}:vvpinstance/{#instanceId}/vvpnamespace/*",
                "Effect": "Allow"
            }
        ]
    }

    删除项目空间

    {
        "Version": "1",
        "Statement": [
            {
                "Action": "stream:DeleteVvpNamespace",
                "Resource": "acs:stream:{#regionId}:{#accountId}:vvpinstance/{#instanceId}/vvpnamespace/{#namespace}",
                "Effect": "Allow"
            }
        ]
    }

    变更项目空间资源

    {
        "Version": "1",
        "Statement": [
            {
                "Action": "stream:ModifyVvpPrepayNamespaceSpec",
                "Resource": "acs:stream:{#regionId}:{#accountId}:vvpinstance/{#instanceId}/vvpnamespace/{#namespace}",
                "Effect": "Allow"
            }
        ]
    }
    说明

    变更资源的项目空间对应的工作空间需要为包年包月付费模式。

    查看项目空间列表

    {
        "Version": "1",
        "Statement": [
            {
                "Action": "stream:DescribeVvpNamespaces",
                "Resource": "acs:stream:{#regionId}:{#accountId}:vvpinstance/{#instanceId}/vvpnamespace/*",
                "Effect": "Allow"
            }
        ]
    }
    说明

    配置该策略后,单击目标工作空间ID左侧的image.png图标,您就能查看该工作空间下创建的项目空间列表信息。如果您还需要进入到目标项目空间开发控制台,还需要被授权对应项目空间的作业开发权限,详情请参见作业操作授权

相关产品的权限操作

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资源。

常见问题

登录实时计算控制台提示当前账号缺少权限

  • 问题详情

    登录实时计算控制台时提示:权限不足无法完成本次操作,需要操作描述符[stream:DescribeVvpInstances]和资源描述符[acs:stream:cn-beijing:1418886*********:vvpinstance/*],请联系主账号管理员。

    image.png
  • 问题原因

    当前登录身份缺少查看Flink全托管工作空间的权限。

  • 解决方法

    参考RAM授权操作为对应RAM用户或角色添加具有查看Flink工作空间操作的权限策略。以下权限策略包含了查看Flink全托管工作空间的权限,您选择添加以下任意一个即可。

    • 系统策略:AliyunStreamReadOnlyAccess(只读访问流计算服务)或AliyunStreamFullAccess(流计算服务所有权限),详情请参见系统权限策略

    • 自定义策略:stream:DescribeVvpInstances(查看工作空间),详情请参见自定义权限策略