为非管理员用户创建精细的 IAM 权限 - Amazon Step Functions
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

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

为非管理员用户创建精细的 IAM 权限

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

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

服务级别权限

适用于不对特定资源执行的 API 的组件。

状态机级权限

适用于对特定状态机执行的所有 API 组件。

执行级权限

适用于对特定执行采用的所有 API 组件。

活动级权限

适用于对特定活动或活动的特殊实例执行的所有 API 组件。

服务级别权限

此权限级别适用于不对特定资源执行的所有 API 操作。这包括 CreateStateMachineCreateActivityListStateMachinesListActivities

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "states:ListStateMachines", "states:ListActivities", "states:CreateStateMachine", "states:CreateActivity" ], "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" ], "Resource": [ "arn:aws:states:*:*:stateMachine:StateMachinePrefix*" ] } ] }

执行级权限

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

{ "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 或实例的令牌作为请求的一部分,例如 DeleteActivityDescribeActivityGetActivityTaskSendTaskSuccessSendTaskFailureSendTaskHeartbeat

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