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

权限策略类型

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

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

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

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

RAM授权操作

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

  1. 使用RAM管理员登录RAM控制台

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

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

    image

    您也可以选中多个RAM用户,单击用户列表下方的添加权限,为RAM用户批量授权。

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

    image

    参数

    说明

    资源范围

    选择所需的应用范围:

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

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

    授权主体

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

    权限策略

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

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

      {
          "Version": "1",
          "Statement":  [
              {
                  "Action": "stream:DescribeVvpInstances",
                  "Resource": "*",
                  "Effect": "Allow"
              }
          ]
      }
  5. 单击确认新增授权

  6. 单击关闭

系统权限策略

权限策略

名称

说明

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

AliyunStreamFullAccess

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

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

AliyunStreamReadOnlyAccess

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

费用中心(BSS)的权限

AliyunBSSOrderAccess

在费用中心(BSS)查看订单、支付订单的权限。

自定义权限策略

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:ModifyVvpInstanceSpec",
                "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:ModifyVvpNamespaceSpec",
                "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。

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

DLF相关权限操作

开通Flink工作空间的过程中,需要DLF权限用于访问DLF相关的Catalog。

操作(Action)

说明

dlf:BatchCreatePartitions

批量创建分区。

dlf:BatchCreateTables

批量创建表。

dlf:BatchDeletePartitions

批量删除分区。

dlf:BatchDeleteTables

批量删除表。

dlf:BatchGetPartitions

批量获取分区。

dlf:BatchGetTables

批量获取表。

dlf:BatchUpdatePartitions

批量更新分区。

dlf:BatchUpdateTables

批量更新表。

dlf:CreateCatalog

创建数据湖Catalog。

dlf:CreateDatabase

创建数据库。

dlf:CreateFunction

创建函数。

dlf:CreatePartition

创建分区。

dlf:CreateTable

创建表。

dlf:DeleteCatalog

删除数据湖Catalog。

dlf:DeleteDatabase

删除数据库。

dlf:DeleteFunction

删除函数。

dlf:DeletePartition

删除分区。

dlf:DeleteTable

删除表。

dlf:GetAsyncTaskStatus

获取异步任务状态。

dlf:GetCatalog

获取数据湖Catalog。

dlf:GetCatalogByInstanceId

通过InstanceId获取Catalog。

dlf:GetCatalogSettings

获取数据湖配置。

dlf:GetDatabase

获取数据库。

dlf:GetFunction

获取函数。

dlf:GetPartition

获取分区。

dlf:GetTable

获取表。

dlf:ListCatalogs

获取Catalog列表。

dlf:ListDatabases

获取数据库列表。

dlf:ListFunctionNames

获取函数名列表。

dlf:ListFunctions

获取函数列表。

dlf:ListPartitionNames

获取分区名列表。

dlf:ListPartitions

获取分区列表。

dlf:ListPartitionsByExpr

通过表达式获取分区列表。

dlf:ListPartitionsByFilter

通过过滤器获取分区列表。

dlf:ListTableNames

获取表名列表。

dlf:ListTables

获取表列表。

dlf:RenamePartition

重命名分区。

dlf:RenameTable

重命名表格。

dlf:UpdateCatalog

更新数据湖Catalog。

dlf:UpdateDatabase

更新数据库。

dlf:UpdateFunction

更新函数。

dlf:UpdateTable

更新表。

dlf:BatchGetPartitionColumnStatistics

批量获取元数据分区统计信息。

dlf:DeletePartitionColumnStatistics

删除元数据表分区统计信息。

dlf:DeleteTableColumnStatistics

删除元数据表统计信息。

dlf:GetPartitionColumnStatistics

获取元数据分区字段的统计信息。

dlf:GetTableColumnStatistics

获取元数据表字段的统计信息。

dlf:UpdateTableColumnStatistics

更新元数据表统计信息。

dlf:UpdatePartitionColumnStatistics

更新元数据表分区统计信息。

dlf:CreateLock

创建元数据锁。

dlf:UnLock

解锁指定的元数据锁。

dlf:AbortLock

中止元数据锁。

dlf:RefreshLock

刷新元数据锁。

dlf:GetLock

查询元数据锁。

dlf:GetCatalogAccessInfo

使用CatalogUuid,获取StorageName、StorageEndpoint等后端存储相关信息。

dlf:GetDataToken

使用UUID获取Catalog级或Table级数据密钥。

dlf:GetDataTokenByName

使用CatalogUuid、DatabaseName、TableName,获取Catalog级或Table级数据密钥。

dlf-auth:ActOnBehalfOfAnotherUser

身份透传,SLR或SR代表另一个用户访问DLF。

dlf:GrantPermissions

赋予Principal资源的权限。

dlf:RevokePermissions

取消Principal资源的权限。

dlf:BatchGrantPermissions

批量授权。

dlf:BatchRevokePermissions

批量取消授权。

dlf:UpdatePermissions

更新Principal资源的权限。

dlf:ListPermissions

获取指定资源或指定Principal的权限信息。

dlf:CreateRole

创建角色。

dlf:UpdateRole

更新角色。

dlf:DeleteRole

删除角色。

dlf:GetRole

获取角色。

dlf:ListRoles

查询角色列表。

dlf:GrantRolesToUser

批量授予指定用户多个角色权限。

dlf:RevokeRolesFromUser

批量取消授予指定用户多个角色权限。

dlf:GrantRoleToUsers

批量授予多个用户指定角色权限。

dlf:RevokeRoleFromUsers

批量取消授予多个用户指定角色权限。

dlf:UpdateRoleUsers

更新角色中的用户。

dlf:ListRoleUsers

查询角色用户列表。

dlf:ListUserRoles

查询用户角色列表。

dlf:GrantRolesToPrincipal

批量授予指定Principal多个角色权限。

dlf:RevokeRolesFromPrincipal

批量取消授予指定Principal多个角色权限。

dlf:GrantRoleToPrincipals

批量授予多个Principal指定角色权限。

dlf:RevokeRoleFromPrincipals

批量取消授予多个Principal指定角色权限。

dlf:UpdateRolePrincipals

更新角色中的Principal。

dlf:BatchDeleteRoles

批量删除角色。

dlf:CheckPermissions

检查权限。

dlf:GetCatalogStorageStatistics

获取目录统计指标。

dlf:GetCatalogStorageIndicatorDetails

获取目录指标趋势。

dlf:GetCatalogStorageRank

获取目录存储统计排名。

dlf:GetCatalogStorageAnalysis

获取目录存储分布数据。

dlf:GetDatabaseProfile

获取库数据概况。

dlf:GetDatabaseStorageAnalysis

获取库存储分布数据。

dlf:GetTableProfile

获取表数据概况。

dlf:GetTableStorageAnalysis

获取表存储分布数据。

dlf:ListPartitionProfiles

获取分区数据概况列表。

dlf:getLatestStorageStatisticsDate

获取存储概览数据最近更新时间。

dlf:SubscribeOptimize

提交优化。

dlf:GetOptimizeRegionStatus

获取优化地域状态。

dlf:GetOptimizeWorkspaceAuthorization

获取优化工作空间鉴权。

dlf:AddOptimizeWorkspace

添加优化工作空间。

dlf:ListOptimizeWorkspaces

获取优化工作空间列表。

dlf:PreCheckOptimizeWorkspaceConnection

预检查优化工作空间连接。

dlf:CheckOptimizeWorkspaceConnection

检查优化工作空间连接。

dlf:DeleteOptimizeWorkspace

删除优化工作空间。

dlf:SetOptimizeEnable

设置存储优化开关。

dlf:SetOptimizePolicy

设置存储优化策略。

dlf:GetOptimizePolicy

获取存储优化策略。

dlf:SetOptimizeScheduleRule

添加存储优化调度规则。

dlf:ListOptimizeScheduleRules

获取优化调度列表。

dlf:DeleteOptimizeScheduleRule

删除存储优化调度规则。

dlf:RunOptimizeImmediately

立即运行存储管理优化。

dlf:GetOptimizeInfo

获取优化信息。

dlf:UpdateOptimizeTaskResult

更新存储优化任务结果。

相关文档