通過RAM用戶或者RAM角色等方式訪問實時計算控制臺,并進行購買、查看或者刪除工作空間等操作時,需要擁有相應的權限。本文為您介紹Flink支持的權限策略類型、以及如何進行RAM授權。
權限策略類型
權限策略是用語法結構描述的一組權限的集合,可以精確地描述被授權的資源集、操作集以及授權條件。RAM支持的權限策略基本元素和語言規范,請參見權限策略基本元素和權限策略語法和結構。
RAM支持以下兩種權限策略:
RAM授權操作
通過為RAM用戶或RAM角色綁定權限策略,可以獲得權限策略中指定的訪問權限。本文為您介紹如何為RAM用戶授權。RAM角色授權操作類似,詳情請參見為RAM角色授權。
使用RAM管理員登錄RAM控制臺。
在左側導航欄,選擇 。
在用戶頁面,單擊目標RAM用戶操作列的添加權限。
您也可以選中多個RAM用戶,單擊用戶列表下方的添加權限,為RAM用戶批量授權。
在新增授權面板,為RAM用戶添加權限。
參數
說明
資源范圍
選擇所需的應用范圍:
賬號級別:權限在當前阿里云賬號內生效。
資源組級別:權限在指定的資源組內生效。
授權主體
被授權主體,即需要授權的RAM用戶,系統會自動填入當前的RAM用戶,您也可以添加其他RAM用戶。
權限策略
單擊確認新增授權。
單擊關閉。
系統權限策略
權限策略 | 名稱 | 說明 |
流計算(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左側的圖標,您就能查看該工作空間下創建的項目空間列表信息。如果您還需要進入到目標項目空間開發控制臺,還需要被授權對應項目空間的作業開發權限,詳情請參見項目空間授權。
相關產品的權限操作
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 | 更新存儲優化任務結果。 |