在 Step Functions 中为非管理员用户创建精细权限 - AWS Step Functions

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

在 Step Functions 中为非管理员用户创建精细权限

中的IAM默认托管策略(例如ReadOnly)并未完全涵盖所有类型的 AWS Step Functions 权限。本节将介绍这些不同类型的权限并提供一些示例配置。

Step Functions 具有四种类别的权限。根据您要为用户提供的访问权限,您可以使用这些类别的权限控制访问权限。

服务级别权限

适用于作API用于特定资源的组件。

状态机级权限

适用于作用于特定状态机的所有API组件。

执行级权限

应用于作用于特定执行的所有API组件。

活动级权限

适用于作用于特定活动或特定活动实例的所有API组件。

服务级别权限

此权限级别适用于所有作用于特定资源的API操作。这些包括CreateStateMachineCreateActivityListStateMachinesListActivities、和ValidationStateMachineDefinition

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "states:ListStateMachines", "states:ListActivities", "states:CreateStateMachine", "states:CreateActivity", "states:ValidationStateMachineDefinition", ], "Resource": [ "arn:aws:states:*:*:*" ] }, { "Effect": "Allow", "Action": [ "iam:PassRole" ], "Resource": [ "arn:aws:iam:::role/my-execution-role" ] } ] }

状态机级权限

此权限级别适用于作用于特定状态机的所有API操作。这些API操作需要状态机的 Amazon 资源名称 (ARN) 作为请求的一部分,例如DeleteStateMachineDescribeStateMachineStartExecution、和ListExecutions

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "states:DescribeStateMachine", "states:StartExecution", "states:DeleteStateMachine", "states:ListExecutions", "states:UpdateStateMachine", "states:TestState", "states:RevealSecrets" ], "Resource": [ "arn:aws:states:*:*:stateMachine:StateMachinePrefix*" ] } ] }

执行级权限

此权限级别适用于针对特定执行的所有API操作。这些API操作要求将ARN执行作为请求的一部分,例如DescribeExecutionGetExecutionHistory、和StopExecution

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "states:DescribeExecution", "states:DescribeStateMachineForExecution", "states:GetExecutionHistory", "states:StopExecution" ], "Resource": [ "arn:aws:states:*:*:execution:*:ExecutionPrefix*" ] } ] }

活动级权限

此权限级别适用于对特定活动或其特定实例执行的所有API操作。这些API操作要求将ARN活动或实例的令牌作为请求的一部分,例如DeleteActivityDescribeActivityGetActivityTask、和SendTaskHeartbeat

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "states:DescribeActivity", "states:DeleteActivity", "states:GetActivityTask", "states:SendTaskHeartbeat" ], "Resource": [ "arn:aws:states:*:*:activity:ActivityPrefix*" ] } ] }