在 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) 作為請求的一部分DeleteStateMachine,例如DescribeStateMachineStartExecution、、和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作業需要執行作為要求的一部分,例如DescribeExecutionGetExecutionHistory、和StopExecution。ARN

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

活動層級許可

此權限等級適用於對特定活動或其特定實例採取行動的所有動API作。這些API操作需要將活動或實例的令牌作為請求的一部分DeleteActivity,例如DescribeActivityGetActivityTask,和SendTaskHeartbeat。ARN

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