本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
版本与别名功能的授权
要使用版本或别名调用 Step Functions API 操作,您需要适当的权限。要授权某个版本或别名调用 API 操作,Step Functions 会使用状态机的 ARN,而不是使用版本 ARN 或别名 ARN。您也可以缩小特定版本或别名的权限范围。有关更多信息,请参阅缩小权限范围。
您可以使用以下名为
的状态机的 IAM 策略示例,调用 CreateStateMachineAlias 操作来创建状态机别名。myStateMachine
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "states:CreateStateMachineAlias", "Resource": "arn:aws:states:us-east-1:123456789012:stateMachine:
myStateMachine
" } ] }
在设置允许或拒绝访问使用状态机版本或别名的 API 操作权限时,请考虑以下几点:
如果使用 CreateStateMachine 和 UpdateStateMachine API 操作的
publish
参数来发布新的状态机版本,还需要在 PublishStateMachineVersion API 操作上设置ALLOW
权限。DeleteStateMachine API 操作会删除与状态机关联的所有版本和别名。
本主题内容
缩小版本或别名的权限范围
您可以使用限定符进一步缩小版本或别名所需的授权权限范围。限定符指的是版本号或别名名称。您可以使用限定符来限定状态机。以下示例是使用名为 PROD
的别名作为限定符的状态机 ARN。
arn:aws:states:us-east-1:123456789012:stateMachine:myStateMachine
:PROD
有关限定和非限定 ARN 的更多信息,请参阅将执行与版本或别名关联。
在 IAM 策略的 Condition
语句中,使用名为 states:StateMachineQualifier
的可选上下文密钥缩小权限范围。例如,以下 IAM 策略针对名为 myStateMachine
的状态机,拒绝调用别名为 PROD
或版本 1
的DescribeStateMachine API 操作。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Deny", "Action": "states:DescribeStateMachine", "Resource": "arn:aws:states:us-east-1:123456789012:stateMachine:
myStateMachine
", "Condition": { "ForAnyValue:StringEquals": { "states:StateMachineQualifier": [ "PROD", "1" ] } } } ] }
以下列表说明了您可以使用 StateMachineQualifier
上下文密钥缩小权限范围的 API 操作。