本文提供了Serverless工作流通过访问控制实现团队或者部门成员鉴权、RAM用户资源授权以及跨云服务授权的RAM鉴权规则。
背景信息
说明 如果您无需授权就能访问目标资源,可以跳过此章节。
默认情况下,阿里云账号或者RAM用户均能使用Serverless工作流API完整操作自己创建的资源。在以下场景中,会涉及到操作授权问题:
- RAM用户刚创建,没有权限操作阿里云账号的资源。
- 从其他阿里云服务访问Serverless工作流资源,或者Serverless工作流访问其他阿里云服务。
- 操作具有权限控制的Serverless工作流资源前,需要资源拥有者授权目标资源和目标API行为权限。
当其他账号通过Serverless工作流API访问阿里云账号资源时,阿里云首先向RAM发起权限检查,以确保资源拥有者已经将相关权限授予调用者。不同的Serverless工作流API会根据涉及的资源以及API语义确定需要检查哪些资源的权限。您可以阅读访问控制产品文档和访问控制API文档了解更多详情,实现精细化授权策略和权限控制。
自定义策略
您可以通过RAM控制台或者调用RAM API CreatePolicy创建一个自定义策略。在以下自定义策略中,您需要根据JSON模板文件填写。其中,Action和Resource参数取值取自鉴权列表中的ARN(Aliyun Resource Name)值。更多信息,请参见创建自定义权限策略和权限策略基本元素。
{
"Version": "1",
"Statement": [
{
"Effect": "Allow",
"Action": "fnf:DescribeFlow",
"Resource": "acs:fnf:*:188077086902****:flow/flow"
}
]
}
鉴权列表
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} |