本文提供了Serverless工作流通过访问控制实现团队或者部门成员鉴权、RAM账号资源授权以及跨云服务授权的RAM鉴权规则。

背景信息

说明 如果您无需授权就能访问目标资源,可以跳过此章节。
默认情况下,主账号或者RAM账号均能使用Serverless工作流API完整操作自己创建的资源。在以下场景中,会涉及到操作授权问题:
  • RAM账号刚创建时没有权限操作主账号的资源时。
  • 从其他阿里云服务访问Serverless工作流资源,或者Serverless工作流访问其他阿里云服务时。
  • 操作具有权限控制的Serverless工作流资源前,需要资源拥有者授权目标资源和目标API行为权限。

当其他账号通过Serverless工作流API访问主账号资源时,阿里云首先向RAM发起权限检查,以确保资源拥有者已经将相关权限授予调用者。不同的Serverless工作流API会根据涉及的资源以及API语义确定需要检查哪些资源的权限。您可以阅读访问控制产品文档访问控制API文档了解更多详情,实现精细化授权策略和权限控制。

自定义策略

您可以通过RAM控制台或者调用RAM API CreatePolicy创建一个自定义策略,在脚本配置方式的自定义策略中,您需要根据JSON模板文件填写策略内容。其中的ActionResource参数取值取自本文鉴权列表中的ARN值。更多详情请参见账号访问控制权限策略基本元素
{
    "Version": "1",
    "Statement": [
        {
            "Action": [
                "ecs:[ECS RAM Action]",
                "ecs:DescribeInstances"
            ],
            "Resource": [
                "[ECS RAM Action Resource]",
                "acs:ecs:$regionid:15619224785*****:instance/i-bp1bzvz55uz27hf*****"
            ],
            "Effect": "Allow"
        }
    ]
}

鉴权列表

API涉及的资源ARN取值主要用于设置自定义访问策略,您可以通过访问控制创建自定义访问策略并授权给RAN用户或者云服务。ARN格式说明请参见 访问控制文档 相关术语。Serverless工作流API的资源ARN取值如下表所示。

Action 资源ARN取值
ListFlows acs:fnf:${region-id}:${resource-owner-id}:flow/*
CreateFlow acs:fnf:${region-id}:${resource-owner-id}:flow/*
DescribeFlow acs:fnf:${region-id}:${resource-owner-id}:flow/${flow-name}
UpdateFlow acs:fnf:${region-id}:${resource-owner-id}:flow/${flow-name}
DeleteFlow acs:fnf:${region-id}:${resource-owner-id}:flow/${flow-name}
StartExecution acs:fnf:${region-id}:${resource-owner-id}:flow/${flow-name}/execution/*
ListExecutions acs:fnf:${region-id}:${resource-owner-id}:flow/${flow-name}/execution/*
DescribeExecution acs:fnf:${region-id}:${resource-owner-id}:flow/${flow-name}/execution/${execution-name}
StopExecution acs:fnf:${region-id}:${resource-owner-id}:flow/${flow-name}/execution/${execution-name}
GetExecutionHistory acs:fnf:${region-id}:${resource-owner-id}:flow/${flow-name}/execution/${execution-name}